[go: up one dir, main page]

EP3175443B1 - Determining a budget for lpd/fd transition frame encoding - Google Patents

Determining a budget for lpd/fd transition frame encoding Download PDF

Info

Publication number
EP3175443B1
EP3175443B1 EP15745542.9A EP15745542A EP3175443B1 EP 3175443 B1 EP3175443 B1 EP 3175443B1 EP 15745542 A EP15745542 A EP 15745542A EP 3175443 B1 EP3175443 B1 EP 3175443B1
Authority
EP
European Patent Office
Prior art keywords
coding
frame
transition
bits
transform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP15745542.9A
Other languages
German (de)
French (fr)
Other versions
EP3175443A1 (en
Inventor
Stéphane RAGOT
Julien Faure
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Publication of EP3175443A1 publication Critical patent/EP3175443A1/en
Application granted granted Critical
Publication of EP3175443B1 publication Critical patent/EP3175443B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Definitions

  • the present invention relates to the field of coding / decoding of digital signals.
  • the invention is advantageously applied to the coding / decoding of sounds that can contain speech and music mixed or alternately.
  • CELP Code Excited Linear Prediction
  • transform coding techniques are preferred.
  • CELP coders are predictive coders. They aim to model the production of speech from various elements: a short-term linear prediction to model the vocal tract, a long-term prediction to model the vibration of vocal cords in voiced period, and an excitation derived from a fixed dictionary (white noise, algebraic excitation) to represent the "innovation" which could not be modeled.
  • Transform coders such as MPEG AAC, AAC-LD, AAC-ELD or ITU-T G.722.1 Annex C, for example, use critical-sampling transforms to compact the signal in the transformed domain.
  • a "critical-sampling transform” is a transform for which the number of coefficients in the transformed domain is equal to the number of time samples in each frame analyzed.
  • One solution for efficiently coding a mixed speech / music content signal consists in selecting, over time, the best technique between at least two coding modes, one of the CELP type, the other of the transformed type.
  • the MDCT window is divided into 4 adjacent portions of equal lengths M / 2, here called "quarters".
  • the signal is multiplied by the analysis window and folds are made: the first quarter (windowed) is folded (ie inverted in time and overlapped) on the second quarter and the fourth quarter is folded on the third.
  • the temporal folding from one quarter to another is done in the following way: the first sample of the first quarter is added (or subtracted) to the last sample of the second quarter, the second sample of the first quarter is added (or subtracted ) the second-last sample of the second quarter, and so on until the last sample of the first quarter that is added (or subtracted) to the first sample of the second quarter.
  • the folded two quarters are then coded together after DCT (Type IV) transformation.
  • DCT Type IV transformation
  • the third and fourth quarters of the previous frame then become the first and second quarter of the current frame.
  • the decoded version of these folded signals is thus obtained.
  • Two consecutive frames contain the result of 2 different folds of the same quarters, ie for each pair of samples we have the result of 2 linear combinations with different but known weights: an equation system can be solved for to obtain the decoded version of the input signal, the temporal folding can thus be suppressed by using two consecutive decoded frames.
  • implementation variants of the MDCT transformation exist, in particular on the definition of the DCT transform, on how to fold the block to be transformed temporarily (for example, the signs applied to the folded quarters can be reversed). left and right, or fold the second and third quarter over the first and fourth quarters respectively), etc. These variants do not change the principle of the MDCT analysis-synthesis with the reduction of the sample block by windowing, temporal folding then transformation and finally windowing, folding and addition-recovery.
  • the temporal folding on this overlapping zone is canceled by introducing an "artificial" time folding to the right of the reconstructed ACELP frame.
  • the MDCT window serving at the transition has a size of 2304 samples and the DCT transformation operates on 1152 samples whereas normally FD mode frames are encoded with a window size of 2048 samples and a DCT transformation of 1024 samples.
  • the MDCT transformation of the normal FD mode is not directly usable for the transition window, the encoder must also integrate a modified version of this transformation which complicates the implementation of the transition for the FD mode.
  • This coding technique of the state of the art has an algorithmic delay of the order of 100 to 200 ms.
  • This delay is incompatible with conversational applications for which coding delay is generally of the order of 20 to 25 ms for speech coders for mobile applications (eg GSM EFR, 3GPP AMR and AMR-WB) and in the order of 40 ms for conversational transform coders for videoconferencing (eg ITU-T G.722.1 Annex C and G.719).
  • the fact of punctually increasing the DCT transformation size (2304 against 2048) generates a peak of complexity at the time of the transition.
  • the transition frame is defined as the transform-encoded current frame that succeeds a previous frame encoded by predictive coding.
  • a part of the transition frame for example a subframe of 5 ms, in the case of a CELP coding at 12.8 kHz, and two additional CELP frames of 4 ms each, in the case of a CELP coding at 16 kHz, are coded by a predictive coding restricted with respect to the predictive coding of the previous frame.
  • Restricted predictive coding consists in using the stable parameters of the preceding frame coded by a predictive coding, such as the coefficients of the linear prediction filter and coding only a few minimum parameters for the additional subframe in the transition frame.
  • the bold lines separate the frames of new samples at the input of the encoder.
  • the coding of a new MDCT frame can be started when a so-defined frame of new input samples is fully available. It is It is important to note that these lines in bold at the coder do not correspond to the current frame but to the successive blocks of new samples arriving for each frame: the current frame is in fact delayed by 8.75 ms which corresponds to an anticipation, called " lookahead " . " in English.
  • the bold lines separate the decoded frames at the output of the decoder.
  • the transition window is zero to the point of folding.
  • the portion between the folding point and the end of the CELP transition subframe (TR) corresponds to a sinusoidal half-window.
  • the same window is applied to the signal.
  • the coefficients of the window correspond to a window of form sin 2 .
  • the demand WO2012 / 085451 provides for the allocation of a trans B bit budget for the coding of the CELP subframe which would correspond to the budget required for the CELP coding of a conventional frame, reduced to a single sub-frame. The remaining budget for the coding of the transform transition frame is then insufficient and can lead to a drop in quality at low bit rate.
  • the present invention improves this situation.
  • the bit rate of the predictive coding is therefore limited by a maximum value.
  • the number of bits allocated to the predictive coding depends on this bit rate. Since the lower the bit rate, the smaller the number of bits allocated to the coding, a minimum remaining budget is ensured for the coding of the transform transition frame.
  • the number of bits allocated to the predictive coding of the subframe is optimized with respect to the bit rate of the transform coding. Indeed, if the bit rate of the transform coding of the transition frame is less than the first predetermined value, the bit rate for the predictive coding and the bit rate for the transform coding is identical. The coherence of the signals thus generated is thus improved, which simplifies the subsequent steps of coding (channel coding) and the processing of the frames received at the decoder.
  • the encoder / decoder comprises a first working core, for predictive coding / decoding of a signal frame, at a first frequency, and a second working heart, for predictive coding / decoding of a signal frame, at a second frequency.
  • the first predetermined bit rate value depends on the core selected from the first and second cores for coding / decoding of the prediction encoded previous frame.
  • the operating frequency of the encoder / decoder core influences the number of bits required to correctly represent the input digital signal. For example, for certain operating frequencies, it is necessary to provide additional bits for coding frequency bands not directly processed by the core.
  • the assigned bit rate is furthermore equal to the maximum between the bit rate of the transform coded transition frame and the minus a second predetermined value of bit rate, the second value being less than the first value.
  • a minimum bit rate is guaranteed in order to avoid excessively large bit rates between the different coded frames.
  • the digital signal is decomposed into at least one low frequency band and one high frequency band.
  • the first calculated bit count is assigned to the predictive encoding of the transition subframe for the low frequency band.
  • a third predetermined number of bits is then allocated to an encoding of the transition subframe for the high frequency band.
  • the second number of bits allocated for the transform coding of the transition frame is then further determined from the third predetermined number of bits.
  • the number of bits available for encoding the transition frame is fixed. This reduces the complexity of the coding steps.
  • the second number of bits is equal to the fixed number of coding bits of the transition frame minus the first number of bits minus the third number of bits.
  • the final determination of the distribution of the bits in the transition frame is thus limited to a subtraction of integer values which simplifies the coding.
  • the second number of bits is equal to the fixed number of coding bits of the transition frame minus the first number of bits minus the third number of bits minus a first bit minus a second bit.
  • the first bit indicates whether low-pass filtering is performed when determining the parameters of the predictive coding of the transition subframe, the parameters being related to the pitch delay.
  • the second bit indicates the frequency used by the encoder / decoder heart for the predictive coding / decoding of the transition subframe. Such an indication allows a more flexible coding.
  • the determination of the distribution of the bits included in the transition frame is thus determined before the coding. As described below, this determination of the distribution of the bits is reproducible to the decoder which avoids an explicit transmission of information on this distribution.
  • this coding ensures a balanced distribution between the predictive coding and the transform coding within the transition frame.
  • the predictive coding comprises generating predictive coding parameters determined for the assigned bit rate when distributing the bits in the transition frame.
  • the use of such predictive parameters optimizes the ratio between the bit rate assigned to the predictive coding and the remaining bit rate assigned to the transform coding, and thus optimizes the quality of the reconstructed signal. Indeed, at constant quality, the number of bits allocated to one or another predictive parameter can vary in non-linear proportions with respect to the bit rate assigned to the predictive coding.
  • the predictive coding comprises generating predictive coding parameters restricted with respect to the predictive coding of the preceding frame by reusing at least one parameter of the predictive coding of the preceding frame. So, at decoding, additional information is extracted from the previous frame to complete the decoding of the transition subframe to be decoded. This reduces the number of bits that must be reserved for the predictive encoding of the transition subframe.
  • the method for determining the distribution of bits in the transition frame is directly reproducible at the decoder. Indeed, the bit distribution is determined solely from the bit rate of the portion of the transform coded transition frame. No additional bit is therefore necessary to implement this step of determining the distribution of the bits and a saving of bandwidth is therefore achieved.
  • a fourth aspect of the invention further provides a computer program comprising instructions for carrying out the method according to the aspects of the invention described above, when these instructions are executed by a processor.
  • the figure 1 illustrates an audio encoder 100 according to one embodiment of the invention.
  • the figure 2 is a diagram illustrating the steps of a coding method, implemented by the audio coder 100 of the figure 1 according to one embodiment of the invention.
  • the encoder 100 comprises a reception unit 101 for receiving, at a step 201, an input signal sampled at a given frequency fs (for example 8, 16, 32 or 48 kHz) and decomposed into subframes, for example 20 ms.
  • fs for example 8, 16, 32 or 48 kHz
  • a preprocessing unit 102 On receipt of a current frame, a preprocessing unit 102 is able to select, in a step 202, the coding mode which is the most suitable for the coding of the current frame, among at least one LPD mode and one FD mode.
  • the coding mode which is the most suitable for the coding of the current frame, among at least one LPD mode and one FD mode.
  • an MDCT encoding is used for the FD mode
  • a CELP encoding is used for the LPD mode.
  • the CELP coding may be replaced by another type of predictive coding
  • the MDCT transform may be replaced by another type of transform.
  • the frame type is transmitted explicitly via block 206, with for example a fixed length coding indicating the mode selected from a predefined list.
  • this coding of the mode chosen in each frame may be of variable length.
  • the CELP coding type (12.8 or 16 kHz) can be transmitted explicitly via a bit to facilitate the decoding of the transition frame.
  • a step 203 verifies that the CELP encoding has been selected in step 202.
  • the signal frame is transmitted to a CELP encoder 103 for encoding a CELP frame at a step 204
  • the CELP coder may use two "cores" operating at two respective internal sampling frequencies, for example set at 12.8 kHz and 16 kHz, which require the use of a sampling of the input signal (at the frequency fs). at the internal frequency of 12.8 or 16 kHz.
  • Such resampling may be implemented in a resampling unit in the preprocessing block 102 or in the CELP coder 103.
  • the frame is then coded by prediction by the CELP coder 103 by deducting CELP parameters which generally depend on a classification of the signal.
  • CELP parameters typically include LPC coefficients, an adaptive and fixed gain vector, an adaptive dictionary vector, a fixed dictionary vector. This list can also be modified according to a signal class in the frame, as in ITU-T G.718 coding.
  • the parameters thus calculated can then be quantized, multiplexed and transmitted at a step 206 to the decoder by a transmission unit 108.
  • CELP coding parameters such as the LPC coefficients, the adaptive and fixed gain vector, the adaptive dictionary vector , the fixed dictionary vector as well as states of the CELP decoder may also be stored, in a step 205, in a memory 107 in the case where the frame following the current frame would be a transition frame MDCT.
  • a band extension may also be performed with associated coding of the high band when the current frame is of CELP type.
  • the MDCT encoder 105 can encode a frame covering 28.75 ms of un-resampled signal, including 20 ms of frame and 8.75 ms of lookahead for example. No restrictions are attached to the size of the MDCT window.
  • a delay corresponding to the delay of the CELP coder due to resampling of the input signal is applied to the frame coded by the MDCT coder, so that the MDCT and CELP frames are synchronized.
  • Such an encoder delay may be 0.9375 ms depending on the type of resampling before CELP coding.
  • the transform coded frame MDCT is transmitted to the decoder at step 206.
  • the current frame is a transition frame and is transmitted to a transition unit 104.
  • the MDCT transition frame comprises an additional CELP subframe.
  • At least one of these steps is performed by the transition frame coding unit 106 described hereinafter.
  • the transition MDCT frame is encoded by the MDCT encoder 105, at a step 212, as described in the following, and based on the bit budget allocated in step 209.
  • the additional CELP subframe is also encoded by the CELP encoder 103, at a step 213, as described in the following with reference to the figure 3 , and according to the bit budget allocated in step 209.
  • the CELP coding may be performed before or after MDCT coding.
  • the figure 3 presents the transition between CELP and MDCT frames to the coder, before coding, and to the decoder, before decoding.
  • a frame to be coded 301 is received at the encoder 100 and is encoded by the CELP encoder 103.
  • a current frame 302 is then received at the input of the encoder 100 to be encoded by the MDCT transform. It is therefore a transition frame.
  • the next frame 303 received at the input of the coder is also coded by MDCT transform. According to the invention, the next frame 303 could be coded by CELP coding and no restriction is attached to the coding used for the next frame 303.
  • An asymmetric MDCT window 304 may be used for encoding the current frame.
  • This window 304 has a rising edge 307 of 14.375 ms, a bearing with a gain of 1 at 11.25 ms, a falling edge 309 of 8.75 ms corresponding to the lookahead, and a zero portion 310 of 5.265 ms.
  • the addition of the zero part 310 reduces the lookahead and thus the corresponding delay.
  • the shape of this MDCT analysis window for the MDCT encoding is modified, for example, to further reduce the lookahead or to use a symmetrical window whose examples are given in the patent application. WO2012 / 085451 .
  • the dashed line 312 represents the middle of the MDCT window 304. On either side of the line 312, the 10 ms quarters of the MDCT window 212 are folded as described in FIG. introductory part. Continuous line 311 indicates the folding area between the first and second quarters of the MDCT window 304.
  • the MDCT window of the next frame 303 is referenced 306 and has a covering addition area with the MDCT window 304 corresponding to the falling edge 309 of the MDCT window 304.
  • An MDCT window 305 theoretically represents the window that would be applied to the previous frame if it had been coded by MDCT transform. However, since the preceding frame 301 is coded by the CELP coder 103, it is necessary, in order to allow the decoder to unfold the first part of the MDCT transformed coded frame, that the window be zero in the first quarter (since the second part of the previous MDCT frame is not available).
  • the MDCT window 304 is modified into an MDCT window 313 whose first quarter is zero, thus allowing time folding in the first part of the MDCT frame to the decoder.
  • the analysis windows 304, 305, 306 and 313 respectively correspond to synthesis windows 324, 325, 326 and 327.
  • This synthesis window is therefore inverted temporally with respect to the corresponding analysis window.
  • the windows of analysis and synthesis may be identical, sinusoidal type or otherwise.
  • a first frame 320 of new samples encoded by CELP coding is received at the decoder. It corresponds to the coded version of the CELP frame 301. It is recalled here that the decoded frame is shifted by 8.75 ms with respect to the frame 320.
  • the coded version of the transition frame 302 is then received (references 321 and 322 forming a complete frame).
  • a hole or GAP is created.
  • a quarter window MDCT being 10 ms
  • the zero part of the synthesis window MDCT 324 which covers the CELP frame 320 being 5.625 ms (corresponding to the part 310 of the analysis window MDCT 204)
  • the hole is 4.375 ms.
  • the delay between the CELP frame 320 and the start of the MDCT window 327 is extended by the required length.
  • a satisfactory recovery addition length of 1.875 ms the aforementioned delay (corresponding to a missing signal length) thus being increased to 6.25 ms, as represented by FIG. reference 321 on the figure 2 .
  • the signal frames represented in figure 3 may contain signals at different sampling rates of 12.8 or 16 kHz for CELP coding / decoding and fs for MDCT coding / decoding; however at the decoder, after resampling of the CELP synthesis and time shift of the MDCT synthesis the frames remain synchronized and the representation of the figure 3 remains accurate.
  • the request WO2012 / 085451 proposes to encode an additional CELP subframe of 5ms at the beginning of the MDCT transition frame, in the case of CELP coding at 12.8 kHz, and two additional CELP frames of 4ms each at the beginning of the MDCT transition frame, in the case of a CELP coding at 16 kHz.
  • the decoder is only 0.625 ms of overlap, which is insufficient.
  • the present invention can provide for encoding a single additional CELP subframe at 12.8 or 16 kHz by the CELP encoder 103. Additional samples are generated at the decoder, as detailed below, in order to generate the missing signal over the length of 6.25 ms above.
  • the unit 106 may reuse at least one CELP parameter from the previous CELP frame.
  • the unit 106 can reuse the linear prediction coefficients A (z) of the preceding CELP subframe as well as the innovation energy of the preceding frame (stored in the memory 107 as previously described) so that to encode only the adaptive dictionary vector, the adaptive gain, the fixed gain and the fixed dictionary vector of the transition CELP subframe.
  • the additional CELP subframe can be coded with the same core (12.8 kHz or 16 kHz) as the previous CELP frame.
  • a transition frame coding unit 106 provides the coding of a transition frame according to the invention.
  • the invention may further provide for the insertion by the unit 106 into the bit stream of an additional bit indicating that the coded frame 322 is a transition frame, however in the general case this transition frame indication may also be transmitted in the global coding mode indication of the current frame, without taking any additional bits.
  • the invention may further provide that this unit 106 encodes the high band of the signal at steps 204 and 214 (so-called "band extension" method), when this is required, with a fixed budget since the frequency of sampling of the synthesis signal at the decoder is not necessarily identical to the frequency of the CELP core.
  • Step 209 above is illustrated in more detail with reference to the figure 4 which is a diagram illustrating the steps of a method for determining a transition coding bit distribution according to an embodiment of the invention.
  • the aforementioned method is implemented in the same manner to the encoder and the decoder, but is presented, for illustrative purposes only, on the coder side.
  • the total bit rate (in bits / s), denoted core_brate, which can be allocated to the coding of the current frame is set equal to the output rate of the MDCT encoder.
  • the duration of the frame being considered in this example as being 20 ms, the number of frames per second is 50 and the total budget in bits is equal to core_brate / 50.
  • the total budget can be fixed, in the case of a fixed rate encoder, or variable, in the case of a variable rate encoder when an adaptation of the coding rate is implemented. In the following, we use a variable num_bits, initialized to the value core_brate / 50.
  • the transition unit 104 determines the CELP core, among at least two CELP cores, which has been used for encoding the previous CELP frame.
  • the CELP cores operating at frequencies of 12.8 kHz and 16 kHz are considered.
  • a single CELP core is used for coding and / or decoding.
  • the method comprises a step 402 for assigning a bit rate, noted cbrate, for the CELP coding of the subframe transition, the bit rate being equal to the minimum between the bit rate of the MDCT coding of the transition frame and a first predetermined bit rate value.
  • the first predetermined value can be set at 24.4 kbit / s, for example, which ensures a satisfactory bit budget for the transform coding.
  • cbrate min (core_bitrate, 24400). This limitation amounts to restricting the operation of the restricted CELP coding limited to the supplementary subframe with CELP parameters coded as if they were encoded by a CELP coding of not more than 24.40 kbit / s.
  • a first number of bits, noted budget1 is allocated for the predictive coding of the additional CELP subframe.
  • the first number of bits budget1 represents the number of bits representing the CELP parameters used for the coding of the CELP subframe.
  • the coding of the CELP subframe can be restricted in that a small number of CELP parameters are used, some parameters used for the coding of the preceding CELP frame being reused advantageously.
  • the excitation can be modeled for the coding of the additional CELP subframe, and bits are thus reserved only for the fixed dictionary vector, for the adaptive dictionary vector and for the gain vector.
  • the number of bits allocated to each of these parameters is deduced from the bit rate assigned to the coding of the additional CELP sub-frame in step 402.
  • Table 1 / G722.2 - Bit allocation of the algorithm of AMR-WB coding for 20ms frame, from the July 2003 release of the ITU-T G.722.2 standard gives examples of bit allocations per CELP parameter as a function of the affected bit rate.
  • budget1 corresponds to the sum of the bits allocated respectively to the adaptive dictionary, the fixed dictionary and the vector of gains. For example, for an assigned bit rate of 19.85 kbit / s, referring to the aforementioned Table / G722, 9 bits are allocated to the adaptive dictionary (tonal delay), 72 bits are allocated to the fixed dictionary (algebraic code), and 7 bits are allocated to the gain vector (directory gain). In this case, budget1 is equal to 88 bits.
  • the invention can also provide for taking into account frame classes in the bit allocation to the CELP parameters.
  • the ITU-T G.718 standard in its June 2008 version, sections 6.8 and 8.1, gives the budgets to allocate to each CELP parameter according to classes, or modes such as unvoiced mode. (UC), the voiced mode (VC), the transition mode (TC) and the generic mode (GC), and according to the allocated bit rate (layerl or layer2, corresponding to rates of 8kbit / s and 8 respectively). +4 kbit / s).
  • the G.718 encoder is a hierarchical coder, but it is possible to combine the CELP coding principles using a G.718 classification with the AMR-WB multi-bit allocation.
  • the method comprises a step 405 of assigning a bit rate, noted cbrate, for coding CELP of the transition subframe, the bit rate being equal to the minimum between the bit rate of the MDCT coding of the transition frame and a first predetermined value of bit rate.
  • the first predetermined value can be fixed at 22.6 kbit / s, for example, which makes it possible to ensure a satisfactory bit budget for the transform coding.
  • the first predetermined value depends on the CELP core used for encoding the previous CELP frame.
  • threshold values can be applied when assigning a bit rate to the CELP coding.
  • the assigned bit rate is furthermore equal to the maximum between the bit rate of the transform coded transition frame and at least a second predetermined bit rate value, the second value being less than the first value.
  • the second predetermined value of bit rate may for example be equal to 14.8 kbit / s.
  • the bit rate assigned to the CELP encoding of the transition subframe may be 14.8 kbit / s.
  • bit rate of the transform coded transition frame is less than 8 kbit / s
  • bit rate assigned may be 8 kbit / s.
  • a first number of bits budget1 is allocated for the predictive coding of the additional CELP subframe, and budget1 depends on the bit rate assigned to the CELP coding of the sub-frame. -Transition frame.
  • a second number of bits allocated for transform coding of the transition frame is calculated from the first number of bits budget1 and the total number of bits of the transition frame.
  • budget2 is equal to the num_bits variable.
  • the mode of the current transition frame is assumed here imputed to the MDCT coding budget, so this information is not explicitly taken into account here.
  • the preceding steps may have been implemented for the coding of a low frequency band of the transition subframe, in the case where the audio signal is decomposed into at least one low band of frequencies and a high band of frequencies.
  • the method may include the allocation of a third predetermined number of bits, denoted budg3, to the coding of the high frequency band of the transitional subframe, prior to step 410, which is also common to codings at different core frequencies.
  • the second number of bits budg2 is calculated both from the first number of bits budg1 and the third number of bits budg3.
  • the coding of the high frequency band (or band extension) of the transition subframe may be based on a correlation between the previous frame of the audio signal and the transition subframe.
  • the coding of the high frequency band can be broken down into two stages.
  • the previous frame and the current frame of the audio signal are filtered by a high-pass filter to keep only the upper part of the spectrum.
  • the upper part of the spectrum may correspond to frequencies higher than that of the CELP core used. For example, if the CELP core used is the 12.8 kHz CELP core, the high band is the audio signal for which frequencies below 12.8 kHz have been filtered.
  • Such filtering can be implemented by means of a FIR filter.
  • a correlation search between the filtered parts of the previous frame and the current frame is performed.
  • Such a correlation search makes it possible to estimate a delay parameter and then a gain.
  • the gain corresponds to the amplitude ratio between the filtered part of the current frame and the predicted signal by applying the delay.
  • 6 bits can be allocated for gain and 6 bits for delay.
  • the third number of bits budget3 is then equal to 12.
  • the second number of bits budg2 is then equal to the variable num_bits update.
  • the figure 5 illustrates an audio decoder 500 according to one embodiment of the invention and the figure 6 is a diagram illustrating the steps of a decoding method according to an embodiment of the invention, implemented in the audio decoder 500 of the figure 5 .
  • the decoder 500 comprises a reception unit 501 for receiving, at a step 601, the coded digital signal (or bit stream) coming from the coder 100 of the figure 1 .
  • the bit stream is subjected to a classification unit 502 able to determine, in a step 602 whether the current frame is a CELP frame, an MDCT frame or a transition frame.
  • the classification unit 502 is able to deduce from the bit stream information indicating whether the current frame is a transition frame or not, and information indicating the CELP core to be used for decoding a CELP frame or a CELP transition subframe.
  • the current frame is a transition frame.
  • the current frame is not a transition frame, it is verified at a step 604 that the current frame is a CELP frame. If this is the case, the frame is transmitted to a decoder CELP 504 capable of decoding a CELP frame at a step 605, at the core frequency indicated by the classification unit 502. Following the decoding of a CELP frame, the The decoder CELP 504 can store, in a step 606, in a memory 506 parameters such as the coefficients of the linear prediction filter A (z) and internal states such as the predictive energy in the case where the following frame would be a frame of transition.
  • parameters such as the coefficients of the linear prediction filter A (z) and internal states such as the predictive energy in the case where the following frame would be a frame of transition.
  • the signal can be resampled, at a step 607, at the output frequency of the decoder 500 by a resampling unit 505.
  • the unit resampling includes an FIR filter and resampling introduces a delay of (for example) 1.25 ms.
  • postprocessing may be applied to the CELP decoding before or after resampling.
  • a band extension can also be performed by a band extension management unit 5051 at steps 6071 and 6151, with associated decoding of the high band when the current frame is of type CELP.
  • the high band is then combined with the CELP coding with possibly additional delay applied to the low band CELP synthesis.
  • the decoder 500 further comprises an MDCT decoder 507.
  • the decoder MDCT 507 is able to decode the frame MDCT in a conventional way at one stage. 609.
  • a delay corresponding to the delay required for the application of resampling of the signal from the CELP decoder 504 is applied to the output of the decoder by a delay unit 508, so as to synchronize the synthesis MDCT with the synthesis.
  • CELP at step 610.
  • the MDCT decoded and delayed signal is transmitted to the output interface 510 of the decoder at step 608.
  • a device for determining the bit distribution 503 is able to determine, in a step 611, the first number of bits. budget1 allocated to the CELP encoding of the transition subframe and the second number of budget bits3 allocated to the transform encoding of the transition frame.
  • the device 503 may correspond to the device 700 described in detail with reference to the figure 7 .
  • the MDCT decoder 507 uses the third number of bits budget3 calculated by the determination unit 503 to adjust the rate necessary to decode the transition frame.
  • the MDCT decoder 507 also sets the memory of the MDCT transformation to zero and decodes the transition frame at a step 612.
  • the signal from the MDCT decoder is then delayed by the delay unit 508 at a step 613.
  • the CELP decoder 504 decodes the transition CELP subframe according to the first number of bits budget1, at a step 614.
  • the decoder CELP 504 decodes for this purpose the CELP parameters which can depend on the class of the current frame , and which include for example the pitch values of the adaptive dictionary, fixed dictionary and gains of the CELP subframe and uses the coefficients of the linear prediction filter.
  • the CELP decoder 504 updates the CELP decoding states. These states may typically include the predictive energy of the innovation from the previous CELP frame to generate the 4ms or 5ms signal subframe depending on whether the CELP core at 12.8 kHz or 16 kHz is used (in the case of a restricted coding of the transition CELP subframe).
  • the demand WO2012 / 085451 provides additional coding of a 5ms subframe for the 12.8 kHz CELP core and two additional 4ms subframes for the 16 kHz CELP core.
  • the decoder is only 0.625 ms of overlap, which is insufficient.
  • An independent aspect of the invention provides, from a single additional CELP transition sub-frame, the partial generation of a second sub-frame by reusing coding parameters used for the coding of the CELP sub-frame of transition.
  • the delay is thus bridged, ensuring a sufficient addition-recovery, and without impacting the rate of the MDCT coding of the transition frame.
  • the invention also aims at the decoder 500 for implementing the decoding method P, as well as a computer program comprising instructions for implementing the decoding method P, when these instructions are executed by a processor.
  • the CELP parameters reused for the generation of the second sub-frame can be the vector of gains, the vector of the adaptive dictionary and the vector of the fixed dictionary.
  • a minimum overlap value can be predefined for the transform decoding and the number of generated samples of the second subframe is determined according to the minimum overlap value.
  • This latter sub-frame can be generated without additional information by extending the CELP synthesis by repeating the pitch prediction with the same pitch delay and the same adaptive dictionary gain as in the first subframe, and performing a LPC filtering of synthesis with the same LPC coefficients and a de-emphasis or de-emphasis.
  • the second CELP sub-frame can then be truncated so as to retain only 1.25 ms of signal in the case of the CELP core at 12.8 kHz, and 2.25 ms of signal in the case of the 16 kHz CELP core. .
  • the first sub-frame CELP is thus completed so as to have 6.25 ms of additional signal making it possible to fill the hole and to ensure a satisfactory addition-recovery (minimum value of overlap, for example of 1.875 ms) with the frame of MDCT transition.
  • the additional CELP subframe has a length extended to 6.25 ms for CELP cores at 12.8 and 16 kHz, which implies modifying the "normal" CELP coding to have such a extended subframe length, especially for the fixed dictionary.
  • the method P may further comprise a re-sampling step 615 implemented by a finite impulse response filter.
  • the FIR filter can be integrated in the resampling unit 505.
  • the resampling uses the memory of the FIR filter of the previous CELP frame and the processing induces an additional delay of 1.25 ms in this example. .
  • the method P may further comprise a step of adding an additional signal obtained from samples stored in the memory of the finite impulse response filter, to fill the delay introduced by the resampling step.
  • an additional signal obtained from samples stored in the memory of the finite impulse response filter, to fill the delay introduced by the resampling step.
  • the memory of the FIR filter of the resampling unit 505 can be saved at each frame after CELP decoding.
  • the number of samples in this memory corresponds to 1.25 ms at the frequency of the CELP core considered (12.8 or 16 kHz).
  • the resampling of the stored samples is performed by an interpolation method introducing a second delay less than the first delay of the finite impulse response filter, which can be considered as zero.
  • the 1.25 ms of signal generated from the memory of the FIR filter are resampled according to a method involving a lesser delay.
  • a re-sampling of the 1.25 ms of signal generated by the memory of the FIR filter can be implemented by cubic interpolation, which involves a delay of only two samples, less delay compared to the delay of the FIR filter.
  • two additional signal samples are required to re-sample the aforementioned 1.25 ms of signal: these two additional samples can be obtained by repeating the last value of the re-sampling memory of the FIR filter.
  • the decoder may further decode the high frequency part of the 6.25 msec CELP signal obtained from the first and second transition subframes.
  • the decoder CELP 504 can use the adaptive gain and the vector of the fixed dictionary of the last subframe of the previous CELP frame.
  • the decoder 500 further comprises a summation-recovery unit 509 capable of providing the overlap-addition, at a step 616, between the decoded and resampled CELP transition subframes, the samples resampled by the cubic interpolation, and the decoded signal of the transition frame from the MDCT decoder 507.
  • the unit 509 applies the modified window 327 of synthesis of the figure 3 .
  • the windowed samples are set to zero.
  • the windowed samples are divided by the unmodified window 324 of the figure 3 , and multiplied by a sine-type window so that, combined with the window applied to the encoder, the total window is sin 2 .
  • samples from the CELP and 0-delay resampling are weighted by a cos 2 window.
  • the transition frame thus obtained is transmitted to the output interface 510 of the decoder at step 608.
  • the figure 7 represents an example of a device 700 for determining the distribution of the bits of a transition frame.
  • the device comprises a random access memory 704 and a processor 703 for storing instructions for carrying out the method for determining the distribution of the bits of a transition frame described above.
  • the device also has a mass memory 705 for storing data to be retained after the application of the method.
  • the device 700 further comprises an input interface 701 and an output interface 706 respectively intended to receive the frames of the digital signal and to issue the detail of the budget allocated to these different frames.
  • the device 700 may further comprise a digital signal processor (DSP) 702.
  • DSP 702 receives the digital signal frames for shaping, demodulating and amplifying, in a manner known per se, these frames.
  • the compression or decompression devices are entities in their own right.
  • these devices can be embedded in any type of larger device such as a digital camera, a camera, a mobile phone, a computer, a movie projector, etc.
  • DSP digital signal processor

Landscapes

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

Description

La présente invention concerne le domaine du codage/décodage des signaux numériques.The present invention relates to the field of coding / decoding of digital signals.

L'invention s'applique avantageusement au codage/décodage de sons pouvant contenir de la parole et de la musique mélangés ou en alternance.The invention is advantageously applied to the coding / decoding of sounds that can contain speech and music mixed or alternately.

Pour coder efficacement les sons de parole à bas débit, les techniques de type CELP (« Code Excited Linear Prediction ») sont préconisées. Pour coder efficacement les sons musicaux, on préconise plutôt les techniques de codage par transformée.To effectively code low-speed speech sounds, CELP (Code Excited Linear Prediction) techniques are recommended. To effectively encode musical sounds, transform coding techniques are preferred.

Les codeurs de type CELP sont des codeurs prédictifs. Ils ont pour but de modéliser la production de la parole à partir de divers éléments : une prédiction linéaire à court-terme pour modéliser le conduit vocal, une prédiction à long-terme pour modéliser la vibration des cordes vocales en période voisée, et une excitation dérivée d'un dictionnaire fixe (bruit blanc, excitation algébrique) pour représenter l' "innovation" qui n'a pas pu être modélisée.CELP coders are predictive coders. They aim to model the production of speech from various elements: a short-term linear prediction to model the vocal tract, a long-term prediction to model the vibration of vocal cords in voiced period, and an excitation derived from a fixed dictionary (white noise, algebraic excitation) to represent the "innovation" which could not be modeled.

Les codeurs par transformée tels que MPEG AAC, AAC-LD, AAC-ELD ou ITU-T G.722.1 Annexe C, par exemple, utilisent des transformées à échantillonnage critique afin de compacter le signal dans le domaine transformé. On appelle « transformée à échantillonnage critique », une transformée pour laquelle le nombre de coefficients dans le domaine transformé est égal au nombre d'échantillons temporels dans chaque trame analysée.Transform coders such as MPEG AAC, AAC-LD, AAC-ELD or ITU-T G.722.1 Annex C, for example, use critical-sampling transforms to compact the signal in the transformed domain. A "critical-sampling transform" is a transform for which the number of coefficients in the transformed domain is equal to the number of time samples in each frame analyzed.

Une solution pour coder efficacement un signal de contenu mixte parole/musique consiste à sélectionner au cours du temps la meilleure technique entre au moins deux modes de codage, l'un de type CELP, l'autre de type transformée.One solution for efficiently coding a mixed speech / music content signal consists in selecting, over time, the best technique between at least two coding modes, one of the CELP type, the other of the transformed type.

C'est le cas par exemple des codecs 3GPP AMR-WB+ et MPEG USAC (pour "Unified Speech Audio Coding" en anglais). Les applications visées par AMR-WB+ et USAC ne sont pas conversationnelles, mais correspondent à des services de diffusion et stockage, sans contraintes fortes sur le retard algorithmique.This is the case, for example, of the 3GPP AMR-WB + and MPEG USAC codecs (for "Unified Speech Audio Coding" ). The applications targeted by AMR-WB + and USAC are not conversational, but correspond to broadcasting and storage services, without strong constraints on the algorithmic delay.

La version initiale du codec USAC, appelée RMO (Reference Model 0), est décrite dans l'article de M. Neuendorf et al., A Novel Scheme for Low Bitrate Unified Speech and Audio Coding - MPEG RM0, 7-10 May 2009, 126th AES Convention . Ce codec RMO alterne entre plusieurs modes de codage:

  • Pour les signaux de type parole: modes LPD (pour "Linear Predictive Domain" en anglais) comprenant deux modes différents dérivés du codage AMR-WB+:
    • Un mode ACELP
    • Un mode TCX (Transform Coded eXcitation) appelé wLPT (pour "weighted Linear Predictive Transform" en anglais) utilisant une transformée de type MDCT (contrairement au codec AMR-WB+ qui utilise une transformée de Fourier rapide, FFT, pour « Fast Fourier Transform » en anglais).
  • Pour les signaux de type musique: mode FD (pour "Frequency Domain" en anglais) utilisant un codage par transformée MDCT (pour "Modified Discrete Cosine Transform" en anglais) de type MPEG AAC (pour "Advanced Audio Coding" en anglais) sur 1024 échantillons.
The initial version of the USAC codec, called Reference Model 0 (RMO), is described in the M. Neuendorf et al., A Novel Scheme for Low Bitrate Unified Speech and Audio Coding - MPEG RM0, 7-10 May 2009, 126th AES Convention . This RMO codec alternates between several encoding modes:
  • For speech type signals: LPD (for Linear Predictive Domain ) modes comprising two different modes derived from the AMR-WB + coding:
    • ACELP mode
    • A TCX (Transform Coded eXcitation) mode called wLPT (for "weighted Linear Predictive Transform" in English) using an MDCT type transform (unlike the AMR-WB + codec which uses a Fast Fourier Transform, FFT) in English).
  • For music type signals: FD mode (for " Frequency Domain" in English) using a transform coding MDCT (for "Modified Discrete Cosine Transform " in English) MPEG AAC type (for "Advanced Audio Coding" in English) on 1024 samples.

Dans le codec USAC, les transitions entre modes LPD et FD sont cruciales pour assurer une qualité suffisante sans défaut de commutation, sachant que chaque mode (ACELP, TCX, FD) a une "signature" spécifique (en termes d'artefacts) et que les modes FD et LPD sont de nature différentes - le mode FD repose sur un codage par transformée dans le domaine du signal, tandis que les modes LPD utilisent un codage linéaire prédictif dans le domaine perceptuellement pondéré avec des mémoires de filtre à gérer correctement. La gestion des commutations intermodes dans le codec USAC RMO est détaillée dans l'article de J. Lecomte et al., "Efficient cross-fade windows for transitions between LPC-based and non-LPC based audio coding", 7-10 May 2009, 126th AES Convention . Comme expliqué dans cet article, la difficulté principale réside dans les transitions entre modes LPD vers FD et vice versa. On ne retient ici que le cas des transitions d'ACELP vers FD.In the USAC codec, the transitions between LPD and FD modes are crucial to ensure sufficient quality without switching faults, knowing that each mode (ACELP, TCX, FD) has a specific "signature" (in terms of artifacts) and that the FD and LPD modes are different in nature - the FD mode is based on transform coding in the signal domain, while the LPD modes use predictive linear coding in the perceptually weighted domain with filter memories to be handled correctly. The management of intermode switches in the USAC RMO codec is detailed in the article of J. Lecomte et al., "Efficient cross-fade windows for transitions between LPC-based and non-LPC based audio coding", 7-10 May 2009, 126th AES Convention . As explained in this article, the main difficulty lies in the transitions between LPD to FD modes and vice versa. We retain here only the case of transitions from ACELP to FD.

Pour bien en comprendre le fonctionnement, on rappelle ici le principe du codage par transformée MDCT au travers d'un exemple typique de réalisation.In order to understand how it works, the principle of transform coding MDCT is described here through a typical embodiment.

Au codeur la transformation MDCT se divise typiquement entre trois étapes, le signal étant découpé en trames de M échantillons avant codage MDCT:

  • Pondération du signal par une fenêtre appelé ici "fenêtre MDCT" de longueur 2M
  • Repliement temporel (ou "time-domain aliasing" en anglais) pour former un bloc de longueur M
  • Transformation DCT (pour "Discrete Cosine Transform" en anglais) de longueur M
At the coder, the MDCT transformation is typically divided into three steps, the signal being cut into frames of M samples before MDCT coding:
  • Weighting of the signal by a window called here "MDCT window" of length 2M
  • Time folding (or "time-domain aliasing" ) to form a block of length M
  • Transformation DCT (for "Discrete Cosine Transform " in English) of length M

La fenêtre MDCT est divisée en 4 portions adjacentes de longueurs égales M/2, appelées ici "quarts".The MDCT window is divided into 4 adjacent portions of equal lengths M / 2, here called "quarters".

Le signal est multiplié par la fenêtre d'analyse puis les repliements sont effectués : le premier quart (fenêtré) est replié (c'est-à-dire inversé dans le temps et mis en recouvrement) sur le deuxième quart et le quatrième quart est replié sur le troisième.The signal is multiplied by the analysis window and folds are made: the first quarter (windowed) is folded (ie inverted in time and overlapped) on the second quarter and the fourth quarter is folded on the third.

Plus précisément, le repliement temporel d'un quart sur un autre est effectué de la façon suivante : le premier échantillon du premier quart est additionné (ou soustrait) au dernier échantillon du deuxième quart, le deuxième échantillon du premier quart est additionné (ou soustrait) au avant-dernier échantillon du deuxième quart, et ainsi de suite jusqu'au dernier échantillon du premier quart qui est additionné (ou soustrait) au premier échantillon du deuxième quart.More precisely, the temporal folding from one quarter to another is done in the following way: the first sample of the first quarter is added (or subtracted) to the last sample of the second quarter, the second sample of the first quarter is added (or subtracted ) the second-last sample of the second quarter, and so on until the last sample of the first quarter that is added (or subtracted) to the first sample of the second quarter.

On obtient donc, à partir de 4 quarts, 2 quarts repliés où chaque échantillon est le résultat d'une combinaison linéaire de 2 échantillons du signal à coder. Cette combinaison linéaire induit un repliement temporel.We thus obtain, from 4 quarters, 2 folded quarters where each sample is the result of a linear combination of 2 samples of the signal to be coded. This linear combination induces a temporal folding.

Les 2 quarts repliés sont ensuite codés conjointement après transformation DCT (de type IV). Pour la trame suivante on se décale d'une moitié de fenêtre (soit 50% de recouvrement), les troisième et quatrième quarts de la trame précédente deviennent alors le premier et deuxième quart de la trame courante. Après repliement, on envoie une deuxième combinaison linéaire des mêmes paires d'échantillons comme dans la trame précédente, mais avec des poids différents.The folded two quarters are then coded together after DCT (Type IV) transformation. For the next frame we shift one half of window (or 50% overlap), the third and fourth quarters of the previous frame then become the first and second quarter of the current frame. After folding, we send a second linear combination of the same pairs of samples as in the previous frame, but with different weights.

Au décodeur, après transformation DCT inverse on obtient donc la version décodée de ces signaux repliés. Deux trames consécutives contiennent le résultat de 2 repliements différents des mêmes quarts, c'est à dire pour chaque paire d'échantillons on a le résultat de 2 combinaisons linéaires avec des poids différents mais connus : un système d'équation peut donc être résolu pour obtenir la version décodée du signal d'entrée, le repliement temporel peut être ainsi supprimé en utilisant 2 trames décodées consécutives.At the decoder, after inverse DCT transformation, the decoded version of these folded signals is thus obtained. Two consecutive frames contain the result of 2 different folds of the same quarters, ie for each pair of samples we have the result of 2 linear combinations with different but known weights: an equation system can be solved for to obtain the decoded version of the input signal, the temporal folding can thus be suppressed by using two consecutive decoded frames.

La résolution des systèmes d'équations mentionnées est en général faite implicitement par dépliement, multiplication par une fenêtre de synthèse judicieusement choisie puis addition-recouvrement des parties communes. Cette addition-recouvrement assure en même temps la transition douce (sans discontinuité due aux erreurs de quantification) entre 2 trames décodées consécutives, en effet cette opération se comporte comme un fondu enchaîné. Quand la fenêtre pour le premier quart ou le quatrième quart est à zéro pour chaque échantillon, on parle d'une transformation MDCT sans repliement temporel dans cette partie de la fenêtre. Dans ce cas la transition douce n'est pas assurée par la transformation MDCT, elle doit être faite par d'autres moyens comme par exemple un fondu enchaîné extérieur.The resolution of the systems of equations mentioned is generally made implicitly by unfolding, multiplication by a wisely selected synthesis window then addition-recovery of the common parts. This overlap addition ensures at the same time the smooth transition (without discontinuity due to quantization errors) between two consecutive decoded frames, in fact this operation behaves like a crossfade. When the window for the first quarter or fourth quarter is zero for each sample, we are talking about an MDCT transformation without time folding in this part of the window. In this case the smooth transition is not ensured by the MDCT transformation, it must be done by other means such as for example an external crossfade.

Il est à noter que des variantes de mise en oeuvre de la transformation MDCT existent, en particulier sur la définition de la transformée DCT, sur la façon de replier temporellement le bloc à transformer (par exemple, on peut inverser les signes appliqués aux quarts repliés à gauche et droite, ou replier les deuxième et troisième quart sur respectivement les premiers et quatrième quarts), etc. Ces variantes ne changent pas le principe de l'analyse-synthèse MDCT avec la réduction du bloc d'échantillons par fenêtrage, repliement temporel puis transformation et enfin fenêtrage, repliement et addition-recouvrement.It should be noted that implementation variants of the MDCT transformation exist, in particular on the definition of the DCT transform, on how to fold the block to be transformed temporarily (for example, the signs applied to the folded quarters can be reversed). left and right, or fold the second and third quarter over the first and fourth quarters respectively), etc. These variants do not change the principle of the MDCT analysis-synthesis with the reduction of the sample block by windowing, temporal folding then transformation and finally windowing, folding and addition-recovery.

Dans le cas du codeur USAC RMO décrit dans l'article de Lecomte et al., la transition entre une trame codée par un codage ACELP et une trame codée par un codage FD, s'effectue de la façon suivante:

  • Une fenêtre de transition pour le mode FD est utilisée avec un recouvrement à gauche de 128 échantillons.
In the case of the USAC RMO coder described in the article by Lecomte et al., The transition between a frame coded by an ACELP coding and a frame coded by an FD coding is carried out as follows:
  • A transition window for the FD mode is used with a left overlap of 128 samples.

Le repliement temporel sur cette zone de recouvrement est annulé en introduisant un repliement temporel "artificiel" à droite de la trame ACELP reconstruite. La fenêtre MDCT servant à la transition a une taille de 2304 échantillons et la transformation DCT opère sur 1152 échantillons alors que normalement les trames du mode FD sont codées avec une fenêtre de taille de 2048 échantillons et une transformation DCT de 1024 échantillons. Ainsi la transformation MDCT du mode FD normal n'est pas directement utilisable pour la fenêtre de transition, le codeur doit intégrer également une version modifiée de cette transformation ce qui complexifie la mise en oeuvre de la transition pour le mode FD.The temporal folding on this overlapping zone is canceled by introducing an "artificial" time folding to the right of the reconstructed ACELP frame. The MDCT window serving at the transition has a size of 2304 samples and the DCT transformation operates on 1152 samples whereas normally FD mode frames are encoded with a window size of 2048 samples and a DCT transformation of 1024 samples. Thus the MDCT transformation of the normal FD mode is not directly usable for the transition window, the encoder must also integrate a modified version of this transformation which complicates the implementation of the transition for the FD mode.

Cette technique de codage de l'état de l'art a un retard algorithmique de l'ordre de 100 à 200 ms. Ce retard est incompatible avec des applications conversationnelles pour lesquelles le retard de codage est en général de l'ordre de 20 à 25 ms pour les codeurs de parole pour les applications mobiles (ex: GSM EFR, 3GPP AMR et AMR-WB) et de l'ordre de 40 ms pour les codeurs par transformée conversationnels pour la vidéoconférence (par exemple UIT-T G.722.1 Annexe C et G.719). De plus, le fait de ponctuellement augmenter la taille de transformation DCT (2304 contre 2048) engendre un pic de complexité au moment de la transition.This coding technique of the state of the art has an algorithmic delay of the order of 100 to 200 ms. This delay is incompatible with conversational applications for which coding delay is generally of the order of 20 to 25 ms for speech coders for mobile applications (eg GSM EFR, 3GPP AMR and AMR-WB) and in the order of 40 ms for conversational transform coders for videoconferencing (eg ITU-T G.722.1 Annex C and G.719). In addition, the fact of punctually increasing the DCT transformation size (2304 against 2048) generates a peak of complexity at the time of the transition.

Pour pallier à ces inconvénients, la demande de brevet internationale WO2012/085451 , dont le contenu est incorporé par référence à la présente demande, propose une nouvelle méthode pour coder une trame de transition. La trame de transition est définie comme la trame courante codée par transformée qui succède à une trame précédente codée par un codage prédictif. Selon la nouvelle méthode précitée, une partie de la trame de transition, par exemple une sous trame de 5 ms, dans le cas d'un codage CELP à 12.8 kHz, et deux trames CELP supplémentaires de 4ms chacune, dans le cas d'un codage CELP à 16 kHz, sont codées par un codage prédictif restreint par rapport au codage prédictif de la trame précédente.To overcome these drawbacks, the international patent application WO2012 / 085451 , the contents of which are incorporated by reference in the present application, proposes a new method for encoding a transition frame. The transition frame is defined as the transform-encoded current frame that succeeds a previous frame encoded by predictive coding. According to the new method mentioned above, a part of the transition frame, for example a subframe of 5 ms, in the case of a CELP coding at 12.8 kHz, and two additional CELP frames of 4 ms each, in the case of a CELP coding at 16 kHz, are coded by a predictive coding restricted with respect to the predictive coding of the previous frame.

Le codage prédictif restreint consiste à utiliser les paramètres stables de la trame précédente codée par un codage prédictif, comme par exemple les coefficients du filtre de prédiction linéaire et de ne coder que quelques paramètres minimaux pour la sous-trame supplémentaire dans la trame de transition.Restricted predictive coding consists in using the stable parameters of the preceding frame coded by a predictive coding, such as the coefficients of the linear prediction filter and coding only a few minimum parameters for the additional subframe in the transition frame.

Comme la trame précédente n'a pas été codée avec un codage par transformée, l'annulation du repliement temporel dans la première partie de la trame est impossible. La demande de brevet WO2012/085451 précitée propose en outre de modifier la première moitié de la fenêtre MDCT de manière à ne pas avoir de repliement temporel dans le premier quart normalement replié. Il est aussi proposé d'intégrer une partie de l'addition-recouvrement (aussi appelé « fondu enchaîné » ou encore « overlap-add » en anglais) entre la trame CELP décodée et la trame MDCT décodée en modifiant les coefficients de la fenêtre d'analyse/synthèse. En référence à la figure 4e de la demande précitée, les traits mixtes (lignes alternant des points et traits) correspondent aux lignes de repliement de codage MDCT (figure du haut) et aux lignes de dépliement de décodage MDCT (figure du bas). Sur la figure du haut, les lignes en gras séparent les trames de nouveaux échantillons à l'entrée du codeur. Le codage d'une nouvelle trame MDCT peut être commencé quand une trame ainsi définie de nouveaux échantillons d'entrée est entièrement disponible. Il est important de remarquer que ces lignes en gras au codeur ne correspondent pas à la trame courante mais aux blocs successifs de nouveaux échantillons arrivant pour chaque trame : la trame courante est en fait retardée de 8,75 ms qui correspondent à une anticipation, dénommée « lookahead » en anglais. Sur la figure du bas, les lignes en gras séparent les trames décodées à la sortie du décodeur.Since the previous frame has not been coded with transform coding, the cancellation of the temporal folding in the first part of the frame is impossible. The patent application WO2012 / 085451 Moreover, it is proposed to modify the first half of the MDCT window so as not to have time folding in the first quarter normally folded. It is also proposed to integrate a part of the addition-overlap (also called "fade-in" or " overlap-add " in English) between the decoded CELP frame and the decoded MDCT frame by modifying the coefficients of the window. analysis / synthesis. With reference to the figure 4e of the aforementioned application, the mixed lines (lines alternating points and lines) correspond to the MDCT coding folding lines (top figure) and the MDCT decoding unfolding lines (bottom figure). In the figure above, the bold lines separate the frames of new samples at the input of the encoder. The coding of a new MDCT frame can be started when a so-defined frame of new input samples is fully available. It is It is important to note that these lines in bold at the coder do not correspond to the current frame but to the successive blocks of new samples arriving for each frame: the current frame is in fact delayed by 8.75 ms which corresponds to an anticipation, called " lookahead " . " in English. In the bottom figure, the bold lines separate the decoded frames at the output of the decoder.

Au codeur, la fenêtre de transition est nulle jusqu'au point de repliement. Ainsi les coefficients de la partie gauche de la fenêtre repliée seront identiques à ceux de la fenêtre non repliée. La partie entre le point de repliement et la fin de la sous-trame CELP de transition (TR) correspond à une demi-fenêtre sinusoïdale. Au décodeur, après dépliement, la même fenêtre est appliquée au signal. Sur le segment entre le point de repliement et le début de la trame MDCT, les coefficients de la fenêtre correspondent à une fenêtre de forme sin2. Pour assurer l' addition-recouvrement entre la sous trame CELP décodée et le signal issu de la MDCT, il suffit d'appliquer une fenêtre de type cos2 à la partie de la sous-trame CELP en recouvrement et de sommer cette dernière avec la trame MDCT. La méthode est à reconstruction parfaite.At the encoder, the transition window is zero to the point of folding. Thus the coefficients of the left part of the folded window will be identical to those of the unfolded window. The portion between the folding point and the end of the CELP transition subframe (TR) corresponds to a sinusoidal half-window. At the decoder, after unfolding, the same window is applied to the signal. On the segment between the folding point and the beginning of the MDCT frame, the coefficients of the window correspond to a window of form sin 2 . To ensure the overlap-addition between the decoded subframe CELP and the signal from the MDCT, it suffices to apply a window of cos 2 type to the part of the subframe CELP in overlap and to summon the latter with the MDCT frame. The method is perfect reconstruction.

Toutefois, la demande WO2012/085451 prévoit l'allocation d'un budget de bits Btrans pour le codage de la sous-trame CELP qui correspondrait au budget nécessaire au codage CELP d'une trame classique, ramené à une seule sous-trame. Le budget restant pour le codage de la trame de transition par transformée est alors insuffisant et peut amener à une baisse de qualité à bas débit.However, the demand WO2012 / 085451 provides for the allocation of a trans B bit budget for the coding of the CELP subframe which would correspond to the budget required for the CELP coding of a conventional frame, reduced to a single sub-frame. The remaining budget for the coding of the transform transition frame is then insufficient and can lead to a drop in quality at low bit rate.

La présente invention vient améliorer cette situation.The present invention improves this situation.

A cet effet, un premier aspect de l'invention concerne un procédé de détermination d'une répartition de bits de codage d'une trame de transition. Ce procédé est mis en oeuvre dans un codeur/décodeur pour le codage/décodage d'un signal numérique audio. La trame de transition est précédée d'une trame précédente codée par prédiction et le codage de cette trame de transition comprend un codage par transformée et un codage prédictif d'une unique sous-trame de la trame de transition. Le procédé comporte les étapes suivantes :

  • affectation d'un débit binaire pour le codage prédictif de la sous-trame de transition, le débit binaire étant égal au minimum entre le débit binaire du codage par transformée de la trame de transition et une première valeur prédéterminée de débit binaire ;
  • détermination d'un premier nombre de bits alloués pour le codage prédictif de la sous-trame de transition pour le débit binaire ; et
  • calcul d'un deuxième nombre de bits alloués pour le codage par transformée de la trame de transition à partir du premier nombre de bits et d'un nombre de bits disponibles pour le codage de le trame de transition.
For this purpose, a first aspect of the invention relates to a method for determining a coding bit distribution of a transition frame. This method is implemented in an encoder / decoder for encoding / decoding a digital audio signal. The transition frame is preceded by a preceding prediction coded frame and the coding of this transition frame comprises transform coding and predictive coding of a single subframe of the transition frame. The method comprises the following steps:
  • assigning a bit rate for the predictive encoding of the transition subframe, the bit rate being at least between the bit rate of the transform coding of the transition frame and a first predetermined bit rate;
  • determining a first number of bits allocated for the predictive coding of the transition subframe for the bit rate; and
  • calculating a second number of bits allocated for the transform coding of the transition frame from the first number of bits and a number of bits available for the encoding of the transition frame.

Le débit binaire du codage prédictif est donc bridé par une valeur maximum. Le nombre de bits alloués au codage prédictif dépend de ce débit binaire. Dans la mesure où plus le débit binaire est faible, plus le nombre de bits alloué au codage est faible, on garantit un budget restant minimum pour le codage de la trame de transition par transformée.The bit rate of the predictive coding is therefore limited by a maximum value. The number of bits allocated to the predictive coding depends on this bit rate. Since the lower the bit rate, the smaller the number of bits allocated to the coding, a minimum remaining budget is ensured for the coding of the transform transition frame.

De plus, le nombre de bits alloués au codage prédictif de la sous-trame est optimisé par rapport au débit binaire du codage par transformée. En effet, si le débit binaire du codage par transformée de la trame de transition est inférieur à la première valeur prédéterminé, le débit binaire pour le codage prédictif et le débit binaire pour le codage par transformée est identique. La cohérence des signaux ainsi généré est donc améliorée ce qui simplifie les étapes ultérieures de codage (codage canal) et le traitement des trames reçues au décodeur.In addition, the number of bits allocated to the predictive coding of the subframe is optimized with respect to the bit rate of the transform coding. Indeed, if the bit rate of the transform coding of the transition frame is less than the first predetermined value, the bit rate for the predictive coding and the bit rate for the transform coding is identical. The coherence of the signals thus generated is thus improved, which simplifies the subsequent steps of coding (channel coding) and the processing of the frames received at the decoder.

Dans un autre mode de réalisation, le codeur/décodeur comprend un premier coeur fonctionnant, pour le codage/décodage prédictif d'une trame de signal, à une première fréquence, et un deuxième coeur fonctionnant, pour le codage/décodage prédictif d'une trame de signal, à une deuxième fréquence. La première valeur prédéterminée de débit binaire dépend du coeur sélectionné parmi les premier et deuxième coeurs pour le codage/décodage de la trame précédente codée par prédiction.In another embodiment, the encoder / decoder comprises a first working core, for predictive coding / decoding of a signal frame, at a first frequency, and a second working heart, for predictive coding / decoding of a signal frame, at a second frequency. The first predetermined bit rate value depends on the core selected from the first and second cores for coding / decoding of the prediction encoded previous frame.

La fréquence de fonctionnement du coeur du codeur/décodeur a une influence sur le nombre de bits requis pour représenter correctement le signal numérique d'entrée. Par exemple, pour certaines fréquences de fonctionnement, il faut prévoir des bits supplémentaires pour coder des bandes fréquences non directement traitées par le coeur.The operating frequency of the encoder / decoder core influences the number of bits required to correctly represent the input digital signal. For example, for certain operating frequencies, it is necessary to provide additional bits for coding frequency bands not directly processed by the core.

Dans un mode de réalisation, lorsque le premier coeur a été sélectionné pour le codage/décodage de la trame précédente codée par prédiction, le débit binaire affecté est en outre égal au maximum entre le débit binaire de la trame de transition codée par transformée et au moins une deuxième valeur prédéterminée de débit binaire, la deuxième valeur étant inférieure à la première valeur. Ainsi, un débit binaire minimum est garanti afin d'éviter des écarts de débits trop importants entre les différentes trames codées.In one embodiment, when the first core has been selected for encoding / decoding of the prediction encoded previous frame, the assigned bit rate is furthermore equal to the maximum between the bit rate of the transform coded transition frame and the minus a second predetermined value of bit rate, the second value being less than the first value. Thus, a minimum bit rate is guaranteed in order to avoid excessively large bit rates between the different coded frames.

Dans un autre mode de réalisation, le signal numérique est décomposé en au moins une bande basse de fréquences et une bande haute de fréquence. Dans cette situation, le premier nombre de bits calculé est affecté au codage prédictif de la sous-trame de transition pour la bande basse de fréquences. Un troisième nombre de bits prédéterminé est alors alloué à un codage de la sous-trame de transition pour la bande haute de fréquences. De plus, le deuxième nombre de bits alloués pour le codage par transformée de la trame de transition est alors déterminé en outre à partir troisième nombre de bits prédéterminé. Ainsi, il est possible de coder efficacement la totalité du spectre fréquentiel du signal d'entrée sans sacrifier la qualité du signal restitué au décodage.In another embodiment, the digital signal is decomposed into at least one low frequency band and one high frequency band. In this situation, the first calculated bit count is assigned to the predictive encoding of the transition subframe for the low frequency band. A third predetermined number of bits is then allocated to an encoding of the transition subframe for the high frequency band. In addition, the second number of bits allocated for the transform coding of the transition frame is then further determined from the third predetermined number of bits. Thus, it is possible to efficiently code the entire frequency spectrum of the input signal without sacrificing the quality of the signal reproduced at decoding.

Dans un mode de réalisation, le nombre de bits disponibles pour le codage de la trame de transition est fixe. Ceci réduit la complexité des étapes de codage.In one embodiment, the number of bits available for encoding the transition frame is fixed. This reduces the complexity of the coding steps.

Dans un autre mode de réalisation, le deuxième nombre de bits est égal au nombre fixe de bits de codage de la trame de transition moins le premier nombre de bits moins le troisième nombre de bits. La détermination finale de la répartition des bits dans la trame de transition est ainsi limitée à une soustraction de valeurs entières ce qui simplifie le codage.In another embodiment, the second number of bits is equal to the fixed number of coding bits of the transition frame minus the first number of bits minus the third number of bits. The final determination of the distribution of the bits in the transition frame is thus limited to a subtraction of integer values which simplifies the coding.

En variante, le deuxième nombre de bits est égal au nombre fixe de bits de codage de la trame de transition moins le premier nombre de bits moins le troisième nombre de bits moins un premier bit moins un deuxième bit. Le premier bit indique si un filtrage passe-bas est effectué lors de la détermination des paramètres du codage prédictif de la sous-trame de transition, les paramètres étant relatifs au délai tonal. Le deuxième bit indique la fréquence utilisée par le coeur du codeur/décodeur pour le codage/décodage prédictif de la sous-trame de transition. Une telle indication permet un codage plus flexible.In a variant, the second number of bits is equal to the fixed number of coding bits of the transition frame minus the first number of bits minus the third number of bits minus a first bit minus a second bit. The first bit indicates whether low-pass filtering is performed when determining the parameters of the predictive coding of the transition subframe, the parameters being related to the pitch delay. The second bit indicates the frequency used by the encoder / decoder heart for the predictive coding / decoding of the transition subframe. Such an indication allows a more flexible coding.

Un deuxième aspect de l'invention concerne un procédé de codage d'un signal numérique audio dans un codeur apte à coder des trames de signal selon un codage prédictif ou selon un codage par transformée, comportant les étapes suivantes :

  • * codage d'une trame précédente d'échantillons du signal numérique selon un codage prédictif ;
  • * codage d'une trame courante d'échantillons du signal numérique en une trame de transition, le codage de la trame de transition comprenant un codage par transformée et un codage prédictif d'une unique sous-trame de la trame de transition, le codage de la trame courante comportant les sous-étapes suivantes :
    • détermination de la répartition des bits par le procédé selon le premier aspect de l'invention ;
    • codage par transformée de la trame de transition sur le deuxième nombre de bits alloués ;
    • codage prédictif de la sous-trame de transition sur le premier nombre de bits alloués.
A second aspect of the invention relates to a method for coding an audio digital signal in an encoder able to code signal frames according to a predictive coding or according to a transform coding, comprising the following steps:
  • coding of a previous frame of samples of the digital signal according to a predictive coding;
  • coding of a current frame of samples of the digital signal into a transition frame, the coding of the transition frame comprising a transform coding and a predictive coding of a single subframe of the transition frame, the coding the current frame including the following substeps:
    • determining the bit distribution by the method according to the first aspect of the invention;
    • transform coding of the transition frame on the second number of allocated bits;
    • predictive encoding of the transition subframe on the first number of allocated bits.

La détermination de la répartition des bits compris dans la trame de transition est ainsi déterminée avant le codage. Comme cela est décrit ci-après, cette détermination de la répartition des bits est reproductible au décodeur ce qui évite une transmission explicite d'informations sur cette répartition.The determination of the distribution of the bits included in the transition frame is thus determined before the coding. As described below, this determination of the distribution of the bits is reproducible to the decoder which avoids an explicit transmission of information on this distribution.

De plus, ce codage garantit une répartition équilibré entre le codage prédictif et le codage par transformée au sein de la trame de transition.In addition, this coding ensures a balanced distribution between the predictive coding and the transform coding within the transition frame.

Dans un mode de réalisation, le codage prédictif comprend la génération de paramètres de codage prédictif déterminés pour le débit binaire affecté lors de la répartition des bits dans la trame de transition. L'utilisation de tels paramètres prédictifs permet d'optimiser au mieux le ratio entre le débit binaire affecté au codage prédictif et le débit restant affecté au codage par transformée, et donc d'optimiser la qualité du signal reconstruit. En effet, à qualité constante, le nombre de bits attribués à tel ou tel paramètre prédictif peut varier dans des proportions non linéaires par rapport au débit binaire affecté au codage prédictif.In one embodiment, the predictive coding comprises generating predictive coding parameters determined for the assigned bit rate when distributing the bits in the transition frame. The use of such predictive parameters optimizes the ratio between the bit rate assigned to the predictive coding and the remaining bit rate assigned to the transform coding, and thus optimizes the quality of the reconstructed signal. Indeed, at constant quality, the number of bits allocated to one or another predictive parameter can vary in non-linear proportions with respect to the bit rate assigned to the predictive coding.

Dans un autre mode de réalisation, le codage prédictif comprend la génération de paramètres de codage prédictif restreints par rapport au codage prédictif de la trame précédente en réutilisant au moins un paramètre du codage prédictif de la trame précédente. Ainsi, au décodage, des informations complémentaires sont extraites de la trame précédente pour compléter le décodage de la sous-trame de transition à décoder. Ceci réduit le nombre de bits qui doivent être réservés pour le codage prédictif de la sous-trame de transition.In another embodiment, the predictive coding comprises generating predictive coding parameters restricted with respect to the predictive coding of the preceding frame by reusing at least one parameter of the predictive coding of the preceding frame. So, at decoding, additional information is extracted from the previous frame to complete the decoding of the transition subframe to be decoded. This reduces the number of bits that must be reserved for the predictive encoding of the transition subframe.

La combinaison d'une réutilisation de paramètres d'une trame précédente avec l'affectation du débit binaire du codage par transformée de la trame de transition permet d'assurer une transition cohérente à moindre coût.The combination of reuse of parameters of a previous frame with the allocation of the bit rate of the transform coding of the transition frame makes it possible to ensure a coherent transition at a lower cost.

Un troisième aspect de l'invention concerne un procédé de décodage d'un signal numérique audio codé par un codage prédictif et par un codage par transformée, comportant les étapes de:

  • * décodage prédictif d'une trame précédente d'échantillons du signal numérique codée selon un codage prédictif ;
  • * décodage d'une trame de transition codant une trame courante d'échantillons du signal numérique, le codage de la trame de transition comprenant un codage par transformée et un codage prédictif d'une unique sous-trame de la trame de transition, comportant les sous-étapes de :
    • détermination de la répartition des bits par le procédé selon le premier aspect de l'invention ;
    • décodage prédictif de la sous-trame de transition sur le premier nombre de bits alloués ;
    • décodage par transformée de la trame de transition sur le deuxième nombre de bits alloués.
A third aspect of the invention relates to a method for decoding an audio digital signal coded by predictive coding and by transform coding, comprising the steps of:
  • predictive decoding of a previous frame of samples of the digital signal encoded according to a predictive coding;
  • decoding of a transition frame coding a current frame of samples of the digital signal, the coding of the transition frame comprising a transform coding and a predictive coding of a single subframe of the transition frame, comprising the sub-steps of:
    • determining the bit distribution by the method according to the first aspect of the invention;
    • predictive decoding of the transition subframe on the first number of allocated bits;
    • decoding by transforming the transition frame on the second number of allocated bits.

Comme mentionné ci-avant, le procédé de détermination de la répartition des bits dans la trame de transition est directement reproductible au niveau du décodeur. En effet, la répartition des bits est déterminée uniquement à partir du débit binaire de la partie de la trame de transition codée par transformée. Aucun bit supplémentaire n'est donc nécessaire pour mettre en oeuvre cette étape de détermination de la répartition des bits et une économie de bande passante est donc réalisée.As mentioned above, the method for determining the distribution of bits in the transition frame is directly reproducible at the decoder. Indeed, the bit distribution is determined solely from the bit rate of the portion of the transform coded transition frame. No additional bit is therefore necessary to implement this step of determining the distribution of the bits and a saving of bandwidth is therefore achieved.

Un quatrième aspect de l'invention vise en outre un programme informatique comportant des instructions pour la mise en oeuvre du procédé selon les aspects de l'invention décrits ci-avant, lorsque ces instructions sont exécutées par un processeur.A fourth aspect of the invention further provides a computer program comprising instructions for carrying out the method according to the aspects of the invention described above, when these instructions are executed by a processor.

Un cinquième aspect de l'invention concerne un dispositif de détermination d'une répartition de bits de codage d'une trame de transition, ce dispositif étant mis en oeuvre dans un codeur/décodeur pour le codage/décodage d'un signal numérique audio, la trame de transition étant précédée d'une trame précédente codée par prédiction, le codage de la trame de transition comprenant un codage par transformée et un codage prédictif d'une unique sous-trame de la trame de transition, le nombre de bits de codage de la trame de transition étant fixe, le dispositif comportant un processeur agencé pour effectuer les opérations suivantes :

  • affectation d'un débit binaire pour le codage prédictif de la sous-trame de transition, ledit débit binaire étant égal au minimum entre le débit binaire du codage par transformée de la trame de transition et une première valeur prédéterminée de débit binaire, au ;
  • détermination d'un premier nombre de bits alloués pour le codage prédictif de la sous-trame de transition pour le débit binaire;
  • calcul d'un deuxième nombre de bits alloués pour le codage par transformée de la trame de transition à partir du nombre de bits requis pour le codage des paramètres de codage et le nombre fixe de bits de codage de la trame de transition.
A fifth aspect of the invention relates to a device for determining a coding bit distribution of a transition frame, this device being implemented in an encoder / decoder for coding / decoding of a digital audio signal, the transition frame being preceded by a preceding prediction coded frame, the coding of the transition frame comprising a transform coding and a predictive coding of a single sub-frame of the transition frame, the number of coding bits of the transition frame being fixed, the device comprising a processor arranged to perform the following operations:
  • assigning a bit rate for the predictive coding of the transition subframe, said bit rate being at least between the bit rate of the transform coding of the transition frame and a first predetermined bit rate value, at;
  • determining a first number of bits allocated for the predictive coding of the transition subframe for the bit rate;
  • calculating a second number of bits allocated for the transform coding of the transition frame from the number of bits required for coding the coding parameters and the fixed number of coding bits of the transition frame.

Un sixième aspect de l'invention vise en outre un codeur apte à coder des trames d'un signal numérique audio selon un codage prédictif ou selon un codage par transformée, comportant :

  • * un dispositif selon le cinquième aspect de l'invention ;
  • * un codeur prédictif comportant un processeur agencé pour effectuer les opérations suivantes :
    • codage d'une trame précédente d'échantillons du signal numérique selon un codage prédictif ;
    • codage prédictif d'une unique sous-trame comprise dans une trame de transition codant une trame courante d'échantillons du signal numérique, le codage de la trame de transition comprenant un codage par transformée et un codage prédictif de la sous-trame, le processeur étant agencé pour effectuer l'opération de codage prédictif de la sous-trame de transition sur le premier nombre de bits alloués ;
  • * un codeur par transformée comportant un processeur agencé pour effectuer un codage par transformée de la trame de transition sur le deuxième nombre de bits alloués.
A sixth aspect of the invention is further directed to an encoder capable of encoding frames of a digital audio signal according to a predictive or transform coding, comprising:
  • a device according to the fifth aspect of the invention;
  • a predictive encoder comprising a processor arranged to perform the following operations:
    • encoding a previous frame of samples of the digital signal according to a predictive coding;
    • predictive coding of a single sub-frame included in a transition frame coding a current frame of samples of the digital signal, the coding of the transition frame comprising a transform coding and a predictive coding of the sub-frame, the processor being arranged to perform the predictive coding operation of the transition subframe on the first number of allocated bits;
  • a transform coder comprising a processor arranged to perform transform coding of the transition frame on the second number of allocated bits.

Un septième aspect de l'invention vise en outre un décodeur d'un signal numérique codé par un codage prédictif et par un codage par transformée, comportant :

  • * un dispositif selon le cinquième aspect de l'invention ;
  • * un décodeur prédictif comportant un processeur agencé pour effectuer les opérations suivantes :
    • décodage prédictif d'une trame précédente d'échantillons du signal numérique codée selon un codage prédictif ;
    • décodage prédictif d'une unique sous-trame comprise dans une trame de transition codant une trame courante d'échantillons du signal numérique, le codage de la trame de transition comprenant un codage par transformée et un codage prédictif de la sous-trame, le processeur étant agencé pour effectuer l'opération de décodage prédictif de la sous-trame de transition sur le premier nombre de bits alloués ;
  • * un décodeur par transformée comportant un processeur agencé pour effectuer un décodage par transformée de la trame de transition sur le deuxième nombre de bits alloués.
A seventh aspect of the invention is further directed to a decoder of a digital signal encoded by predictive coding and transform coding, comprising:
  • a device according to the fifth aspect of the invention;
  • a predictive decoder comprising a processor arranged to perform the following operations:
    • predictive decoding of a previous frame of samples of the coded digital signal according to a predictive coding;
    • predictive decoding of a single sub-frame included in a transition frame coding a current frame of samples of the digital signal, the coding of the transition frame comprising a transform coding and a predictive coding of the sub-frame, the processor being arranged to perform the predictive decoding operation of the transition subframe on the first number of allocated bits;
  • a transform decoder comprising a processor arranged to carry out a decoding by transforming the transition frame on the second number of allocated bits.

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 1 illustre un codeur audio selon un mode de réalisation de l'invention ;
  • la figure 2 est un diagramme illustrant les étapes d'un procédé de codage, mis en oeuvre par le codeur audio de la figure 1, selon un mode de réalisation de l'invention ;
  • la figure 3 présente une transition entre trames CELP et MDCT selon un mode de réalisation de l'invention ;
  • la figure 4 est un diagramme illustrant les étapes d'un procédé de détermination d'une répartition de bits de codage d'une trame de transition, selon un mode de réalisation de l'invention ;
  • la figure 5 illustre un décodeur audio selon un mode de réalisation de l'invention ;
  • la figure 6 est un diagramme illustrant les étapes d'un procédé de décodage, mis en oeuvre par le décodeur audio de la figure 5, selon un mode de réalisation de l'invention ;
  • la figure 7 illustre un dispositif de détermination de la répartition de bits dans une trame de transition selon un mode de réalisation de l'invention.
Other features and advantages of the invention will appear on examining the detailed description below, and the attached drawings in which:
  • the figure 1 illustrates an audio coder according to an embodiment of the invention;
  • the figure 2 is a diagram illustrating the steps of a coding method, implemented by the audio coder of the figure 1 according to one embodiment of the invention;
  • the figure 3 has a transition between CELP and MDCT frames according to one embodiment of the invention;
  • the figure 4 is a diagram illustrating the steps of a method for determining a coding bit distribution of a transition frame, according to an embodiment of the invention;
  • the figure 5 illustrates an audio decoder according to an embodiment of the invention;
  • the figure 6 is a diagram illustrating the steps of a decoding method, implemented by the audio decoder of the figure 5 according to one embodiment of the invention;
  • the figure 7 illustrates a device for determining the distribution of bits in a transition frame according to an embodiment of the invention.

La figure 1 illustre un codeur audio 100 selon un mode de réalisation de l'invention.The figure 1 illustrates an audio encoder 100 according to one embodiment of the invention.

La figure 2 est un diagramme illustrant les étapes d'un procédé de codage, mis en oeuvre par le codeur audio 100 de la figure 1, selon un mode de réalisation de l'invention.The figure 2 is a diagram illustrating the steps of a coding method, implemented by the audio coder 100 of the figure 1 according to one embodiment of the invention.

Le codeur 100 comprend une unité de réception 101 pour recevoir, à une étape 201, un signal d'entrée échantillonné à une fréquence donnée fs (par exemple 8, 16, 32 ou 48 kHz) et décomposé en sous-trames, par exemple de 20 ms.The encoder 100 comprises a reception unit 101 for receiving, at a step 201, an input signal sampled at a given frequency fs (for example 8, 16, 32 or 48 kHz) and decomposed into subframes, for example 20 ms.

Sur réception d'une trame courante, une unité de pré-traitement 102 est apte à sélectionner, à une étape 202, le mode de codage qui est le plus adéquat pour le codage de la trame courante, parmi au moins un mode LPD et un mode FD. Dans la description qui suit, il est considéré, à titre illustratif, qu'un codage MDCT est utilisé pour le mode FD et qu'un codage CELP est utilisé pour le mode LPD. Aucune restriction n'est attachée aux techniques de codage respectivement employées pour les modes LPD et FD. Ainsi, des modes supplémentaires aux modes CELP et MDCT peuvent être par exemple utilisés, le codage CELP peut être remplacé par un autre type de codage prédictif, la transformée MDCT peut être remplacée par un autre type de transformée.On receipt of a current frame, a preprocessing unit 102 is able to select, in a step 202, the coding mode which is the most suitable for the coding of the current frame, among at least one LPD mode and one FD mode. In the following description, it is considered, by way of illustration, that an MDCT encoding is used for the FD mode and that a CELP encoding is used for the LPD mode. There are no restrictions on the coding techniques used for the LPD and FD modes, respectively. Thus, modes additional to the CELP and MDCT modes may for example be used, the CELP coding may be replaced by another type of predictive coding, the MDCT transform may be replaced by another type of transform.

On suppose ici que le type de trame est transmis explicitement par l'intermédiaire du bloc 206, avec par exemple un codage de longueur fixe indiquant le mode choisi parmi une liste prédéfinie. Dans des variantes de l'invention, ce codage du mode choisi dans chaque trame pourra être de longueur variable. On prévoit également que le type de codage CELP (12,8 ou 16 kHz) pourra être transmis explicitement par le biais d'un bit afin de faciliter le décodage de la trame de transition.It is assumed here that the frame type is transmitted explicitly via block 206, with for example a fixed length coding indicating the mode selected from a predefined list. In variants of the invention, this coding of the mode chosen in each frame may be of variable length. It is also expected that the CELP coding type (12.8 or 16 kHz) can be transmitted explicitly via a bit to facilitate the decoding of the transition frame.

Une étape 203 vérifie que le codage CELP a été sélectionné à l'étape 202. Dans le cas où le mode LPD est sélectionné, la trame de signal est transmise à un codeur CELP 103 pour le codage d'une trame CELP à une étape 204. Le codeur CELP peut utiliser deux « coeurs » fonctionnant à deux fréquences d'échantillonnage internes respectives, par exemple fixées à 12,8 kHz et 16 kHz, qui requièrent d'utiliser un échantillonnage du signal d'entrée (à la fréquence fs) à la fréquence interne de 12,8 ou 16 kHz. Un tel ré-échantillonnage peut être mis en oeuvre dans une unité de ré-échantillonnage dans le bloc de pré-traitement 102 ou dans le codeur CELP 103. La trame est ensuite codée par prédiction par le codeur CELP 103 en déduisant des paramètres CELP qui dépendent en général d'une classification du signal. Ces paramètres CELP incluent typiquement des coefficients LPC, un vecteur de gains adaptatif et fixe, un vecteur de dictionnaire adaptatif, un vecteur de dictionnaire fixe. Cette liste peut également être modifiée en fonction d'une classe de signal dans la trame, comme dans le codage UIT-T G.718. Les paramètres ainsi calculés peuvent ensuite être quantifiés, multiplexés et transmis à une étape 206 au décodeur par une unité de transmission 108. Des paramètres de codage CELP, tels que les coefficients LPC, le vecteur de gains adaptatif et fixe, le vecteur de dictionnaire adaptatif, le vecteur de dictionnaire fixe ainsi que des états du décodeur CELP peuvent en outre être mémorisés, à une étape 205, dans une mémoire 107 dans le cas où la trame suivant la trame courante serait une trame de transition MDCT.A step 203 verifies that the CELP encoding has been selected in step 202. In the case where the LPD mode is selected, the signal frame is transmitted to a CELP encoder 103 for encoding a CELP frame at a step 204 The CELP coder may use two "cores" operating at two respective internal sampling frequencies, for example set at 12.8 kHz and 16 kHz, which require the use of a sampling of the input signal (at the frequency fs). at the internal frequency of 12.8 or 16 kHz. Such resampling may be implemented in a resampling unit in the preprocessing block 102 or in the CELP coder 103. The frame is then coded by prediction by the CELP coder 103 by deducting CELP parameters which generally depend on a classification of the signal. These CELP parameters typically include LPC coefficients, an adaptive and fixed gain vector, an adaptive dictionary vector, a fixed dictionary vector. This list can also be modified according to a signal class in the frame, as in ITU-T G.718 coding. The parameters thus calculated can then be quantized, multiplexed and transmitted at a step 206 to the decoder by a transmission unit 108. CELP coding parameters, such as the LPC coefficients, the adaptive and fixed gain vector, the adaptive dictionary vector , the fixed dictionary vector as well as states of the CELP decoder may also be stored, in a step 205, in a memory 107 in the case where the frame following the current frame would be a transition frame MDCT.

Comme expliqué ci-après, une extension de bande pourra également être effectuée avec un codage associée de la bande haute lorsque la trame courante est de type CELP.As explained below, a band extension may also be performed with associated coding of the high band when the current frame is of CELP type.

Dans le cas où le codage MDCT a été sélectionné par l'unité 102 à l'étape 203, il est vérifié à une étape 207 que la trame précédant la trame courante a été codée par transformée MDCT. Dans le cas où la trame précédant la trame courante a été codée par transformée MDCT, la trame courante est transmise au codeur MDCT 105 directement, pour un codage par transformée MDCT de la trame courante à une étape 208. Le codeur MDCT peut coder une trame couvrant 28,75 ms de signal non ré-échantillonné, incluant 20 ms de trame et 8,75 ms de lookahead par exemple. Aucune restriction n'est attachée à la taille de la fenêtre MDCT. En outre, un retard correspondant au retard du codeur CELP dû au ré-échantillonnage du signal d'entrée, est appliqué à la trame codée par le codeur MDCT, de manière à ce que les trames MDCT et CELP soient synchronisées. Un tel retard au codeur peut être de 0,9375 ms selon le type de ré-échantillonnage avant codage CELP. La trame codée par transformée MDCT est transmise au décodeur à l'étape 206.In the case where the MDCT coding has been selected by the unit 102 in the step 203, it is verified in a step 207 that the frame preceding the current frame has been coded by the MDCT transform. In the case where the frame preceding the current frame has been coded by MDCT transform, the current frame is transmitted to the MDCT encoder 105 directly, for a transform coding MDCT of the current frame at a step 208. The MDCT encoder can encode a frame covering 28.75 ms of un-resampled signal, including 20 ms of frame and 8.75 ms of lookahead for example. No restrictions are attached to the size of the MDCT window. In addition, a delay corresponding to the delay of the CELP coder due to resampling of the input signal is applied to the frame coded by the MDCT coder, so that the MDCT and CELP frames are synchronized. Such an encoder delay may be 0.9375 ms depending on the type of resampling before CELP coding. The transform coded frame MDCT is transmitted to the decoder at step 206.

Dans le cas où le codage MDCT est sélectionné par l'unité 102, et dans le cas où la trame précédant la trame courante a été codée par prédiction, la trame courante est une trame de transition et est transmise à une unité de transition 104. Comme décrit dans ce qui suit, la trame de transition MDCT comprend une sous-trame CELP supplémentaire.In the case where the MDCT coding is selected by the unit 102, and in the case where the frame preceding the current frame has been prediction coded, the current frame is a transition frame and is transmitted to a transition unit 104. As described in the following, the MDCT transition frame comprises an additional CELP subframe.

L'unité de transition 104 est apte à mettre en oeuvre les étapes suivantes :

  • anticiper, à une étape 209, le budget de bits nécessaires au codage de la sous-trame CELP de transition de manière à définir le budget disponible pour le codage MDCT de la trame courante. Comme détaillé dans ce qui suit, le budget peut dépendre du débit de la trame courante. En outre, le budget peut être évalué en fonction du coeur CELP utilisé. Afin de conserver un budget de bits suffisant pour ne pas dégrader la qualité du codage MDCT, l'invention peut prévoir de borner le débit de codage de la sous-trame CELP. Elle comprend à cet effet un dispositif de détermination de la répartition de bits dans une trame de transition, tel que le dispositif 700 de la figure 7 ;
  • modifier, à une étape 210, la fenêtre MDCT utilisée au codeur conformément à la figure 3 décrite ci-après ;
  • mettre à zéro la mémoire de la transformation MDCT puisque la trame précédente était une trame CELP, à une étape 211 - de façon équivalente la mémoire MDCT pourra être ignorée dans le décodage MDCT.
The transition unit 104 is able to implement the following steps:
  • anticipating, in a step 209, the budget of bits necessary for the coding of the CELP subframe to define the available budget for the MDCT encoding of the current frame. As detailed in the following, the budget may depend on the bit rate of the current frame. In addition, the budget can be evaluated according to the CELP core used. In order to maintain a sufficient bit budget so as not to degrade the quality of the MDCT coding, the invention can provide for limiting the coding rate of the CELP subframe. It comprises for this purpose a device for determining the distribution of bits in a transition frame, such as the device 700 of the figure 7 ;
  • modify, at a step 210, the window MDCT used to the encoder according to the figure 3 described below;
  • reset the memory of the MDCT transformation since the previous frame was a CELP frame, at a step 211 - in an equivalent manner the MDCT memory can be ignored in the MDCT decoding.

Dans un mode de réalisation, au moins une de ces étapes est effectuée par l'unité de codage de trame de transition 106 décrite ci-après.In one embodiment, at least one of these steps is performed by the transition frame coding unit 106 described hereinafter.

La trame MDCT de transition est codée par le codeur MDCT 105, à une étape 212, telle que décrit dans ce qui suit, et sur la base du budget de bits alloués à l'étape 209. La sous-trame CELP supplémentaire est également codée par le codeur CELP 103, à une étape 213, comme décrit dans ce qui suit en référence à la figure 3, et en fonction du budget de bits alloués à l'étape 209. Le codage CELP peut être effectué avant ou après codage MDCT.The transition MDCT frame is encoded by the MDCT encoder 105, at a step 212, as described in the following, and based on the bit budget allocated in step 209. The additional CELP subframe is also encoded by the CELP encoder 103, at a step 213, as described in the following with reference to the figure 3 , and according to the bit budget allocated in step 209. The CELP coding may be performed before or after MDCT coding.

La figure 3 présente la transition entre trames CELP et MDCT au codeur, avant codage, et au décodeur, avant décodage.The figure 3 presents the transition between CELP and MDCT frames to the coder, before coding, and to the decoder, before decoding.

Une trame à coder 301 est reçue au codeur 100 et est codée par le codeur CELP 103. Une trame courante 302 est ensuite reçue en entrée du codeur 100 pour être codée par transformée MDCT. Il s'agit donc d'une trame de transition. La trame suivante 303 reçue en entrée du codeur est également codée par transformée MDCT. Selon l'invention, la trame suivante 303 pourrait être codée par codage CELP et aucune restriction n'est attachée au codage employée pour la trame suivante 303.A frame to be coded 301 is received at the encoder 100 and is encoded by the CELP encoder 103. A current frame 302 is then received at the input of the encoder 100 to be encoded by the MDCT transform. It is therefore a transition frame. The next frame 303 received at the input of the coder is also coded by MDCT transform. According to the invention, the next frame 303 could be coded by CELP coding and no restriction is attached to the coding used for the next frame 303.

Une fenêtre MDCT asymétrique 304 peut être utilisée pour le codage de la trame courante. Cette fenêtre 304 présente un front montant 307 de 14,375 ms, un palier avec un gain à 1 de 11,25 ms, un front descendant 309 de 8,75 ms correspondant au lookahead, et une partie nulle 310 de 5,265 ms. L'ajout de la partie nulle 310 permet de diminuer le lookahead et ainsi le retard correspondant. Dans un mode de réalisation, la forme de cette fenêtre d'analyse MDCT pour le codage MDCT est modifiée par exemple pour diminuer encore le lookahead ou pour utiliser une fenêtre symétrique dont des exemples sont donnés dans la demande de brevet WO2012/085451 .An asymmetric MDCT window 304 may be used for encoding the current frame. This window 304 has a rising edge 307 of 14.375 ms, a bearing with a gain of 1 at 11.25 ms, a falling edge 309 of 8.75 ms corresponding to the lookahead, and a zero portion 310 of 5.265 ms. The addition of the zero part 310 reduces the lookahead and thus the corresponding delay. In one embodiment, the shape of this MDCT analysis window for the MDCT encoding is modified, for example, to further reduce the lookahead or to use a symmetrical window whose examples are given in the patent application. WO2012 / 085451 .

Le trait en pointillés 312 représente le milieu de la fenêtre MDCT 304. De part et d'autre du trait 312, les quarts de 10 ms de la fenêtre MDCT 212 sont repliés comme décrit en partie introductive. La ligne continue 311 indique la zone de repliement entre les premier et deuxième quarts de la fenêtre MDCT 304.The dashed line 312 represents the middle of the MDCT window 304. On either side of the line 312, the 10 ms quarters of the MDCT window 212 are folded as described in FIG. introductory part. Continuous line 311 indicates the folding area between the first and second quarters of the MDCT window 304.

La fenêtre MDCT de la trame suivante 303 est référencée 306 et présente une zone d'addition recouvrement avec la fenêtre MDCT 304 correspondant au front descendant 309 de la fenêtre MDCT 304.The MDCT window of the next frame 303 is referenced 306 and has a covering addition area with the MDCT window 304 corresponding to the falling edge 309 of the MDCT window 304.

Une fenêtre MDCT 305 représente théoriquement la fenêtre qui serait appliquée à la trame précédente si elle avait été codée par transformée MDCT. Toutefois, la trame précédente 301 étant codée par le codeur CELP 103, il est nécessaire, afin de permettre le dépliement au décodeur de la première partie de la trame codée par transformée MDCT, que la fenêtre soit nulle dans le premier quart (étant donné que la seconde partie de la trame MDCT précédente n'est pas disponible).An MDCT window 305 theoretically represents the window that would be applied to the previous frame if it had been coded by MDCT transform. However, since the preceding frame 301 is coded by the CELP coder 103, it is necessary, in order to allow the decoder to unfold the first part of the MDCT transformed coded frame, that the window be zero in the first quarter (since the second part of the previous MDCT frame is not available).

A cet effet, la fenêtre MDCT 304 est modifiée en une fenêtre MDCT 313 dont le premier quart est à zéro, permettant ainsi le repliement temporel dans la première partie de la trame MDCT au décodeur.For this purpose, the MDCT window 304 is modified into an MDCT window 313 whose first quarter is zero, thus allowing time folding in the first part of the MDCT frame to the decoder.

Au niveau du décodeur, les fenêtres d'analyse 304, 305, 306 et 313 correspondent respectivement à des fenêtres de synthèse 324, 325, 326 et 327. Cette fenêtre de synthèse est donc inversée temporellement par rapport à la fenêtre d'analyse correspondante. Dans des variantes de l'invention, les fenêtres d'analyse et de synthèse peuvent être identiques, de type sinusoïdale ou autre.At the level of the decoder, the analysis windows 304, 305, 306 and 313 respectively correspond to synthesis windows 324, 325, 326 and 327. This synthesis window is therefore inverted temporally with respect to the corresponding analysis window. In variants of the invention, the windows of analysis and synthesis may be identical, sinusoidal type or otherwise.

Une première trame 320 de nouveaux échantillons codée par codage CELP est reçue au décodeur. Elle correspond à la version codée de la trame CELP 301. On rappelle ici que la trame décodée est décalée de 8.75 ms par rapport à la trame 320.A first frame 320 of new samples encoded by CELP coding is received at the decoder. It corresponds to the coded version of the CELP frame 301. It is recalled here that the decoded frame is shifted by 8.75 ms with respect to the frame 320.

La version codée de la trame de transition 302, est ensuite reçue (références 321 et 322 formant une trame complète). Entre la fin de la trame CELP 320 et le début du front montant de la fenêtre de synthèse 327 (correspondant à la ligne de repliement), un trou ou GAP est créé. Dans l'exemple particulier représenté ici, un quart de fenêtre MDCT étant de 10 ms et la partie nulle de la fenêtre de synthèse MDCT 324 qui recouvre la trame CELP 320 étant de 5,625 ms (correspondant à la partie 310 de la fenêtre d'analyse MDCT 204), le trou est de 4,375 ms. En outre, afin d'assurer une longueur d'addition recouvrement satisfaisante avec le début de la partie non nulle de la fenêtre MDCT 327, le retard entre la trame CELP 320 et le début de la fenêtre MDCT 327 est prolongé de la longueur requise. Dans l'exemple qui suit, nous considérons, à titre illustratif, une longueur d'addition recouvrement satisfaisante de 1,875 ms, le retard précité (correspondant à une longueur de signal manquant) étant ainsi porté à 6,25 ms, tel que représenté par la référence 321 sur la figure 2.The coded version of the transition frame 302 is then received (references 321 and 322 forming a complete frame). Between the end of the CELP frame 320 and the beginning of the rising edge of the synthesis window 327 (corresponding to the fold line), a hole or GAP is created. In the particular example represented here, a quarter window MDCT being 10 ms and the zero part of the synthesis window MDCT 324 which covers the CELP frame 320 being 5.625 ms (corresponding to the part 310 of the analysis window MDCT 204), the hole is 4.375 ms. Further, in order to ensure a satisfactory overlay addition length with the beginning of the non-zero portion of the MDCT window 327, the delay between the CELP frame 320 and the start of the MDCT window 327 is extended by the required length. In the following example, we consider, by way of illustration, a satisfactory recovery addition length of 1.875 ms, the aforementioned delay (corresponding to a missing signal length) thus being increased to 6.25 ms, as represented by FIG. reference 321 on the figure 2 .

On notera que les trames de signaux représentées à la figure 3 peuvent contenir des signaux à des fréquences d'échantillonnage différentes qui sont de 12,8 ou 16 kHz en cas de codage/décodage CELP et de fs en cas de codage/décodage MDCT ; cependant au décodeur, après ré-échantillonnage de la synthèse CELP et décalage temporel de la synthèse MDCT les trames restent synchronisées et la représentation de la figure 3 reste exacte.It will be noted that the signal frames represented in figure 3 may contain signals at different sampling rates of 12.8 or 16 kHz for CELP coding / decoding and fs for MDCT coding / decoding; however at the decoder, after resampling of the CELP synthesis and time shift of the MDCT synthesis the frames remain synchronized and the representation of the figure 3 remains accurate.

Comme évoqué précédemment la demande WO2012/085451 propose de coder une sous-trame CELP supplémentaire de 5ms au début de la trame de transition MDCT, dans le cas d'un codage CELP à 12.8 kHz, et deux trames CELP supplémentaires de 4ms chacune au début de la trame de transition MDCT, dans le cas d'un codage CELP à 16 kHz.As mentioned above the request WO2012 / 085451 proposes to encode an additional CELP subframe of 5ms at the beginning of the MDCT transition frame, in the case of CELP coding at 12.8 kHz, and two additional CELP frames of 4ms each at the beginning of the MDCT transition frame, in the case of a CELP coding at 16 kHz.

Dans le cas à 12,8 kHz, le retard de 6,25 ms n'est pas comblé et l'addition recouvrement est impactée : on dispose uniquement au décodeur de 0,625 ms d'addition recouvrement, ce qui est insuffisant.In the case at 12.8 kHz, the 6.25 ms delay is not filled and the overlap is affected: the decoder is only 0.625 ms of overlap, which is insufficient.

Dans le cas à 16 kHz, deux sous-trames CELP supplémentaires sont codées au début de la trame de transition, ce qui ne laisse que très peu de budget pour coder la trame MDCT de transition et peut amener à une baisse de qualité significative à bas débit.In the 16 kHz case, two additional CELP subframes are encoded at the beginning of the transition frame, leaving very little budget for coding the transition MDCT frame and can lead to a significant lower quality drop. debit.

Afin de surmonter ces inconvénients, la présente invention peut prévoir de coder une unique sous-trame CELP supplémentaire à 12,8 ou 16 kHz par le codeur CELP 103. Des échantillons supplémentaires sont générés au décodeur, comme détaillé dans ce qui suit, afin de générer le signal manquant sur la longueur de 6,25 ms précitée.In order to overcome these drawbacks, the present invention can provide for encoding a single additional CELP subframe at 12.8 or 16 kHz by the CELP encoder 103. Additional samples are generated at the decoder, as detailed below, in order to generate the missing signal over the length of 6.25 ms above.

Afin de coder la sous-trame CELP de transition, l'unité 106 peut réutiliser au moins un paramètre CELP de la trame CELP précédente. Par exemple, l'unité 106 peut réutiliser les coefficients de prédiction linéaire A(z) de la sous-trame CELP précédente ainsi que l'énergie de l'innovation de la trame précédente (stockés dans la mémoire 107 tel que précédemment décrit) afin de coder uniquement le vecteur de dictionnaire adaptatif, le gain adaptatif, le gain fixe et le vecteur du dictionnaire fixe de la sous trame CELP de transition. Ainsi, la sous-trame supplémentaire CELP peut être codée avec le même coeur (12,8 kHz ou 16 kHz) que la trame CELP précédente.In order to encode the transition CELP subframe, the unit 106 may reuse at least one CELP parameter from the previous CELP frame. For example, the unit 106 can reuse the linear prediction coefficients A (z) of the preceding CELP subframe as well as the innovation energy of the preceding frame (stored in the memory 107 as previously described) so that to encode only the adaptive dictionary vector, the adaptive gain, the fixed gain and the fixed dictionary vector of the transition CELP subframe. Thus, the additional CELP subframe can be coded with the same core (12.8 kHz or 16 kHz) as the previous CELP frame.

Une unité de codage de trame de transition 106 assure le codage d'une trame de transition selon l'invention. L'invention peut prévoir en outre l'insertion par l'unité 106 dans le flux binaire d'un bit supplémentaire indiquant que la trame codée 322 est une trame de transition, cependant dans le cas général cette indication de trame de transition pourra également être transmise dans l'indication globale de mode de codage de la trame courante, sans prendre de bits supplémentaire.A transition frame coding unit 106 provides the coding of a transition frame according to the invention. The invention may further provide for the insertion by the unit 106 into the bit stream of an additional bit indicating that the coded frame 322 is a transition frame, however in the general case this transition frame indication may also be transmitted in the global coding mode indication of the current frame, without taking any additional bits.

L'invention peut en outre prévoir que cette unité 106 code la bande haute du signal aux étapes 204 et 214 (procédé dit « d'extension de bande »), lorsque celle-ci est requise, avec un budget fixe puisque la fréquence d'échantillonnage du signal de synthèse au décodeur n'est pas forcément identique à la fréquence du coeur CELP.The invention may further provide that this unit 106 encodes the high band of the signal at steps 204 and 214 (so-called "band extension" method), when this is required, with a fixed budget since the frequency of sampling of the synthesis signal at the decoder is not necessarily identical to the frequency of the CELP core.

A cet effet, l'unité de codage de trame de transition 106 peut mettre en oeuvre les étapes suivantes :

  • filtrage de la trame précédente CELP et de la sous-trame CELP de la trame de transition par un filtre passe-haut afin de ne conserver que la partie haute du spectre (au-dessus de la fréquence qui correspond au coeur CELP utilisé, soit au dessus de 6,4 ou 8 kHz). Un tel filtrage peut être mis en oeuvre par un filtre à réponse impulsionnelle finie, FIR, du codeur CELP 103 ;
  • recherche de corrélation entre la partie filtrée de la sous-trame CELP de transition originale et la trame CELP précédente filtrée afin d'estimer un paramètre de retard puis un gain (différence d'amplitude entre le signal correspondant à la sous-trame filtrée et le signal prédit par application du retard) ;
  • codage du paramètre de retard et du gain précités en utilisant par exemple une quantification scalaire (par exemple, le retard peut être codé sur 6 bits et le gain sur 6 bits).
For this purpose, the transition frame coding unit 106 can implement the following steps:
  • filtering of the previous CELP frame and the CELP subframe of the transition frame by a high-pass filter in order to keep only the upper part of the spectrum (above the frequency which corresponds to the CELP core used, ie above 6.4 or 8 kHz). Such a filtering can be implemented by a finite impulse response filter, FIR, of the CELP encoder 103;
  • correlation search between the filtered part of the original transition CELP subframe and the filtered previous CELP frame in order to estimate a delay parameter and then a gain (difference in amplitude between the signal corresponding to the filtered subframe and the signal predicted by applying the delay);
  • encoding the aforementioned delay and gain parameter using, for example, scalar quantization (for example, the delay may be 6-bit coded and the 6-bit gain).

L'étape 209 précitée est illustrée plus en détails en référence à la figure 4 qui est un diagramme illustrant les étapes d'un procédé de détermination d'une répartition de bits de codage de transition selon un mode de réalisation de l'invention. Le procédé précité est mis en oeuvre de la même manière au codeur et au décodeur, mais est présenté, à titre illustratif uniquement, côté codeur.Step 209 above is illustrated in more detail with reference to the figure 4 which is a diagram illustrating the steps of a method for determining a transition coding bit distribution according to an embodiment of the invention. The aforementioned method is implemented in the same manner to the encoder and the decoder, but is presented, for illustrative purposes only, on the coder side.

A une étape 400, le débit total (en bit/s), noté core_brate, qui peut être alloué au codage de la trame courante est fixé comme étant égal au débit de sortie du codeur MDCT. La durée de la trame étant considérée dans cet exemple comme étant de 20 ms, le nombre de trames par seconde est 50 et le budget total en bits est égal à core_brate / 50. Le budget total peut être fixe, dans le cas d'un codeur à débit fixe, ou variable, dans le cas d'un codeur à débit variable lorsqu'une adaptation du débit de codage est mise en oeuvre. Dans la suite, on utilise une variable num_bits, initialisée à la valeur core_brate /50.In a step 400, the total bit rate (in bits / s), denoted core_brate, which can be allocated to the coding of the current frame is set equal to the output rate of the MDCT encoder. The duration of the frame being considered in this example as being 20 ms, the number of frames per second is 50 and the total budget in bits is equal to core_brate / 50. The total budget can be fixed, in the case of a fixed rate encoder, or variable, in the case of a variable rate encoder when an adaptation of the coding rate is implemented. In the following, we use a variable num_bits, initialized to the value core_brate / 50.

A une étape 401, l'unité de transition 104 détermine le coeur CELP, parmi au moins deux coeurs CELP, qui a été utilisé pour le codage de la trame CELP précédente. Dans l'exemple qui suit, on considère deux coeurs CELP fonctionnant à des fréquences respectives de 12,8 kHz et 16 kHz. En variante, un seul coeur CELP est mis en oeuvre au codage et/ou au décodage.At a step 401, the transition unit 104 determines the CELP core, among at least two CELP cores, which has been used for encoding the previous CELP frame. In the following example, two CELP cores operating at frequencies of 12.8 kHz and 16 kHz are considered. As a variant, a single CELP core is used for coding and / or decoding.

Dans le cas où le coeur CELP utilisé pour la trame CELP précédente est à une fréquence de 12,8 kHz, le procédé comprend une étape 402 d'affectation d'un débit binaire, noté cbrate, pour le codage CELP de la sous-trame de transition, le débit binaire étant égal au minimum entre le débit binaire du codage MDCT de la trame de transition et une première valeur prédéterminée de débit binaire. La première valeur prédéterminée peut être fixée à 24,4 kbit/s par exemple, ce qui permet d'assurer un budget de bits satisfaisant pour le codage par transformée.In the case where the CELP core used for the preceding CELP frame is at a frequency of 12.8 kHz, the method comprises a step 402 for assigning a bit rate, noted cbrate, for the CELP coding of the subframe transition, the bit rate being equal to the minimum between the bit rate of the MDCT coding of the transition frame and a first predetermined bit rate value. The first predetermined value can be set at 24.4 kbit / s, for example, which ensures a satisfactory bit budget for the transform coding.

Ainsi, cbrate = min(core_bitrate, 24400). Cette limitation revient à brider le fonctionnement du codage CELP restreint limité à la sous-trame supplémentaire avec des paramètres CELP codés comme s'ils étaient codés par un codage CELP à au plus 24,40 kbit/s.So, cbrate = min (core_bitrate, 24400). This limitation amounts to restricting the operation of the restricted CELP coding limited to the supplementary subframe with CELP parameters coded as if they were encoded by a CELP coding of not more than 24.40 kbit / s.

A une étape 403 facultative, le débit binaire affecté est comparé à un débit binaire CELP à 11,60 kbit/s. Si le débit binaire affecté est supérieur, un bit peut être réservé pour coder une indication binaire de filtrage passe-bas du dictionnaire adaptatif (comme par exemple dans le codage AMR-WB aux débits supérieurs ou égaux à 12,65 kbit/s). La variable num_bits est mise à jour:

  • num_bits := num_bits - 1
At an optional step 403, the affected bit rate is compared to a CID rate of 11.60 kbit / s. If the assigned bit rate is higher, a bit may be reserved to encode an adaptive dictionary low pass filtering binary indication (as for example in the AMR-WB coding at rates greater than or equal to 12.65 kbit / s). The num_bits variable is updated:
  • num_bits: = num_bits - 1

A une étape 404, un premier nombre de bits, noté budg1, est alloué pour le codage prédictif de la sous-trame CELP supplémentaire. Le premier nombre de bits budg1 représente le nombre de bits représentant les paramètres CELP utilisés pour le codage de la sous-trame CELP. Comme précédemment détaillé, le codage de la sous-trame CELP peut être restreint en ce qu'un nombre restreint de paramètres CELP est utilisé, certains paramètres utilisés pour le codage de la trame CELP précédente étant réutilisés avantageusement.At a step 404, a first number of bits, noted budget1, is allocated for the predictive coding of the additional CELP subframe. The first number of bits budget1 represents the number of bits representing the CELP parameters used for the coding of the CELP subframe. As previously detailed, the coding of the CELP subframe can be restricted in that a small number of CELP parameters are used, some parameters used for the coding of the preceding CELP frame being reused advantageously.

Par exemple, seule l'excitation peut être modélisée pour le codage de la sous-trame CELP supplémentaire, et des bits sont ainsi réservés uniquement pour le vecteur du dictionnaire fixe, pour le vecteur du dictionnaire adaptatif et pour le vecteur de gains. Le nombre de bits attribués à chacun de ces paramètres est déduit du débit binaire affecté au codage de la sous-trame CELP supplémentaire à l'étape 402. Par exemple, le Tableau 1/G722.2 - Répartition des bits de l'algorithme de codage AMR-WB pour trame de 20ms, issu de la version de juillet 2003 de la norme G.722.2 de l'ITU-T, donne des exemples d'allocations de bits par paramètre CELP en fonction du débit binaire affecté.For example, only the excitation can be modeled for the coding of the additional CELP subframe, and bits are thus reserved only for the fixed dictionary vector, for the adaptive dictionary vector and for the gain vector. The number of bits allocated to each of these parameters is deduced from the bit rate assigned to the coding of the additional CELP sub-frame in step 402. For example, Table 1 / G722.2 - Bit allocation of the algorithm of AMR-WB coding for 20ms frame, from the July 2003 release of the ITU-T G.722.2 standard, gives examples of bit allocations per CELP parameter as a function of the affected bit rate.

Dans l'exemple précédent, où le codage de la sous-trame est restreint, budg1 correspond à la somme des bits attribués respectivement au dictionnaire adaptatif, au dictionnaire fixe et au vecteur de gains. Par exemple, pour un débit binaire affecté de 19,85 kbit/s, en se référant au Tableaul/G722 précité, 9 bits sont alloués au dictionnaire adaptatif (délai tonal), 72 bits sont alloués au dictionnaire fixe (code algébrique), et 7 bits sont alloués au vecteur de gains (gain de répertoire). Dans ce cas, budg1 est égal à 88 bits.In the preceding example, where the coding of the sub-frame is restricted, budget1 corresponds to the sum of the bits allocated respectively to the adaptive dictionary, the fixed dictionary and the vector of gains. For example, for an assigned bit rate of 19.85 kbit / s, referring to the aforementioned Table / G722, 9 bits are allocated to the adaptive dictionary (tonal delay), 72 bits are allocated to the fixed dictionary (algebraic code), and 7 bits are allocated to the gain vector (directory gain). In this case, budget1 is equal to 88 bits.

La variable num_bits peut ainsi être mise à jour :

  • num_bits := num_bits - budg1
The num_bits variable can thus be updated:
  • num_bits: = num_bits - budget1

L'invention peut également prévoir de prendre en compte des classes de trames dans l'allocation de bits aux paramètres CELP. Par exemple, la norme G.718 de l'ITU-T, dans sa version de juin 2008, sections 6.8 et 8.1, donne les budgets à allouer à chaque paramètre CELP en fonction de classes, ou modes tels que le mode non-voisé (UC), le mode voisé (VC), le mode de transition (TC) et le mode générique (GC), et en fonction du débit binaire alloué (layerl ou layer2, correspondant à des débits respectifs de 8kbit/s et de 8+4 kbit/s). Le codeur G.718 est un codeur hiérarchique, mais il est possible de combiner les principes de codage CELP utilisant une classification de G.718 avec l'allocation multidébits d'AMR-WB.The invention can also provide for taking into account frame classes in the bit allocation to the CELP parameters. For example, the ITU-T G.718 standard, in its June 2008 version, sections 6.8 and 8.1, gives the budgets to allocate to each CELP parameter according to classes, or modes such as unvoiced mode. (UC), the voiced mode (VC), the transition mode (TC) and the generic mode (GC), and according to the allocated bit rate (layerl or layer2, corresponding to rates of 8kbit / s and 8 respectively). +4 kbit / s). The G.718 encoder is a hierarchical coder, but it is possible to combine the CELP coding principles using a G.718 classification with the AMR-WB multi-bit allocation.

S'il a été déterminé à l'étape 401 que le coeur CELP utilisé pour la trame CELP précédente est à une fréquence de 16 kHz, le procédé comprend une étape 405 d'affectation d'un débit binaire, noté cbrate, pour le codage CELP de la sous-trame de transition, le débit binaire étant égal au minimum entre le débit binaire du codage MDCT de la trame de transition et une première valeur prédéterminée de débit binaire. Dans le cas du coeur à 16 kHz, la première valeur prédéterminée peut être fixée à 22,6 kbit/s par exemple, ce qui permet d'assurer un budget de bits satisfaisant pour le codage par transformée. Ainsi, la première valeur prédéterminée dépend du coeur CELP utilisé pour le codage de la trame CELP précédente. En outre, pour le codage coeur à 16 kHz, des valeurs seuils peuvent être appliquées lors de l'affectation d'un débit binaire au codage CELP. Ainsi, le débit binaire affecté est en outre égal au maximum entre le débit binaire de la trame de transition codée par transformée et au moins une deuxième valeur prédéterminée de débit binaire, la deuxième valeur étant inférieure à la première valeur. La deuxième valeur prédéterminée de débit binaire peut par exemple être égal à 14,8 kbit/s. Ainsi, si le débit binaire de la trame de transition codée par transformée est inférieur à 14,8 kbit/s, le débit binaire affecté au codage CELP de la sous-trame de transition peut être de 14,8 kbit/s.If it has been determined in step 401 that the CELP core used for the previous CELP frame is at a frequency of 16 kHz, the method comprises a step 405 of assigning a bit rate, noted cbrate, for coding CELP of the transition subframe, the bit rate being equal to the minimum between the bit rate of the MDCT coding of the transition frame and a first predetermined value of bit rate. In the case of the 16 kHz core, the first predetermined value can be fixed at 22.6 kbit / s, for example, which makes it possible to ensure a satisfactory bit budget for the transform coding. Thus, the first predetermined value depends on the CELP core used for encoding the previous CELP frame. In addition, for the 16 kHz core coding, threshold values can be applied when assigning a bit rate to the CELP coding. Thus, the assigned bit rate is furthermore equal to the maximum between the bit rate of the transform coded transition frame and at least a second predetermined bit rate value, the second value being less than the first value. The second predetermined value of bit rate may for example be equal to 14.8 kbit / s. Thus, if the bit rate of the transform encoded transition frame is less than 14.8 kbit / s, the bit rate assigned to the CELP encoding of the transition subframe may be 14.8 kbit / s.

Dans un mode de réalisation complémentaire, si le débit binaire de la trame de transition codée par transformée est inférieur à 8 kbit/s, le débit affecté peut être égal à 8 kbit/s.In a complementary embodiment, if the bit rate of the transform coded transition frame is less than 8 kbit / s, the bit rate assigned may be 8 kbit / s.

Ainsi, selon ce mode de réalisation complémentaire, l'algorithme suivant est obtenu :

 Si core_bitrate ≤ 8000
     cbrate = 8000
 Sinon si core_bitrate ≤ 14800
     cbrate = 14800
 Sinon
     cbrate = min(core_bitrate , 22600)
 Fin si
Thus, according to this complementary embodiment, the following algorithm is obtained:
 If core_bitrate ≤ 8000
     cbrate = 8000
 Otherwise if core_bitrate ≤ 14800
     cbrate = 14800
 If not
     cbrate = min (core_bitrate, 22600)
 End if 

A une étape 407 facultative, le débit binaire affecté est comparé à un débit binaire CELP à 11,60 kbit/s. Si le débit binaire affecté est supérieur, un bit peut être réservé pour coder une indication binaire de filtrage passe-bas du dictionnaire adaptatif. La variable num_bits est mise à jour :

  • num_bits := num_bits - 1
At an optional step 407, the affected bit rate is compared to a CID rate of 11.60 kbit / s. If the assigned bit rate is higher, a bit may be reserved to encode an adaptive dictionary low pass filter bit indication. The num_bits variable is updated:
  • num_bits: = num_bits - 1

A une étape 408, de la même manière qu'à l'étape 404, un premier nombre de bits budg1 est alloué pour le codage prédictif de la sous-trame CELP supplémentaire, et budg1 dépend du débit binaire affecté au codage CELP de la sous-trame de transition.In a step 408, in the same way as in step 404, a first number of bits budget1 is allocated for the predictive coding of the additional CELP subframe, and budget1 depends on the bit rate assigned to the CELP coding of the sub-frame. -Transition frame.

A une étape 410 commune aux codages à différentes fréquences de coeur, un deuxième nombre de bits alloués pour le codage par transformée de la trame de transition, noté budg2, est calculé à partir du premier nombre de bits budg1 et du nombre de bits total de la trame de transition. Au vu des calculs ci-dessus, budg2 est égal à la variable num_bits. En général, le mode de la trame courante de transition est supposé ici imputé au budget de codage MDCT, cette information n'est donc pas explicitement prise en compte ici.At a step 410 common to codings at different core frequencies, a second number of bits allocated for transform coding of the transition frame, denoted budg2, is calculated from the first number of bits budget1 and the total number of bits of the transition frame. Given the above calculations, budget2 is equal to the num_bits variable. In general, the mode of the current transition frame is assumed here imputed to the MDCT coding budget, so this information is not explicitly taken into account here.

Les étapes précédentes peuvent avoir été mises en oeuvre pour le codage d'une bande basse de fréquences de la sous-trame de transition, dans le cas où le signal audio est décomposé en au moins une bande basse de fréquences et une bande haute de fréquences. A une étape 409 facultative précédant l'étape 410, également commune aux codages à différentes fréquences de coeur, le procédé peut comprendre l'allocation d'un troisième nombre de bits prédéterminé, noté budg3 au codage de la bande haute de fréquences de la sous-trame de transition. Dans ce cas, le deuxième nombre de bits budg2 est calculé à la fois à partir du premier nombre de bits budg1 et du troisième nombre de bits budg3.The preceding steps may have been implemented for the coding of a low frequency band of the transition subframe, in the case where the audio signal is decomposed into at least one low band of frequencies and a high band of frequencies. . At a step 409 the method may include the allocation of a third predetermined number of bits, denoted budg3, to the coding of the high frequency band of the transitional subframe, prior to step 410, which is also common to codings at different core frequencies. . In this case, the second number of bits budg2 is calculated both from the first number of bits budg1 and the third number of bits budg3.

Comme précédemment expliqué, le codage de la bande haute de fréquences (ou extension de bande) de la sous-trame de transition peut être fondé sur une corrélation entre la trame précédente du signal audio et la sous-trame de transition. Par exemple, le codage de la bande haute de fréquences peut être décomposé en deux étapes.As previously explained, the coding of the high frequency band (or band extension) of the transition subframe may be based on a correlation between the previous frame of the audio signal and the transition subframe. For example, the coding of the high frequency band can be broken down into two stages.

Dans une première étape, la trame précédente et la trame courante du signal audio sont filtrées par un filtre passe-haut pour ne garder que la partie haute du spectre. La partie haute du spectre peut correspondre aux fréquences supérieures à celle du coeur CELP utilisé. Par exemple, si le coeur CELP utilisé est le coeur CELP à 12,8 kHz, la bande haute correspond au signal audio pour lequel les fréquences inférieures à 12,8 kHz ont été filtrées. Un tel filtrage peut être mis en oeuvre au moyen d'un filtre FIR.In a first step, the previous frame and the current frame of the audio signal are filtered by a high-pass filter to keep only the upper part of the spectrum. The upper part of the spectrum may correspond to frequencies higher than that of the CELP core used. For example, if the CELP core used is the 12.8 kHz CELP core, the high band is the audio signal for which frequencies below 12.8 kHz have been filtered. Such filtering can be implemented by means of a FIR filter.

Dans une deuxième étape, une recherche de corrélation entre les parties filtrées de la trame précédente et de la trame courante est effectuée. Une telle recherche de corrélation permet d'estimer un paramètre de retard puis un gain. Le gain correspond au rapport d'amplitude entre la partie filtrée de la trame courante et le signal prédit par application du retard.In a second step, a correlation search between the filtered parts of the previous frame and the current frame is performed. Such a correlation search makes it possible to estimate a delay parameter and then a gain. The gain corresponds to the amplitude ratio between the filtered part of the current frame and the predicted signal by applying the delay.

Par exemple, 6 bits peuvent être alloués pour le gain et 6 bits pour le retard. Le troisième nombre de bits budg3 est alors égal à 12.For example, 6 bits can be allocated for gain and 6 bits for delay. The third number of bits budget3 is then equal to 12.

La variable num_bits peut alors être mise à jour :

  • num_bits := num_bits - budg3.
The num_bits variable can then be updated:
  • num_bits: = num_bits - budget3.

Le deuxième nombre de bits budg2 est alors égal à la variable num_bits mise à jour.The second number of bits budg2 is then equal to the variable num_bits update.

La figure 5 illustre un décodeur audio 500 selon un mode de réalisation de l'invention et la figure 6 est un diagramme illustrant les étapes d'un procédé de décodage selon un mode de réalisation de l'invention, mis en oeuvre dans le décodeur audio 500 de la figure 5.The figure 5 illustrates an audio decoder 500 according to one embodiment of the invention and the figure 6 is a diagram illustrating the steps of a decoding method according to an embodiment of the invention, implemented in the audio decoder 500 of the figure 5 .

Le décodeur 500 comprend une unité de réception 501 pour recevoir, à une étape 601, le signal numérique codé (ou flux binaire) issu du codeur 100 de la figure 1. Le flux binaire est soumis à une unité de classification 502 apte à déterminer, à une étape 602 si la trame courante est une trame CELP, une trame MDCT ou une trame de transition. A cet effet, l'unité de classification 502 est apte à déduire du flux binaire une information indiquant si la trame courante est une trame de transition ou non, et une information indiquant le coeur CELP à utiliser pour le décodage d'une trame CELP ou d'une sous-trame CELP de transition.The decoder 500 comprises a reception unit 501 for receiving, at a step 601, the coded digital signal (or bit stream) coming from the coder 100 of the figure 1 . The bit stream is subjected to a classification unit 502 able to determine, in a step 602 whether the current frame is a CELP frame, an MDCT frame or a transition frame. For this purpose, the classification unit 502 is able to deduce from the bit stream information indicating whether the current frame is a transition frame or not, and information indicating the CELP core to be used for decoding a CELP frame or a CELP transition subframe.

A une étape 603, il est vérifié que la trame courante est une trame de transition.At a step 603, it is verified that the current frame is a transition frame.

Si la trame courante n'est pas une trame de transition, il est vérifié à une étape 604 que la trame courante est une trame CELP. Si tel est le cas, la trame est transmise à un décodeur CELP 504 apte à décoder une trame CELP à une étape 605, à la fréquence de coeur indiquée par l'unité de classification 502. Suite au décodage d'une trame CELP, le décodeur CELP 504 peut stocker, à une étape 606, dans une mémoire 506 des paramètres tels que les coefficients du filtre de prédiction linéaire A(z) et des états internes tels que l'énergie prédictive au cas où la trame suivante serait une trame de transition.If the current frame is not a transition frame, it is verified at a step 604 that the current frame is a CELP frame. If this is the case, the frame is transmitted to a decoder CELP 504 capable of decoding a CELP frame at a step 605, at the core frequency indicated by the classification unit 502. Following the decoding of a CELP frame, the The decoder CELP 504 can store, in a step 606, in a memory 506 parameters such as the coefficients of the linear prediction filter A (z) and internal states such as the predictive energy in the case where the following frame would be a frame of transition.

En sortie du décodeur CELP 504, le signal peut être ré-échantillonné, à une étape 607, à la fréquence de sortie du décodeur 500 par une unité de ré-échantillonnage 505. Dans un mode de réalisation de l'invention, l'unité de ré-échantillonnage comprend un filtre FIR et le ré-échantillonnage introduit un retard de (par exemple) 1,25 ms. Dans un mode de réalisation, des post-traitements pourront être appliqués au décodage CELP avant ou après ré-échantillonnage.At the output of the CELP decoder 504, the signal can be resampled, at a step 607, at the output frequency of the decoder 500 by a resampling unit 505. In one embodiment of the invention, the unit resampling includes an FIR filter and resampling introduces a delay of (for example) 1.25 ms. In one embodiment, postprocessing may be applied to the CELP decoding before or after resampling.

Comme mentionné ci-avant, dans un mode de réalisation, une extension de bande peut également être effectuée, par une unité de gestion de l'extension de bande 5051 à des étapes 6071 et 6151, avec un décodage associée de la bande haute lorsque la trame courante est de type CELP. La bande haute est alors combinée au codage CELP avec éventuellement un retard supplémentaire appliquée à la synthèse CELP en bande basse.As mentioned above, in one embodiment, a band extension can also be performed by a band extension management unit 5051 at steps 6071 and 6151, with associated decoding of the high band when the current frame is of type CELP. The high band is then combined with the CELP coding with possibly additional delay applied to the low band CELP synthesis.

Le signal décodé par le décodeur CELP et ré-échantillonné, éventuellement post-traité avant ou après ré-échantillonnage, est transmis à une interface de sortie 510 du décodeur à une étape 608.The signal decoded by the decoder CELP and resampled, possibly post-processed before or after resampling, is transmitted to an output interface 510 of the decoder at a step 608.

Le décodeur 500 comprend en outre un décodeur MDCT 507. Dans le cas où il a été déterminé à l'étape 604 que la trame courante est une trame MDCT, le décodeur MDCT 507 est apte à décoder la trame MDCT de manière classique à une étape 609. En outre, un retard correspondant au retard nécessaire pour l'application du ré-échantillonnage du signal issu du décodeur CELP 504 est appliqué à la sortie du décodeur par une unité de retard 508, de manière à synchroniser la synthèse MDCT avec la synthèse CELP, à une étape 610. Le signal décodé par MDCT et retardé est transmis à l'interface de sortie 510 du décodeur à l'étape 608.The decoder 500 further comprises an MDCT decoder 507. In the case where it has been determined in the step 604 that the current frame is an MDCT frame, the decoder MDCT 507 is able to decode the frame MDCT in a conventional way at one stage. 609. In addition, a delay corresponding to the delay required for the application of resampling of the signal from the CELP decoder 504 is applied to the output of the decoder by a delay unit 508, so as to synchronize the synthesis MDCT with the synthesis. CELP, at step 610. The MDCT decoded and delayed signal is transmitted to the output interface 510 of the decoder at step 608.

Dans le cas où la trame courante est déterminée comme étant une trame de transition à l'issue de l'étape 603, un dispositif de détermination de la répartition de bits 503 est apte à déterminer, à une étape 611, le premier nombre de bits budg1 alloués au codage CELP de la sous-trame de transition et le deuxième nombre de bits budg3 alloués au codage par transformée de la trame de transition. Le dispositif 503 peut correspondre au dispositif 700 décrit en détails en référence à la figure 7.In the case where the current frame is determined to be a transition frame at the end of step 603, a device for determining the bit distribution 503 is able to determine, in a step 611, the first number of bits. budget1 allocated to the CELP encoding of the transition subframe and the second number of budget bits3 allocated to the transform encoding of the transition frame. The device 503 may correspond to the device 700 described in detail with reference to the figure 7 .

Le décodeur MDCT 507 utilise le troisième nombre de bits budg3 calculé par l'unité de détermination 503 pour ajuster le débit nécessaire au décodage de la trame de transition. Le décodeur MDCT 507 met en outre à zéro la mémoire de la transformation MDCT et décode la trame de transition à une étape 612. Le signal issu du décodeur MDCT est ensuite retardé par l'unité de retard 508 à une étape 613.The MDCT decoder 507 uses the third number of bits budget3 calculated by the determination unit 503 to adjust the rate necessary to decode the transition frame. The MDCT decoder 507 also sets the memory of the MDCT transformation to zero and decodes the transition frame at a step 612. The signal from the MDCT decoder is then delayed by the delay unit 508 at a step 613.

En parallèle, le décodeur CELP 504 décode la sous-trame CELP de transition en fonction du premier nombre de bits budg1, à une étape 614. Le décodeur CELP 504 décode à cet effet les paramètres CELP qui peuvent dépendre de la classe de la trame courante, et qui comprennent par exemples les valeurs de pitch du dictionnaire adaptatif, de dictionnaire fixe et de gains de la sous-trame CELP et utilise les coefficients du filtre de prédiction linéaire. En outre, le décodeur CELP 504 met à jour les états de décodage CELP. Ces états peuvent comprendre typiquement l'énergie prédictive de l'innovation issue de la trame CELP précédente pour générer la sous-trame de signal sur 4ms ou 5ms selon que le coeur CELP à 12,8 kHz ou à 16 kHz est utilisé (dans le cas d'un codage restreint de la sous-trame CELP de transition).In parallel, the CELP decoder 504 decodes the transition CELP subframe according to the first number of bits budget1, at a step 614. The decoder CELP 504 decodes for this purpose the CELP parameters which can depend on the class of the current frame , and which include for example the pitch values of the adaptive dictionary, fixed dictionary and gains of the CELP subframe and uses the coefficients of the linear prediction filter. In addition, the CELP decoder 504 updates the CELP decoding states. These states may typically include the predictive energy of the innovation from the previous CELP frame to generate the 4ms or 5ms signal subframe depending on whether the CELP core at 12.8 kHz or 16 kHz is used (in the case of a restricted coding of the transition CELP subframe).

Comme évoqué précédemment, la demande WO2012/085451 prévoit le codage supplémentaire d'une sous-trame à 5ms pour le coeur CELP à 12,8 kHz et de deux sous-trames supplémentaires à 4ms pour le coeur CELP à 16 kHz.As mentioned above, the demand WO2012 / 085451 provides additional coding of a 5ms subframe for the 12.8 kHz CELP core and two additional 4ms subframes for the 16 kHz CELP core.

Comme expliqué en référence à la figure 3, dans le cas à 12,8 kHz, le retard de 6,25 ms n'est pas comblé et l'addition recouvrement est impactée : on dispose uniquement au décodeur de 0,625 ms d'addition recouvrement, ce qui est insuffisant.As explained with reference to the figure 3 in the case at 12.8 kHz, the 6.25 ms delay is not filled and the overlap is impacted: the decoder is only 0.625 ms of overlap, which is insufficient.

Dans le cas à 16 kHz, deux sous-trames CELP supplémentaires sont codées au début de la trame de transition, ce qui ne laisse que très peu de budget pour coder la trame MDCT de transition et peut amener à une baisse de qualité par rapport à un codage MDCT « à plein débit » dans la trame courante.In the case of 16 kHz, two additional CELP subframes are coded at the beginning of the transition frame, which leaves very little budget for encoding the transition MDCT frame and can lead to a drop in quality compared to a "full rate" MDCT coding in the current frame.

Ainsi, la solution de la demande internationale WO2012/085451 n'est pas satisfaisante.Thus, the solution of international demand WO2012 / 085451 is not satisfactory.

Un aspect indépendant de l'invention prévoit, à partir d'une unique sous-trame CELP supplémentaire de transition, la génération partielle d'une seconde sous-trame en réutilisant des paramètres de codage utilisés pour le codage de la sous-trame CELP de transition. Le retard est ainsi comblé, en assurant une addition-recouvrement suffisante, et sans impacter le débit du codage MDCT de la trame de transition.An independent aspect of the invention provides, from a single additional CELP transition sub-frame, the partial generation of a second sub-frame by reusing coding parameters used for the coding of the CELP sub-frame of transition. The delay is thus bridged, ensuring a sufficient addition-recovery, and without impacting the rate of the MDCT coding of the transition frame.

A cet effet, l'invention vise également un procédé de décodage P d'un signal numérique codé, dans un décodeur 500 apte à décoder des trames de signal selon un décodage prédictif ou selon un décodage par transformée, comportant les étapes suivantes :

  • réception, à l'étape 501, d'un premier ensemble de paramètres de codage prédictif codant une première trame du signal numérique ;
  • décodage prédictif, à l'étape 605, de la première trame sur la base du premier ensemble de paramètres de codage prédictif ;
  • réception, à l'étape 501 pour une nouvelle trame, d'un deuxième ensemble de paramètres de codage prédictif d'une première sous-trame de transition d'une trame de transition codée par transformée :
  • décodage, à l'étape 614, de la première sous-trame de transition sur la base du deuxième ensemble de paramètres de codage prédictif ;
  • génération, à l'étape 614, d'échantillons d'une deuxième sous-trame de transition, à partir d'au moins un paramètre de codage prédictif du deuxième ensemble.
For this purpose, the invention also provides a method for decoding P of a coded digital signal, in a decoder 500 capable of decoding signal frames according to a predictive decoding or according to a transform decoding, comprising the following steps:
  • receiving, in step 501, a first set of predictive coding parameters encoding a first frame of the digital signal;
  • predictive decoding, in step 605, of the first frame based on the first set of predictive coding parameters;
  • receiving, in step 501 for a new frame, a second set of predictive coding parameters of a first transition subframe of a transform coded transition frame:
  • decoding, in step 614, the first transition subframe based on the second set of predictive coding parameters;
  • generating in step 614 samples of a second transition subframe from at least one predictive coding parameter of the second set.

L'invention vise en outre le décodeur 500 pour la mise en oeuvre du procédé de décodage P, ainsi qu'un programme informatique comportant des instructions pour la mise en oeuvre du procédé de décodage P, lorsque ces instructions sont exécutées par un processeur.The invention also aims at the decoder 500 for implementing the decoding method P, as well as a computer program comprising instructions for implementing the decoding method P, when these instructions are executed by a processor.

Les paramètres CELP réutilisés pour la génération de la deuxième sous-trame peuvent être le vecteur de gains, le vecteur du dictionnaire adaptatif et le vecteur du dictionnaire fixe.The CELP parameters reused for the generation of the second sub-frame can be the vector of gains, the vector of the adaptive dictionary and the vector of the fixed dictionary.

Selon un mode de réalisation du procédé de décodage P, une valeur minimale de recouvrement peut être prédéfinie pour le décodage par transformée et le nombre d'échantillons générés de la deuxième sous-trame est déterminé en fonction de la valeur minimale de recouvrement. Cette dernière sous-trame peut être générée sans information supplémentaire en prolongeant la synthèse CELP en répétant la prédiction de pitch avec le même retard de pitch et le même gain de dictionnaire adaptatif que dans la première sous-trame, et en effectuant une filtrage LPC de synthèse avec les mêmes coefficients LPC et une dé-emphase ou désaccentuation.According to an embodiment of the decoding method P, a minimum overlap value can be predefined for the transform decoding and the number of generated samples of the second subframe is determined according to the minimum overlap value. This latter sub-frame can be generated without additional information by extending the CELP synthesis by repeating the pitch prediction with the same pitch delay and the same adaptive dictionary gain as in the first subframe, and performing a LPC filtering of synthesis with the same LPC coefficients and a de-emphasis or de-emphasis.

La deuxième sous-trame CELP peut ensuite être tronquée de manière à ne conserver que 1,25 ms de signal dans le cas du coeur CELP à 12,8 kHz, et 2,25 ms de signal dans le cas du coeur CELP à 16 kHz. La première sous-trame CELP est ainsi complétée de manière à avoir 6,25 ms de signal supplémentaire permettant de combler le trou et d'assurer une addition-recouvrement satisfaisante (valeur minimale de recouvrement, par exemple de 1,875 ms) avec la trame de transition MDCT. Dans un mode de réalisation, la sous-trame CELP supplémentaire a une longueur étendue à 6,25 ms pour les coeurs CELP à 12,8 et 16 kHz, ce qui implique de modifier le codage CELP « normal » pour disposer d'une telle longueur de sous-trame étendue, en particulier pour le dictionnaire fixe.The second CELP sub-frame can then be truncated so as to retain only 1.25 ms of signal in the case of the CELP core at 12.8 kHz, and 2.25 ms of signal in the case of the 16 kHz CELP core. . The first sub-frame CELP is thus completed so as to have 6.25 ms of additional signal making it possible to fill the hole and to ensure a satisfactory addition-recovery (minimum value of overlap, for example of 1.875 ms) with the frame of MDCT transition. In one embodiment, the additional CELP subframe has a length extended to 6.25 ms for CELP cores at 12.8 and 16 kHz, which implies modifying the "normal" CELP coding to have such a extended subframe length, especially for the fixed dictionary.

En complément du mode de réalisation précédent du procédé de décodage P, le procédé P peut comprendre en outre une étape 615 de ré-échantillonnage mise en oeuvre par un filtre à réponse impulsionnelle finie. Comme précédemment expliqué, le filtre FIR peut être intégré dans l'unité de ré-échantillonnage 505. Le ré-échantillonnage utilise la mémoire du filtre FIR de la trame CELP précédente et le traitement induit un retard supplémentaire de 1,25 ms dans cet exemple.In addition to the previous embodiment of the decoding method P, the method P may further comprise a re-sampling step 615 implemented by a finite impulse response filter. As previously explained, the FIR filter can be integrated in the resampling unit 505. The resampling uses the memory of the FIR filter of the previous CELP frame and the processing induces an additional delay of 1.25 ms in this example. .

Le procédé P peut comporter en outre une étape d'ajout d'un signal additionnel obtenu à partir d'échantillons stockés dans la mémoire du filtre à réponse impulsionnelle finie, pour combler le retard introduit par l'étape de ré-échantillonnage. Ainsi, 1,25 ms de signal, en plus des 6,25 ms de signal additionnel précédemment généré, sont générés par le décodeur 500, ces échantillons permettant avantageusement de combler le retard introduit par le ré-échantillonnage des 6,25 ms de signal additionnel.The method P may further comprise a step of adding an additional signal obtained from samples stored in the memory of the finite impulse response filter, to fill the delay introduced by the resampling step. Thus, 1.25 ms of signal, in addition to the 6.25 ms of additional signal previously generated, are generated by the decoder 500, these samples advantageously making it possible to bridge the delay introduced by the resampling of the 6.25 ms of signal. additional.

A cet effet, la mémoire du filtre FIR de l'unité de ré-échantillonnage 505 peut être sauvegardée à chaque trame après décodage CELP. Le nombre d'échantillons dans cette mémoire correspond à 1,25 ms à la fréquence du coeur CELP considérée (12,8 ou 16 kHz).For this purpose, the memory of the FIR filter of the resampling unit 505 can be saved at each frame after CELP decoding. The number of samples in this memory corresponds to 1.25 ms at the frequency of the CELP core considered (12.8 or 16 kHz).

Selon un mode de réalisation complémentaire du procédé P, le ré-échantillonnage des échantillons stockés est effectué par une méthode d'interpolation introduisant un deuxième retard inférieur au premier retard du filtre à réponse impulsionnelle finie, pouvant être considéré comme nul. Ainsi, les 1,25 ms de signal générés à partir de la mémoire du filtre FIR, sont ré-échantillonnés selon une méthode impliquant un retard moindre. Par exemple, un ré-échantillonnage des 1,25 ms de signal généré par la mémoire du filtre FIR peut être mis en oeuvre par interpolation cubique, qui implique un retard de deux échantillons uniquement, retard moindre comparé au retard du filtre FIR. Ainsi, deux échantillons de signal supplémentaires sont requis pour ré-échantillonner les 1,25 ms de signal précités : ces deux échantillons supplémentaires peuvent être obtenus en répétant la dernière valeur de la mémoire de ré-échantillonnage du filtre FIR.According to a complementary embodiment of the method P, the resampling of the stored samples is performed by an interpolation method introducing a second delay less than the first delay of the finite impulse response filter, which can be considered as zero. Thus, the 1.25 ms of signal generated from the memory of the FIR filter, are resampled according to a method involving a lesser delay. For example, a re-sampling of the 1.25 ms of signal generated by the memory of the FIR filter can be implemented by cubic interpolation, which involves a delay of only two samples, less delay compared to the delay of the FIR filter. Thus, two additional signal samples are required to re-sample the aforementioned 1.25 ms of signal: these two additional samples can be obtained by repeating the last value of the re-sampling memory of the FIR filter.

Le décodeur peut en outre décoder la partie haute fréquence des 6,25 ms de signal CELP obtenue à partir des première et deuxième sous-trames de transition. A cet effet, le décodeur CELP 504 peut utiliser le gain adaptatif et le vecteur du dictionnaire fixe de la dernière sous-trame de la trame CELP précédente.The decoder may further decode the high frequency part of the 6.25 msec CELP signal obtained from the first and second transition subframes. For this purpose, the decoder CELP 504 can use the adaptive gain and the vector of the fixed dictionary of the last subframe of the previous CELP frame.

Le décodeur 500 comprend en outre une unité d'addition-recouvrement 509 apte à assurer l'addition-recouvrement, à une étape 616, entre les sous-trames de transition CELP décodées et ré-échantillonnées, les échantillons ré-échantillonnés par l'interpolation cubique, et le signal décodé de la trame de transition issu du décodeur MDCT 507.The decoder 500 further comprises a summation-recovery unit 509 capable of providing the overlap-addition, at a step 616, between the decoded and resampled CELP transition subframes, the samples resampled by the cubic interpolation, and the decoded signal of the transition frame from the MDCT decoder 507.

A cet effet, l'unité 509 applique la fenêtre modifiée 327 de synthèse de la figure 3. Ainsi, avant le point de repliement MDCT pour les deux premiers quarts, les échantillons fenêtrés sont mis à zéro. Après le point de repliement précité, les échantillons fenêtrés sont divisés par la fenêtre non modifiée 324 de la figure 3, et multipliés par une fenêtre de type sinus de manière à ce que, combinée avec la fenêtre appliquée à l'encodeur, la fenêtre totale soit en sin2. Dans la partie concernée par l'addition-recouvrement, les échantillons issus du CELP et du ré-échantillonnage à 0 délai (par exemple par interpolation cubique) sont pondérés par une fenêtre en cos2 For this purpose, the unit 509 applies the modified window 327 of synthesis of the figure 3 . Thus, before the MDCT fold point for the first two quarters, the windowed samples are set to zero. After the aforementioned folding point, the windowed samples are divided by the unmodified window 324 of the figure 3 , and multiplied by a sine-type window so that, combined with the window applied to the encoder, the total window is sin 2 . In the overlap-addition part, samples from the CELP and 0-delay resampling (for example by cubic interpolation) are weighted by a cos 2 window.

La trame de transition ainsi obtenue est transmise à l'interface de sortie 510 du décodeur à l'étape 608.The transition frame thus obtained is transmitted to the output interface 510 of the decoder at step 608.

La figure 7 représente un exemple de dispositif 700 de détermination de la répartition des bits d'une trame de transition.The figure 7 represents an example of a device 700 for determining the distribution of the bits of a transition frame.

Le dispositif comprend une mémoire vive 704 et un processeur 703 pour stocker des instructions permettant la mise en oeuvre du procédé de détermination de la répartition des bits d'une trame de transition décrit ci-avant. Le dispositif comporte aussi une mémoire de masse 705 pour le stockage de données destinées à être conservées après l'application du procédé. Le dispositif 700 comporte en outre une interface d'entrée 701 et une interface de sortie 706 respectivement destinées à recevoir les trames du signal numérique et à émettre le détail du budget alloué à ces différentes trames.The device comprises a random access memory 704 and a processor 703 for storing instructions for carrying out the method for determining the distribution of the bits of a transition frame described above. The device also has a mass memory 705 for storing data to be retained after the application of the method. The device 700 further comprises an input interface 701 and an output interface 706 respectively intended to receive the frames of the digital signal and to issue the detail of the budget allocated to these different frames.

Le dispositif 700 peut en outre comporter un processeur de signal numérique (DSP) 702. Ce DSP 702 reçoit les trames de signal numérique pour mettre en forme, démoduler et amplifier, de façon connue en soi ces trames.The device 700 may further comprise a digital signal processor (DSP) 702. This DSP 702 receives the digital signal frames for shaping, demodulating and amplifying, in a manner known per se, these frames.

La présente invention ne se limite pas aux formes de réalisation décrites ci-avant à titre d'exemples ; elle s'étend à d'autres variantes.The present invention is not limited to the embodiments described above as examples; it extends to other variants.

Ainsi, on a décrit ci-avant un mode de réalisation dans lequel les dispositifs de compression ou de décompression sont des entités à part entière. Bien sûr, ces dispositifs peuvent être embarqués dans tout type de dispositif plus important comme par exemple une caméra numérique, un appareil photo, un téléphone portable, un ordinateur, un projecteur de cinéma, etc.Thus, an embodiment has been described above in which the compression or decompression devices are entities in their own right. Of course, these devices can be embedded in any type of larger device such as a digital camera, a camera, a mobile phone, a computer, a movie projector, etc.

De plus, on a décrit un mode de réalisation proposant une architecture particulière des dispositifs de compression, de décompression et de comparaison. Ces architectures ne sont données qu'à titre illustratif. Ainsi, un agencement des composants et une répartition différente des taches affectées à chacune de ces composantes est également envisageable. Par exemple, les tâches effectuées le processeur de signal numérique (DSP) peuvent également être effectuées par un processeur classique.In addition, an embodiment has been described proposing a particular architecture of compression, decompression and comparison devices. These architectures are given for illustrative purposes only. Thus, an arrangement of the components and a different distribution of the spots assigned to each of these components is also conceivable. For example, the tasks performed by the digital signal processor (DSP) can also be performed by a conventional processor.

Claims (15)

  1. Method for determining a distribution of coding bits of a transition frame (321; 322), said method being implemented in a coder/decoder (100; 500) for coding/decoding a digital audio signal, the transition frame being preceded by a preceding predictively coded frame (320), the coding of the transition frame comprising transform coding and predictive coding of a single subframe of the transition frame, the method being characterized by the following steps:
    - assigning (402; 405) a bit rate for the predictive coding of the transition subframe, said bit rate being equal to the minimum between the bit rate of the transform coding of the transition frame and a first predetermined bit rate value;
    - determining (404; 408) a first number of bits allocated for the predictive coding of the transition subframe for said bit rate; and
    - calculating (410) a second number of bits allocated for the transform coding of the transition frame on the basis of the first number of bits and of a number of bits available for the coding of the transition frame.
  2. Method according to Claim 1, wherein the coder/decoder (100; 500) comprises a first core operating at a first frequency for the predictive coding/decoding of a signal frame, and a second core operating at a second frequency for the predictive coding/decoding of a signal frame,
    wherein the first predetermined bit rate value depends on the core selected from among the first and second cores for the coding/decoding of the preceding predictively coded frame (320).
  3. Method according to Claim 2, when the first core has been selected for the coding/decoding of the preceding predictively coded frame (320), the assigned bit rate is furthermore equal to the maximum between the bit rate of the transform-coded transition frame (322) and at least one second predetermined bit rate value, the second value being lower than the first value.
  4. Method according to one of the preceding claims, wherein the digital audio signal is decomposed into at least one frequency low band and one frequency high band,
    wherein the calculated first number of bits is assigned to the predictive coding of the transition subframe (321) for the frequency low band, and wherein a predetermined third number of bits is allocated to a coding of the transition subframe for the frequency high band,
    and wherein the second number of bits allocated for the transform coding of the transition frame (322) is furthermore determined on the basis of the predetermined third number of bits.
  5. Method according to Claim 4, wherein the number of bits available for the coding of the transition frame (321; 322) is fixed.
  6. Method according to Claim 5, wherein the second number of bits is equal to the fixed number of coding bits of the transition frame (321; 322) minus the first number of bits minus the third number of bits.
  7. Method according to Claim 5, wherein the second number of bits is equal to the fixed number of coding bits of the transition frame (321; 322) minus the first number of bits minus the third number of bits minus a first bit minus a second bit,
    the first bit indicating whether low-pass filtering is carried out when determining the parameters of the predictive coding of the transition subframe, said parameters relating to the tonal delay,
    the second bit indicating the frequency used by the core of the coder/decoder for the predictive coding/decoding of the transition subframe.
  8. Method for coding a digital audio signal in a coder (100) able to code signal frames using predictive coding or using transform coding, including the following steps:
    * coding a preceding frame (301) of samples of the digital audio signal using predictive coding;
    * coding a current frame (302) of samples of the digital audio signal into a transition frame (321; 322), the coding of the transition frame (321; 322) comprising transform coding and predictive coding of a single subframe (321) of the transition frame, said coding of the current frame (302) including the following sub-steps:
    - determining (209) the distribution of the bits according to one of the preceding claims;
    - transform coding (212) the transition frame (322) on the second number of allocated bits;
    - predictively coding (213) the transition subframe (321) on the first number of allocated bits.
  9. Coding method according to Claim 8, wherein the predictive coding comprises generating determined predictive coding parameters for said allocated bit rate.
  10. Coding method according to either of Claims 8 and 9, wherein the predictive coding comprises generating predictive coding parameters that are limited with respect to the predictive coding of the preceding frame (320) by reusing at least one parameter of the predictive coding of the preceding frame.
  11. Method for decoding a coded digital audio signal, implemented in a decoder (500) able to decode signal frames using predictive coding or using transform decoding, including the steps of:
    * predictively decoding (605) a preceding frame of samples of the digital audio signal coded using predictive coding;
    * decoding a transition frame (321; 322) coding a current frame of samples of the digital audio signal, the coding of the transition frame comprising transform coding and predictive coding of a single subframe (321) of the transition frame, including the sub-steps of:
    - determining (611) the distribution of the bits according to one of Claims 1 to 7;
    - predictively decoding (614) the transition subframe (321) on the first number of allocated bits;
    - transform decoding (612) the transition frame (322) on the second number of allocated bits.
  12. Computer program including instructions for implementing the method according to any one of the preceding claims when these instructions are executed by a processor.
  13. Device for determining a distribution of coding bits of a transition frame (321; 322), said device (104; 503) being implemented in a coder/decoder for coding/decoding a digital audio signal, the transition frame being preceded by a preceding predictively coded frame (320), the coding of the transition frame comprising transform coding and predictive coding of a single subframe (321) of the transition frame, the number of coding bits of the transition frame being fixed, the device being characterized by a processor designed to carry out the following operations:
    - assigning a bit rate for the predictive coding of the transition subframe, said bit rate being equal to the minimum between the bit rate of the transform coding of the transition frame and a first predetermined bit rate value;
    - determining a first number of bits allocated for the predictive coding of the transition subframe for said bit rate, and;
    - calculating a second number of bits allocated for the transform coding of the transition frame on the basis of the number of bits required for the coding of the coding parameters and the fixed number of coding bits of the transition frame.
  14. Coder able to code frames of a digital audio signal using predictive coding or using transform coding, including:
    * a device (104) according to Claim 13;
    * a predictive coder (103) including a processor designed to carry out the following operations:
    - coding a preceding frame of samples of the digital audio signal using predictive coding;
    - predictively coding a single subframe contained in a transition frame coding a current frame of samples of the digital audio signal, the coding of the transition frame comprising transform coding and predictive coding of said subframe, the processor being designed to carry out the predictive coding of the transition subframe on the first number of allocated bits;
    * a transform coder (105) including a processor designed to carry out the operation of transform coding the transition frame on the second number of allocated bits.
  15. Decoder for a digital audio signal coded by way of predictive coding and by way of transform coding, including:
    * a device (503) according to Claim 13;
    * a predictive decoder (504) including a processor designed to carry out the following operations:
    - predictively decoding a preceding frame (320) of samples of the digital audio signal coded using predictive coding;
    - predictively decoding a single subframe (321) contained in a transition frame coding a current frame of samples of the digital audio signal, the coding of the transition frame comprising transform coding and predictive coding of said subframe, the processor being designed to carry out the operation of predictively decoding the transition subframe on the first number of allocated bits;
    * a transform decoder (507) including a processor designed to carry out the operation of transform decoding the transition frame (322) on the second number of allocated bits.
EP15745542.9A 2014-07-29 2015-07-27 Determining a budget for lpd/fd transition frame encoding Active EP3175443B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1457353A FR3024581A1 (en) 2014-07-29 2014-07-29 DETERMINING A CODING BUDGET OF A TRANSITION FRAME LPD / FD
PCT/FR2015/052073 WO2016016566A1 (en) 2014-07-29 2015-07-27 Determining a budget for lpd/fd transition frame encoding

Publications (2)

Publication Number Publication Date
EP3175443A1 EP3175443A1 (en) 2017-06-07
EP3175443B1 true EP3175443B1 (en) 2018-04-11

Family

ID=51894138

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15745542.9A Active EP3175443B1 (en) 2014-07-29 2015-07-27 Determining a budget for lpd/fd transition frame encoding

Country Status (8)

Country Link
US (2) US10586549B2 (en)
EP (1) EP3175443B1 (en)
JP (1) JP6607921B2 (en)
KR (2) KR20170037660A (en)
CN (2) CN112133315B (en)
ES (1) ES2676832T3 (en)
FR (1) FR3024581A1 (en)
WO (1) WO2016016566A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3024581A1 (en) * 2014-07-29 2016-02-05 Orange DETERMINING A CODING BUDGET OF A TRANSITION FRAME LPD / FD
WO2016091893A1 (en) * 2014-12-09 2016-06-16 Dolby International Ab Mdct-domain error concealment
BR112020004883A2 (en) * 2017-09-20 2020-09-15 Voiceage Corporation method and device for allocating a bit-budget between subframes in a celp codec
EP3966818A4 (en) * 2019-05-07 2023-01-04 VoiceAge Corporation Methods and devices for detecting an attack in a sound signal to be coded and for coding the detected attack
CN111402908A (en) * 2020-03-30 2020-07-10 Oppo广东移动通信有限公司 Voice processing method, device, electronic equipment and storage medium
CN111431947A (en) * 2020-06-15 2020-07-17 广东睿江云计算股份有限公司 Method and system for optimizing display of cloud desktop client

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0932141B1 (en) * 1998-01-22 2005-08-24 Deutsche Telekom AG Method for signal controlled switching between different audio coding schemes
US6782360B1 (en) * 1999-09-22 2004-08-24 Mindspeed Technologies, Inc. Gain quantization for a CELP speech coder
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
US6804218B2 (en) * 2000-12-04 2004-10-12 Qualcomm Incorporated Method and apparatus for improved detection of rate errors in variable rate receivers
EP1425562B1 (en) * 2001-08-17 2007-01-10 Broadcom Corporation Improved bit error concealment methods for speech coding
CA2365203A1 (en) * 2001-12-14 2003-06-14 Voiceage Corporation A signal modification method for efficient coding of speech signals
US6647366B2 (en) * 2001-12-28 2003-11-11 Microsoft Corporation Rate control strategies for speech and music coding
US7937271B2 (en) * 2004-09-17 2011-05-03 Digital Rise Technology Co., Ltd. Audio decoding using variable-length codebook application ranges
US7630902B2 (en) * 2004-09-17 2009-12-08 Digital Rise Technology Co., Ltd. Apparatus and methods for digital audio coding using codebook application ranges
US8090573B2 (en) * 2006-01-20 2012-01-03 Qualcomm Incorporated Selection of encoding modes and/or encoding rates for speech compression with open loop re-decision
FR2897733A1 (en) * 2006-02-20 2007-08-24 France Telecom Echo discriminating and attenuating method for hierarchical coder-decoder, involves attenuating echoes based on initial processing in discriminated low energy zone, and inhibiting attenuation of echoes in false alarm zone
EP2102619B1 (en) * 2006-10-24 2017-03-22 Voiceage Corporation Method and device for coding transition frames in speech signals
KR100848324B1 (en) * 2006-12-08 2008-07-24 한국전자통신연구원 Speech Coder and Method
CN101206860A (en) * 2006-12-20 2008-06-25 华为技术有限公司 Method and apparatus for encoding and decoding layered audio
CN101025918B (en) * 2007-01-19 2011-06-29 清华大学 A voice/music dual-mode codec seamless switching method
CN100578619C (en) * 2007-11-05 2010-01-06 华为技术有限公司 Encoding method and encoder
DE602008005250D1 (en) * 2008-01-04 2011-04-14 Dolby Sweden Ab Audio encoder and decoder
CN101261836B (en) * 2008-04-25 2011-03-30 清华大学 Method for Improving Naturalness of Excitation Signal Based on Transition Frame Judgment and Processing
ES2683077T3 (en) * 2008-07-11 2018-09-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and decoder for encoding and decoding frames of a sampled audio signal
CN102105930B (en) * 2008-07-11 2012-10-03 弗朗霍夫应用科学研究促进协会 Audio encoder and decoder for encoding frames of sampled audio signals
KR101325335B1 (en) * 2008-07-11 2013-11-08 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 Audio encoder and decoder for encoding and decoding audio samples
KR101315617B1 (en) * 2008-11-26 2013-10-08 광운대학교 산학협력단 Unified speech/audio coder(usac) processing windows sequence based mode switching
KR101622950B1 (en) * 2009-01-28 2016-05-23 삼성전자주식회사 Method of coding/decoding audio signal and apparatus for enabling the method
EP2460158A4 (en) * 2009-07-27 2013-09-04 A method and an apparatus for processing an audio signal
AU2010305383B2 (en) * 2009-10-08 2013-10-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Multi-mode audio signal decoder, multi-mode audio signal encoder, methods and computer program using a linear-prediction-coding based noise shaping
EP4358082A1 (en) * 2009-10-20 2024-04-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio signal encoder, audio signal decoder, method for encoding or decoding an audio signal using an aliasing-cancellation
EP2491555B1 (en) * 2009-10-20 2014-03-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-mode audio codec
CN102222505B (en) * 2010-04-13 2012-12-19 中兴通讯股份有限公司 Hierarchical audio coding and decoding methods and systems and transient signal hierarchical coding and decoding methods
CN102985968B (en) * 2010-07-01 2015-12-02 Lg电子株式会社 The method and apparatus of audio signal
US8990094B2 (en) * 2010-09-13 2015-03-24 Qualcomm Incorporated Coding and decoding a transient frame
FR2969805A1 (en) * 2010-12-23 2012-06-29 France Telecom LOW ALTERNATE CUSTOM CODING PREDICTIVE CODING AND TRANSFORMED CODING
TWI479478B (en) * 2011-02-14 2015-04-01 Fraunhofer Ges Forschung Apparatus and method for decoding an audio signal using an aligned look-ahead portion
CN102737636B (en) * 2011-04-13 2014-06-04 华为技术有限公司 Audio coding method and device thereof
FR2977439A1 (en) * 2011-06-28 2013-01-04 France Telecom WINDOW WINDOWS IN ENCODING / DECODING BY TRANSFORMATION WITH RECOVERY, OPTIMIZED IN DELAY.
KR102078865B1 (en) * 2011-06-30 2020-02-19 삼성전자주식회사 Apparatus and method for generating a bandwidth extended signal
FR2981781A1 (en) * 2011-10-19 2013-04-26 France Telecom IMPROVED HIERARCHICAL CODING
JP6039678B2 (en) * 2011-10-27 2016-12-07 エルジー エレクトロニクス インコーポレイティド Audio signal encoding method and decoding method and apparatus using the same
US9378746B2 (en) * 2012-03-21 2016-06-28 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding high frequency for bandwidth extension
CN109448745B (en) * 2013-01-07 2021-09-07 中兴通讯股份有限公司 Coding mode switching method and device and decoding mode switching method and device
RU2626666C2 (en) * 2013-02-20 2017-07-31 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Device and method for generating coded signal or decoding encoded audio signal by using site with multiple overlap
EP2980797A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, method and computer program using a zero-input-response to obtain a smooth transition
FR3024581A1 (en) * 2014-07-29 2016-02-05 Orange DETERMINING A CODING BUDGET OF A TRANSITION FRAME LPD / FD
TWI602172B (en) * 2014-08-27 2017-10-11 弗勞恩霍夫爾協會 Encoder, decoder and method for encoding and decoding audio content using parameters for enhancing a concealment

Also Published As

Publication number Publication date
WO2016016566A1 (en) 2016-02-04
KR20220066412A (en) 2022-05-24
JP6607921B2 (en) 2019-11-20
CN106605263A (en) 2017-04-26
US11158332B2 (en) 2021-10-26
CN106605263B (en) 2020-11-27
CN112133315A (en) 2020-12-25
JP2017527843A (en) 2017-09-21
ES2676832T3 (en) 2018-07-25
FR3024581A1 (en) 2016-02-05
EP3175443A1 (en) 2017-06-07
US20180182408A1 (en) 2018-06-28
CN112133315B (en) 2024-03-08
KR20170037660A (en) 2017-04-04
US20200168236A1 (en) 2020-05-28
US10586549B2 (en) 2020-03-10
KR102485835B1 (en) 2023-01-09

Similar Documents

Publication Publication Date Title
EP1905010B1 (en) Hierarchical audio encoding/decoding
EP3175443B1 (en) Determining a budget for lpd/fd transition frame encoding
EP1907812B1 (en) Method for switching rate- and bandwidth-scalable audio decoding rate
EP2277172B1 (en) Concealment of transmission error in a digital signal in a hierarchical decoding structure
RU2584463C2 (en) Low latency audio encoding, comprising alternating predictive coding and transform coding
EP2104936B1 (en) Low-delay transform coding using weighting windows
EP3175444B1 (en) Frame loss management in an fd/lpd transition context
WO2015197989A1 (en) Resampling of an audio signal by interpolation for low-delay encoding/decoding
EP1047045A2 (en) Sound synthesizing apparatus and method
EP3069340B1 (en) Transition from a transform coding/decoding to a predictive coding/decoding
EP3138095A1 (en) Improved frame loss correction with voice information
EP2589045B1 (en) Adaptive linear predictive coding/decoding
FR2911227A1 (en) Digital audio signal coding/decoding method for telecommunication application, involves applying short and window to code current frame, when event is detected at start of current frame and not detected in current frame, respectively
FR2737360A1 (en) Audio digital signal coding method of successive sample blocks - using spectral analysis to select vector dictionary for each sample block and allocating vector and scalar quantisation bits
FR2980620A1 (en) Method for processing decoded audio frequency signal, e.g. coded voice signal including music, involves performing spectral attenuation of residue, and combining residue and attenuated signal from spectrum of tonal components

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

17P Request for examination filed

Effective date: 20170124

AK Designated contracting states

Kind code of ref document: A1

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

AX Request for extension of the european patent

Extension state: BA ME

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

Free format text: ORIGINAL CODE: 0009012

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

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
R17P Request for examination filed (corrected)

Effective date: 20170124

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

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

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20171201

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

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

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

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

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 988826

Country of ref document: AT

Kind code of ref document: T

Effective date: 20180415

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: FRENCH

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602015009948

Country of ref document: DE

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 4

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2676832

Country of ref document: ES

Kind code of ref document: T3

Effective date: 20180725

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20180411

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

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

Ref country code: NL

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

Effective date: 20180411

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

Ref country code: BG

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

Effective date: 20180711

Ref country code: NO

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

Effective date: 20180711

Ref country code: AL

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

Effective date: 20180411

Ref country code: FI

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

Effective date: 20180411

Ref country code: SE

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

Effective date: 20180411

Ref country code: LT

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

Effective date: 20180411

Ref country code: PL

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

Effective date: 20180411

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

Ref country code: HR

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

Effective date: 20180411

Ref country code: RS

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

Effective date: 20180411

Ref country code: GR

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

Effective date: 20180712

Ref country code: LV

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

Effective date: 20180411

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 988826

Country of ref document: AT

Kind code of ref document: T

Effective date: 20180411

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

Ref country code: PT

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

Effective date: 20180813

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602015009948

Country of ref document: DE

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

Ref country code: SK

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

Effective date: 20180411

Ref country code: RO

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

Effective date: 20180411

Ref country code: CZ

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

Effective date: 20180411

Ref country code: DK

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

Effective date: 20180411

Ref country code: AT

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

Effective date: 20180411

Ref country code: EE

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

Effective date: 20180411

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

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

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

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

Ref country code: SM

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

Effective date: 20180411

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

26N No opposition filed

Effective date: 20190114

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

Ref country code: LU

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

Effective date: 20180727

Ref country code: MC

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

Effective date: 20180411

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20180731

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

Ref country code: CH

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

Effective date: 20180731

Ref country code: LI

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

Effective date: 20180731

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

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

Ref country code: BE

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

Effective date: 20180731

Ref country code: SI

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

Effective date: 20180411

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

Ref country code: IE

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

Effective date: 20180727

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

Ref country code: MT

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

Effective date: 20180411

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

Ref country code: TR

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

Effective date: 20180411

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

Ref country code: MK

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

Effective date: 20180411

Ref country code: CY

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

Effective date: 20180411

Ref country code: HU

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

Effective date: 20150727

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

Ref country code: IS

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

Effective date: 20180811

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

Ref country code: ES

Payment date: 20230801

Year of fee payment: 9

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

Ref country code: GB

Payment date: 20240620

Year of fee payment: 10

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

Ref country code: FR

Payment date: 20240619

Year of fee payment: 10

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

Ref country code: IT

Payment date: 20240619

Year of fee payment: 10

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

Ref country code: DE

Payment date: 20240619

Year of fee payment: 10

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

Ref country code: ES

Payment date: 20240802

Year of fee payment: 10