EP2183851A1 - Encoding/decoding by symbol planes with dynamic calculation of probability tables - Google Patents

Encoding/decoding by symbol planes with dynamic calculation of probability tables

Info

Publication number
EP2183851A1
EP2183851A1 EP08828177A EP08828177A EP2183851A1 EP 2183851 A1 EP2183851 A1 EP 2183851A1 EP 08828177 A EP08828177 A EP 08828177A EP 08828177 A EP08828177 A EP 08828177A EP 2183851 A1 EP2183851 A1 EP 2183851A1
Authority
EP
European Patent Office
Prior art keywords
plane
signal
probabilities
symbol
values
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.)
Withdrawn
Application number
EP08828177A
Other languages
German (de)
French (fr)
Inventor
Marie Oger
Thi Minh Nguyet Hoang
Stéphane RAGOT
Marc Antonini
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2183851A1 publication Critical patent/EP2183851A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Definitions

  • the present invention relates to coding / decoding processing of digital signals such as speech signals, image signals, or more generally audio and / or video signals, or more generally multimedia signals, for storage and / or transmission.
  • lossless compression methods Huffman coding, Golomb-Rice coding, arithmetic coding
  • entropy coding compression methods, lossy, resting on a scalar or vector quantization.
  • a compression encoder typically comprises: an analysis module 100 of the source to be coded S, a quantization module 101 (of scalar or vector type), followed by a module 102 encoding, while a peer decoder comprises: a decoding module 103, an inverse quantization module 104, and a synthesis module 105.
  • Reference 205 illustrates the transmission channel from the encoder to the decoder, which may optionally apply truncation of the bit stream.
  • the entropic coding of the planes can advantageously be achieved by a so-called "contextual arithmetic" coder.
  • the principle of an arithmetic coder is explained in Witten et al:
  • the module 203 encodes the bit planes, one by one, starting with the most significant bit planes to the least significant bit planes. This notion of more or less significant bit planes will be described later with reference to FIG. 3.
  • the flow rate that is produced at the output of the encoder is, in general, variable. In what follows, the manner of managing this variable bit rate (modules 200 and 204 of FIG. 2) is not described.
  • the bit stream generated by the module 203 is finally transmitted on a channel 205, which can truncate the bit stream (by exploiting the hierarchical nature of the bit stream) or introduce binary errors.
  • the demultiplexer-decoder (module 206) reconstructs the bit planes P k , one by one, and decodes the sign bits S that have been transmitted. This decoded information makes it possible to reconstruct (module 207) the signal Y.
  • the demultiplexer-decoder (module 206) reconstructs the bit planes P k , one by one, and decodes the sign bits S that have been transmitted. This decoded information makes it possible to reconstruct (module 207) the signal Y.
  • bitmap coding The main interest of bitmap coding is that it leads naturally to a hierarchical (or progressive) coding of the signal. Successive approximations of the signal becoming more precise can be reconstructed as we receive the entire bit stream transmitted by the encoder.
  • N S.
  • the sign bits are represented by the vector bearing the reference sgn in FIG. 3.
  • K 3
  • P 0 [0,1,1,0,1,1,0,1]
  • P 1 [1,1,1,0,0,1,1,0]
  • P 2 [0,1,0,0,0,0,1,1]
  • S [1,0,0, 0,0,1,1,0].
  • the vector P k then represents a plane of bits of weight k.
  • P ⁇ -1 represents the most significant bit plane (MSB reference for "Most Significant Bits” in English), while the lower bit plane P 0 represents the plane of the least significant bits (LSB reference for "Least Significant Bits”). " in English).
  • step 401 the total number K of bit planes (step 401) is obtained.
  • the plane Pk of current index k (step 404) is coded.
  • the signs of the new significant coefficients associated with the plane Pk are transmitted.
  • the coding is therefore performed on successive bit planes Pk, from the MSB plane to the LSB plane. It is indicated that it is also possible to split the planes Pk into sub-vectors to allow an even more progressive decoding, this fractionation possibly being able to go as far as obtaining sub-vectors of unit size (equal to 1).
  • Bit planes of absolute values can then be encoded by adaptive arithmetic coding.
  • the planes P k can be coded one by one (independently of each other, sequentially going from the MSB plane to the LSB plane) by adaptive arithmetic coding.
  • the adaptation of the probabilities of the symbols (0 and 1) in the coding of a plane Pk uses only the bits that have already been coded in the same plane Pk.
  • This type of encoding is given in particular in the document:
  • More sophisticated coders do not set the initial frequency of 0 and 1 to 1/2, but store probabilities values in pre-recorded tables that give an initial frequency of 0 and 1 adapted to a certain operating context (eg adapted to the flow, or to the type of source to be coded). At best, the coders of the state of the art therefore require a storage of tables of probabilities of the symbols
  • prerecorded tables are usually required to apply Huffman type entropy coding or arithmetic coding.
  • State-of-the-art techniques are therefore not very flexible because they require pre-computation and storage of information that must be adapted to particular operating conditions (flow rate, source type). Therefore, it is necessary to anticipate, in the design of coders / decoders, all possible situations, in order to generate such tables. The present invention improves the situation.
  • these probabilities are calculated dynamically from an estimate of a distribution of the signal.
  • the estimation of the signal distribution is conducted on the signal to be coded, before quantization, in order to have the finest possible estimation of the signal distribution (and not an estimate of the signal distribution). distribution of the depleted signal after quantification).
  • the signal having a succession of values each value is decomposed into a plurality of symbol values in a respective plurality of symbol planes.
  • the probabilities are calculated for at least one plane and are each aimed at the probability of having, in this plane, a symbol value equal to a given symbol. Preferentially, the probabilities are calculated at least for the plane representing the most significant symbol values.
  • the probabilities are further calculated for other planes, taking into account a context defined by symbol values taken in planes representing more significant symbol values.
  • each symbol value taken in a plane representing a symbol value more significant than a symbol value in a current plane defines a context value for that value. current plan and for this position.
  • the aforementioned probabilities are then calculated for this current plane taking into account a plurality of possible values of the context for this current plane.
  • a limited number of possible values of the context is chosen, preferably a number of two, with:
  • the invention proposes, unlike the prior art, to dispense with any storage of probability tables, which are instead calculated "in line" (as a function of the signal), and to use an estimate of the density of probabilities of the source to be encoded / decoded (for example represented by a generalized Gaussian model) to dynamically calculate the probabilities of the symbols by planes (for example the probabilities of 0 and 1 for a bit plane).
  • the invention can therefore use knowledge of a probability model of the source to be encoded (or decoded), and this to estimate a priori the probabilities of symbols in each plane Pk.
  • FIG. 5 shows an example of encoder using, in the sense of the invention, a distribution model of the signal to be encoded, for a coding by bit planes
  • - Figure 6 shows a decoder homologous to the encoder of Figure 5
  • Figure 7 illustrates the density probability of a generalized Gaussian probability p and shows different calculation intervals ( ⁇ ,)
  • - Figure 8 shows the flow diagram of the bitplane coding with an initialization of the probability tables for each plane P k, according to the In the first embodiment
  • FIG. 9 shows the flowchart of a homologous decoding of the coding of FIG. 8;
  • FIG. 9 shows the flowchart of a homologous decoding of the coding of FIG. 8;
  • FIG. 10 shows an example of three-plane binary decomposition and contextual coding for the LSB plane
  • FIG. FIG. 11 illustrates the bit planes associated with a strongly harmonic signal, as well as a histogram H of this signal to be compared with a Mod distribution model that can be assigned to it (dotted line curve)
  • FIG. an arithmetic coding (contextual for the coding of the plane P ⁇ -2 in the example shown) of bit planes whose probability tables have been calculated dynamically by the method in the sense of the invention
  • FIG. flowchart of the bitmap coding with a contextual initialization of the probability tables according to the second embodiment mentioned above
  • FIG. 14 presents the flowchart of the bitmap coding with a contextual initialization of the probability tables in the case where only two possible contexts are imposed, according to the third embodiment mentioned above.
  • the present invention proposes a coding / decoding processing using symbol planes exploiting a probability distribution of the source to be encoded in order to estimate a priori the probability of the symbols (for example 0 and 1) for each plane.
  • This treatment aims at an optimization of the entropy coding by bringing a dynamic knowledge of the tables of probability.
  • contextual arithmetic coding can be considered as an example of entropy coding.
  • An example is described below in which the coding in the sense of the invention is carried out without loss of the indices resulting from the quantization of the transform coefficients of the frequency coders, in particular for speech and / or audio signals. Nevertheless, the invention also applies to lossy coding, in particular of signals such as image or video signals.
  • FIG. 5 illustrates an example of an encoder using a distribution model of the signal to be coded in order to know a priori the probabilities of the symbols 0 or 1 by bit planes, within the meaning of the invention.
  • the structure of the encoder is very close to an encoder of the prior art described in the document Oger et al: "Transform audio coding with arithmetic-coded scalar quantization and model-based bit allocation ", M. Oger, S. Ragot and M. Antonini, ICASSP, April 2007.
  • the encoder described in this document determines a signal distribution model for estimating a form factor ⁇ which in the cited document only serves for flow control purposes.
  • this type of encoder leads a coding according to the so-called “stack-run” technique and which has nothing to do with a coding by bit planes within the meaning of the invention.
  • the invention can advantageously take advantage of a pre-existing structure comprising a form factor calculating module 505 (FIG. 5) and furthermore use this module 505 to perform bit-plane coding as described below.
  • the encoder in the example represented comprises: a high-pass filter 501, a perceptual filtering module 502, a LPC analysis module 501 (for Linear Prediction Coding) and quantization, to obtain the short-term prediction parameters, a 504 conversion module MDCT (for "Modified Discrete Cosine
  • the module 505 for calculating a form factor ⁇ , from a generalized Gaussian model in the example described, a rate control module 506, in particular as a function of the number of bits used Nb, a module 507 which also uses the module 505 to carry out the calculations serving at least the initialization of the probability tables of the coding module 509 by bit planes, in a first embodiment, and, in other subsequent embodiments, the calculating contexts, a uniform scalar quantization module 508, the bitmap coding module 509, a noise level estimation and quantization module 510, - a multiplexer 511 of the outputs of the modules 503, 505, 509, and 510 for storing encoded data or transmission for subsequent decoding.
  • a uniform scalar quantization module 508 the bitmap coding module 509
  • a noise level estimation and quantization module 510 - a multiplexer 511 of the outputs of the modules 503, 505, 509, and 510 for storing encoded data or transmission for subsequent decoding
  • the input signal x (n) is filtered by a high-pass filter (501) in order to remove the frequencies below 50 Hz. Then, a perceptual shaping filtering is applied to the signal (502) and in parallel an LPC analysis is further applied to the signal (503) filtered by the module 501.
  • An MDCT analysis (504) is applied to the signal after perceptual filtering.
  • the analysis used may for example be the same as that of the standard 3GPP AMR-WB + encoder.
  • the form factor ⁇ is estimated on the coefficients of the MDCT transform (505). In particular, once the estimate of the form factor has been made, the quantization step q which is suitable to reach the desired rate (506) is calculated.
  • the encoding is performed by transforming with a bitmap coding whose probability tables are initialized in real time, in the sense of the invention, according to an estimated distribution model. dynamically depending on the signal to be coded.
  • the first part of the MDCT before conversion (modules 501 to 504) is equivalent to that used for the transform encoding with stack-run encoding presented in the document Oger et al cited above.
  • the estimation of the form factor (module 505) as well as the flow control can also be common.
  • the information of the determined model is used here to also estimate the probability tables (module 507) of the symbols 0 and 1 which will be used to initialize the coding module 509.
  • scalar quantification is performed.
  • module 508 the reference 512 representing a division module.
  • the quantization can be, too, common to that described in the document Oger et al, but here it is followed by a bitmap coding (module 509) whose initialization of the probability tables is done, as indicated below. before, following a model (defined by module 505).
  • An estimate of the noise level (module 510) is made which may still be common to that of the reference Oger et al.
  • the parameters of the encoder are finally transmitted to the decoder via a multiplexer 511.
  • a homologous decoder may comprise: a demultiplexing module 601 of the stream received from the coder of FIG. 5, a module 602 for decoding the LPC coefficients, a module 603 for estimating probabilities based on the model defined by the module 505 of FIG. 5, a module 606 for decoding the quantization step q, a noise level decoding module 605, using the value of the decoded quantization step, a bit plane decoding module 604 receiving the estimated probabilities (module 603) to deliver, by using the value of the decoded quantization step; , the decoded integer vector Y (k), a noise injection module 607,
  • a de-emphasis module 608 for finding the decoded vector X (k), expressed in the transformed domain, a module 609 for the inverse MDCT transform, and a module 610 for inverse perceptual filtering from the decoded LPC coefficients. (module 602), to find a signal x (n) which, without loss or truncation in the communication, corresponds to the original signal x (n) of FIG.
  • the number of bits Nb used by the coding is returned to the bit allocation module in order to modify (or adapt) the value of the quantization step, so that number of bits remains less than or equal to the available bit budget.
  • the MDCT spectrum is therefore coded in a rate control loop with typically 10 to 20 iterations, to arrive at an optimal quantization step q opt .
  • the initial quantization step fixed for the first iteration on the determination of the optimal quantization step q opt , is estimated from the form factor ⁇ that delivers the module 505 for determining a generalized Gaussian model.
  • model-based coding consists of quantifying and encoding the source not directly, but from a probability model.
  • A amplitude
  • This signal X may for example be delivered by the module 504 of FIG. 5 and then correspond to a signal MDCT which is a function of the frequency (freq).
  • the signal X is intended to be quantized by a quantization step q, to obtain (at the output of the module 508 of FIG. 5) the signal referenced Y and corresponding to a sequence of components y ,.
  • the signs and absolute values a, of these components y, and these absolute values a are decomposed into sections of bits MSB ... LSB shown in FIG.
  • This histogram H is then modeled by the model Mod (in dashed lines) which may for example be Gaussian.
  • the distribution H of the signal X can finally be represented by a probability density model (reference pdf for "probability density function"), following a simple scale change of abscissa (of VaI ( X,) to Val ( ⁇ ,), the reference Val ( ⁇ ,) denoting the different possible values that can take each absolute value of component a,).
  • FIG. 7 illustrates, by way of example, the density of probabilities of a generalized Gaussian, which is a particular model that can advantageously be chosen.
  • f ⁇ a mathematical expression
  • the probability density of a generalized Gaussian z source, of zero mean and of standard deviation ⁇ , is defined by: where ⁇ is the form factor describing the shape of the exponential function (FIG. 7), the parameters A ( ⁇ ) and B ( ⁇ ) being defined by:
  • the source (the signal to be coded) is modeled as the result of a random draw of a generalized Gaussian variable.
  • This generalized Gaussian model can then advantageously be used to model the spectrum to be coded in the field of the modified discrete cosine transform (MDCT). From this model, we can derive the value of the form factor ⁇ that characterizes the model. It is recalled that advantageously, the form factor ⁇ is already estimated for each signal block (or frame) from the spectrum to be coded, in some existing encoders which integrate a module such as the module 505 of FIG. the quantization step q.
  • the estimation of the distribution model (which can lead in particular to the form factor ⁇ ) also makes it possible to calculate the probabilities of the symbol values per planes. This technique is described below.
  • the estimation of a probability p ( ⁇ ,) of having a value of component a, among N possible values is based on the following calculation:
  • Figure 7 also illustrates the different intervals for calculating the probability p ( ⁇ /).
  • the calculation of the probabilities p ( ⁇ j can be carried out by conventional integration methods.
  • the trapezoidal method which is simple to implement, is preferably used in a preferred embodiment and the value of the difference is preferably standardized.
  • -type ⁇ to 1 so that the quantization step, for the computation of the integral in the equation above, becomes q / ⁇
  • This operation allows a more efficient computation of the integrals, because one thus removes the problem of the variation of dynamics on the signal and is reduced to a centered source of unit variance whatever the value of the form factor.
  • an estimate of the probability of having bits at O or 1 for each bit plane Pk is provided, thereby defining what was referred to above as the initial tables of probabilities. These tables will be described with reference to Figure 12 discussed below.
  • conditional probabilities of O or 1 as a function of the already coded bits and at the same position in previous planes (these bits then defining a context).
  • an estimate of the conditional probabilities is provided as a function of a number of possible context values limited to two ("significant or non-significant" context).
  • the probability of 0 and 1 in each plane can take a value which can, in practice, be very different from 1/2 and, more generally, be very different from one signal frame to another, for example according to the degree of voicing of the signal as will be seen later.
  • the flow diagram of FIG. 8 presents the principle of bitmap coding with, according to the first embodiment, an initialization of the probability tables, for each plan Pk, which is based on a model.
  • the model parameters which are the form factor ⁇ and the standard deviation ⁇ are first estimated (step 801 after the start step 800).
  • the value of the scalar quantization step q (step 802) is then determined, for example from that of the factor ⁇ as represented in FIG. 5. From the parameters ⁇ , ⁇ and q, the probabilities of the components a are estimated. , (step 803) as previously described. According to a principle similar to that described above with reference to FIG.
  • step 808 it is checked whether there remain bit planes to code using the test 805 on the current value of a decremented loop index k (step 808) from KI to 0. It is then estimated the probabilities of having a bit at 0 or 1 in each plane (step 806) and then the coding of this plane (step 807) is performed using this information on the probabilities. This loop is carried out as long as the index k is positive or zero (as long as there are plans to be coded). Otherwise, the processing terminates (end step 809) or can be implemented again for a next block of signal (or frame) to be encoded.
  • step 901 the parameters ⁇ , ⁇ and q (step 901) characterizing the distribution model are decoded which was used in coding.
  • the probabilities associated with the components a, (step 902) are then estimated with this model.
  • a loop is then applied with a decrement (step 907) of the loop current index k initially set to KI (step 903).
  • the probabilities of 0 and 1 in each plane Pk (step 906) are estimated in order to also decode each plane P.sub.k (step 907) more efficiently. If ⁇ k less than or equal to 0 corresponding to the output N of the test 904), no more plan is to be coded and the processing can be terminated (end step 908) or implemented again for a next block ( or frame) to be decoded.
  • the probability of obtaining the value 0 in a plane Pk can be calculated from the probability model still corresponding to a generalized Gaussian model in the example described.
  • b k and M are respectively: a random variable representing any bit in the plane P k .
  • bitmap coding technique itself, remains substantially unchanged from the prior art.
  • the amplitude of the signal MDCT is strong (in absolute value) on only a few frequencies which follow each other (the significant bits having a value of 1 for these frequencies), while the amplitude associated with the other frequencies is relatively low (the significant bits keeping a value at 0).
  • the MSB plane and the immediately following plane (s) have few bits to 1.
  • the LSB plane of the least significant bits and the planes which immediately precede it can comprise, according to a very schematic explanation, as many 0s as of 1, according to the fluctuations of the noise, and the probability of finding there values of bits at 0 is then average (close to 0.5).
  • the calculations of the probabilities are carried out directly on the signal, in real time, preferably by an a priori estimation of the signal distribution model (module 507 of FIG. 5 and 603 of FIG. 6) as described above.
  • FIG. 13 presents the principle of bitmap coding with context determination for each bit of a Pk plane, in a second embodiment of the invention. Elements similar to those in the flowchart of Figure 8 have the same references and are not described again here.
  • the probabilities associated with the different possible values of context for each plane are estimated (step 1306).
  • the term "context” means, for the ith bit of the k th plane, the set of bits of rank i in the planes preceding the plane Pk.
  • the context is "1" (value of the bit of rank 7 in the plane P 2 (MSB))
  • the context is "11” (where 1 is the value of the rank 7 bit in the P 2 plane (MSB) and 1 is the value of the rank 7 bit in the Pi plane).
  • the probabilities are then estimated as a function of the context found (step 1307) for the rank of this bit.
  • This treatment is reiterated for a next plane, taking into account the context for each bit.
  • This loop is carried out as long as there are plans to be coded (arrow O at the output of test 805). Otherwise (arrow N at the output of test 805), the coding is completed or can be implemented for a next signal block (or frame).
  • the number of possible contexts is 2 ⁇ "k .
  • the different possible values Ck.n of the contexts on the plane Pk are defined as follows:
  • this maximum number is two and is thus interpreted: a context at 0 indicates that the bits coded in the higher planes and at the same rank are all equal to 0 and therefore the quantified MDCT coefficient, for this reason. rank, is for the moment insignificant, and a context at 1 indicates that at least one of the bits already coded in the higher planes and at the same rank was equal to 1, which implies that the current coefficient, for this rank, is significant.
  • the flowchart of FIG. 14 presents the principle of bitmap coding with a context determination for each bit of a Pk plane, limiting the number of possible contexts to two ("0" or "1" to step 1406). The elements similar to those of the flowcharts of FIGS. 8 and 13 bear the same references and are not described again here. Only steps 1406, 1407 and 1408 are modified in the sense that the only possible values of the context are now 0 or 1, which also influences the coding performed (step 1408).
  • conditional probability of having the value zero, for k ⁇ K1 is conducted by exploiting the knowledge of the context (presence of an equal bit to 1 in the planes of rank k + 1 to KI) during the coding of the plane of rank Pk.
  • conditional probability for k ⁇ K-1 is defined as follows:
  • Ck is a random variable representing the context associated with any bit bk in the plane Pk.
  • the invention leads to an efficient bitmap coding technique and makes this type of coding more flexible than in the state of the art sense. . Indeed, it becomes possible to no longer store pre-calculated probability tables (contexts). A dynamic calculation, based simply on the signal to be coded / decoded, then suffices.
  • the present invention also aims at an encoder for implementing the method of the invention, such as that represented by way of example in FIG. 5 described above, and then comprising a module 505 for estimating a distribution of the signal. to code, feeding a module 507 for calculating the probabilities of symbol values. It also relates to a decoder for implementing the method of the invention, such as that represented by way of example in FIG. 6 described above, and then comprising a module 603 for calculating the probabilities of symbol values, starting from an estimate of a signal distribution. In particular, this module 603 is powered by at least one parameter (for example the form factor ⁇ ) characterizing the probability density model of the signal before coding, this parameter ⁇ being received by the decoder in coded form and then being decoded ( reference of Figure 6).
  • a parameter for example the form factor ⁇
  • the present invention also relates to a computer program intended to be stored in a memory of such an encoder or such a decoder. It includes instructions for implementing the method of the invention, when it is executed by a processor of the encoder or the decoder.
  • a computer program intended to be stored in a memory of such an encoder or such a decoder. It includes instructions for implementing the method of the invention, when it is executed by a processor of the encoder or the decoder.
  • the flow charts of FIGS. 8, 9, 13 or 14 can schematize respective algorithms of different versions of such a computer program.
  • the principle of the invention could also be applied to the case of a stack-run coding where the probabilities of four symbols (0,1, +, -) for "stacks" and "runs "are calculated from a distribution model of the signal to be coded (according to the reference Oger et al previously given), for example from a generalized Gaussian model.
  • a distribution model of the signal to be coded for example from a generalized Gaussian model.
  • the invention makes it possible to optimize the contexts of the contextual arithmetic coding.
  • the coding in the sense of the invention may be contextual arithmetic
  • the coding may also be adaptive (for example as a function of the bit rate, the source, or the values taken by the bits of the same plane) as described for example in the reference Langdon et al cited above.
  • the invention applies to any type of coding (Huffman, or others) based on the probabilities of symbols in symbol plane coding.
  • the invention can be applied more generally to other types of entropy coding than arithmetic coding.
  • models other than the generalized Gaussian model are possible.
  • models of fixed probabilities a Laplacian model in particular
  • parametric models alpha-stable models, Gaussian mixing models, or others

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The invention relates to an arithmetic encoding by bit planes (MSB,..., LSB), that comprises using tables of probability to have a 0 or 1 bit for encoding each bit plane. According to the invention, the probability tables are calculated dynamically for each signal frame based on a probability density model (Mod) corresponding to the distribution (H) of the signal (X) on each frame.

Description

Codage/décodage par plans de symboles, avec calcul dynamique de tables de probabilités Encoding / decoding by symbol planes, with dynamic calculation of probability tables
Domaine de l'invention La présente invention concerne un traitement de codage/décodage de signaux numériques tels que les signaux de parole, les signaux d'images, ou plus généralement les signaux audio et/ou vidéo, ou plus généralement encore les signaux multimédia, pour leur stockage et/ou leur transmission.Field of the Invention The present invention relates to coding / decoding processing of digital signals such as speech signals, image signals, or more generally audio and / or video signals, or more generally multimedia signals, for storage and / or transmission.
Art antérieurPrior art
Parmi les méthodes fondamentales de compression des signaux numériques, on distingue les méthodes de compression sans perte (codage de Huffman, codage de Golomb-Rice, codage arithmétique), qualifiées également de "codage entropique", des méthodes de compression, avec perte, reposant sur une quantification scalaire ou vectorielle.Among the basic methods of compressing digital signals are lossless compression methods (Huffman coding, Golomb-Rice coding, arithmetic coding), also referred to as "entropy coding", compression methods, lossy, resting on a scalar or vector quantization.
En référence à la figure 1 , un codeur en compression, général, comporte typiquement : - un module d'analyse 100 de la source à coder S, un module de quantification 101 (de type scalaire ou vectoriel), suivi d'un module 102 de codage, tandis qu'un décodeur homologue comporte : un module de décodage 103, un module de quantification inverse 104, et un module de synthèse 105.With reference to FIG. 1, a compression encoder, general, typically comprises: an analysis module 100 of the source to be coded S, a quantization module 101 (of scalar or vector type), followed by a module 102 encoding, while a peer decoder comprises: a decoding module 103, an inverse quantization module 104, and a synthesis module 105.
Dans la suite, l'analyse et la synthèse ne sont pas discutées. On ne considère que la quantification, suivie du codage et/ou du décodage associé. On s'intéresse plus particulièrement ici à la quantification scalaire d'un bloc de données suivie par un codage, par plans de symboles, des indices de quantification. Cette technique de codage, utilisée dans plusieurs normes de compression des signaux (en codage audio MPEG-4 dans le codeur "Bit Sliced Arithmetic Coding" (ou BSAC), en codage d'images JBIG sur les plans de bits d'une image, en codage notamment selon la norme JPEG2000, en codage vidéo MPEG-4), est schématisée sur la figure 2.In the following, the analysis and the synthesis are not discussed. Only quantization is considered, followed by the associated coding and / or decoding. We are particularly interested here in the scalar quantization of a data block followed by coding, by symbol planes, quantization indices. This coding technique, used in several signal compression standards (in audio coding MPEG-4 in the coder "Bit Sliced Arithmetic Coding" (or BSAC), in encoding JBIG images on the bit planes of an image, encoded in particular according to the JPEG2000 standard, in MPEG-4 video coding), is schematically in Figure 2.
En référence à la figure 2, la quantification scalaire suivie par codage par plans de symboles implique typiquement, au codage : un module d'adaptation 200 du signal source S pour délivrer un vecteur noté X = [X1 • • • xN ] de dimension N ≥ \ , un module de quantification scalaire 201 délivrant un vecteur quantifié définissant une séquence de valeurs entières Y = Iy1 • • • yN ] ,With reference to FIG. 2, the scalar quantization followed by coding by symbol planes typically involves, at coding: an adaptation module 200 of the source signal S for delivering a vector denoted by X = [X 1 • • • x N ] of dimension N ≥ \, a scalar quantization module 201 delivering a quantized vector defining a sequence of integer values Y = Iy 1 • • • y N ],
- un module 202 de décomposition en plans de symboles qui peuvent être des bits à 0 ou 1, ce module 202 délivrant alors un vecteur de valeurs Pk = [al k - - - U7V 4 ] avec k = 0,- - -,K - l , et un vecteur de signes S = [sι • • • % ] ,a symbol plane decomposition module 202 which may be bits at 0 or 1, this module 202 then delivering a vector of values P k = [a lk - - - U 7V 4 ] with k = 0, - - - , K - l, and a sign vector S = [s ι • • • %],
- un module 203 pour réaliser le codage par plans de bits et un multiplexage des valeurs codées, et un module de régulation de débit 204, selon le nombre de bits Nb à utiliser pour la transmission ; et, au décodage :a module 203 for performing the coding by bit planes and a multiplexing of the coded values, and a rate regulation module 204, according to the number of bits Nb to be used for the transmission; and, at decoding:
- un module de démultiplexage et de décodage 206, - et un module 207 de conversion en nombres entiers pour délivrer un vecteur Y tel que Y = Y , en l'absence d'erreurs binaires et sans troncature de train binaire.a demultiplexing and decoding module 206, and an integer conversion module 207 for delivering a vector Y such that Y = Y, in the absence of bit errors and without truncation of the bitstream.
La référence 205 illustre le canal de transmission du codeur au décodeur, qui peut éventuellement appliquer une troncature du train binaire.Reference 205 illustrates the transmission channel from the encoder to the decoder, which may optionally apply truncation of the bit stream.
Ainsi, en partant du signal adapté, à coder, X = [X1 • • • xN ] , la quantification scalaireThus, starting from the adapted signal, to be coded, X = [X 1 • • • x N ], the scalar quantization
(menée par le module 201) produit une séquence de valeurs entières Y = Iy1 • • • yN ] . La décomposition en plans de bits (menée par le module 202) revient d'abord à séparer signes et valeurs absolues, comme suit : puis à décomposer les valeurs absolues sous forme binaire, avec : α! = Bκ.1! ) 2κ-1 + - Bk! )2k + ... + B1! ) 21 + B0! ) 2° , où :(conducted by the module 201) produces a sequence of integer values Y = Iy 1 • • • y N ]. The decomposition in bit planes (carried out by the module 202) first returns to separate signs and absolute values, as follows: then to decompose the absolute values in binary form, with: α ! = B κ.1! ) 2 κ - 1 + - B k! ) 2k + ... + B 1! ) 2 1 + B 0! ) 2 °, where:
Bk ((Z1 ) est le keme bit de la décomposition binaire de la valeur absolue a, de la composante quantifiée Y1, etB k ((Z 1 ) is the k th bit of the binary decomposition of the absolute value a, the quantized component Y 1 , and
K est le nombre total de plans de bits pour la décomposition de l'ensemble des valeurs at , ce nombre K étant défini par : où [.] désigne l'arrondi à l'entier supérieur et avec Iog2(θ) = -∞ . On notera que le signe de la valeur zéro étant indéfini, la convention ci-dessus (S1 = O pour yt = 0) peut être changée (en ^ = I pour yt = 0).K is the total number of bit planes for the decomposition of the set of values at t , this number K being defined by: where [.] is the rounding to the upper integer and with Iog 2 (θ) = -∞. Note that the sign of the zero value being undefined, the above convention (S 1 = O for y t = 0) can be changed (in ^ = I for y t = 0).
Le codage entropique des plans (module 203) peut avantageusement être réalisé par un codeur dit "arithmétique contextuel" . Le principe d'un codeur arithmétique est expliqué dans le document Witten et al :The entropic coding of the planes (module 203) can advantageously be achieved by a so-called "contextual arithmetic" coder. The principle of an arithmetic coder is explained in Witten et al:
"Arithmetic Coding for Data Compression" , LH. Witten, R.M. Neal, J.G. Cleary,"Arithmetic Coding for Data Compression", LH. Witten, R.M. Neal, J.G. Cleary,
Communications of the ACM - Computing Practices, Vol.30, N°6 (juin 1987), p.520-540.Communications of the ACM - Computing Practices, Vol. 30, No. 6 (June 1987), p.520-540.
On relèvera, par exemple en référence à la table I (page 521) de ce document Witten et al, que des tables de probabilités doivent être fixées initialement pour mener le codage. Dans un codeur arithmétique dit "contextuel", les données qui sont tirées des tables de probabilités pour les symboles 0 et 1 ne sont pas toujours les mêmes et peuvent évoluer en fonction d'un contexte qui dépend par exemple des valeurs des bits déjà décodés aux alentours (par exemple dans les plans de bits supérieurs et dans les éléments adjacents). Le principe d'un codeur arithmétique contextuel est décrit notamment dans le document Howard et al : "Arithmetic Coding for Data Compression" , P. G. Howard et J. S. Vitter, Proc. IEEE, vol. 82, no. 6 (Juin 1994).It will be noted, for example with reference to Table I (page 521) of this Witten et al. Document, that probability tables must be set initially to carry out the coding. In a so-called "contextual" arithmetic coder, the data that are drawn from the probability tables for the symbols 0 and 1 are not always the same and can evolve according to a context that depends, for example, on the values of the bits already decoded at the time. around (for example, in higher bit planes and in adjacent elements). The principle of a contextual arithmetic coder is described in particular in the document Howard et al: "Arithmetic Coding for Data Compression", PG Howard and JS Vitter, Proc. IEEE, vol. 82, no. 6 (June 1994).
En général, le module 203 code les plans de bits, un par un, en commençant par les plans de bits les plus significatifs jusqu'aux plans de bits les moins significatifs. Cette notion de plans de bits plus ou moins significatifs sera décrite plus loin en référence à la figure 3. Les bits de signe S1 , pour i = \,- - -,n , ne sont transmis que si la valeur absolue correspondante α; est non nulle. Pour permettre un décodage partiel des plans de bits, le bit de signe S1 est transmis dès que l'un des bits décodés {αα}i=0 κ_γ est égal à 1.In general, the module 203 encodes the bit planes, one by one, starting with the most significant bit planes to the least significant bit planes. This notion of more or less significant bit planes will be described later with reference to FIG. 3. The bits of sign S 1 , for i = \, - - -, n, are transmitted only if the corresponding absolute value α ; is non-zero. To allow partial decoding of the bit planes, the sign bit S 1 is transmitted as soon as one of the decoded bits {α α } i = 0 κ _ γ equals 1.
Le débit qui est produit à la sortie du codeur est, en général, variable. On ne décrit pas, dans ce qui suit, la façon de gérer ce débit variable (modules 200 et 204 de la figure 2). Le train binaire généré par le module 203 est enfin transmis sur un canal 205, lequel peut tronquer le train binaire (en exploitant la nature hiérarchique du train binaire) ou encore introduire des erreurs binaires.The flow rate that is produced at the output of the encoder is, in general, variable. In what follows, the manner of managing this variable bit rate (modules 200 and 204 of FIG. 2) is not described. The bit stream generated by the module 203 is finally transmitted on a channel 205, which can truncate the bit stream (by exploiting the hierarchical nature of the bit stream) or introduce binary errors.
Au décodage, le démultiplexeur-décodeur (module 206) reconstruit les plans de bits Pk , un par un, et décode les bits de signes S qui ont été transmis. Ces informations décodées permettent de reconstruire (module 207) le signal Y . En l'absence d'erreurs binaires et sans troncature de train binaire, on a bien entendu :At decoding, the demultiplexer-decoder (module 206) reconstructs the bit planes P k , one by one, and decodes the sign bits S that have been transmitted. This decoded information makes it possible to reconstruct (module 207) the signal Y. In the absence of binary errors and without truncation of bitstream, we have of course:
Pk = Pk , S = S et donc Y = YP k = P k , S = S and thus Y = Y
Dans la suite du document, pour la clarté de l'exposé, on suppose qu'il n'y a pas d'erreurs binaires.In the rest of the document, for the sake of clarity, it is assumed that there are no binary errors.
L'intérêt principal du codage par plans de bits est qu'il conduit naturellement à un codage hiérarchique (ou progressif) du signal. Des approximations successives du signal de plus en plus précises peuvent être reconstruites à mesure que l'on reçoit l'ensemble du train binaire transmis par le codeur. Un exemple de décomposition en plan de bits est donné à la figure 3 pour N = S . Dans l'exemple représenté, le vecteur Y est tel que Y = [-2, +7, +3,0, +1,-3, -6, +5] . Les valeurs {yt }ι=ι N non nulles sont dites "significatives" (référence VS de la figure 3). Les bits de signe sont représentés par le vecteur portant la référence sgn sur la figure 3. Dans ce cas, on a K =3, P0 = [0,1,1,0,1,1,0,1] , P1 = [1,1,1,0,0,1,1,0] , P2 = [0,1,0,0,0,0,1,1] et S = [1,0,0,0,0,1,1,0] .The main interest of bitmap coding is that it leads naturally to a hierarchical (or progressive) coding of the signal. Successive approximations of the signal becoming more precise can be reconstructed as we receive the entire bit stream transmitted by the encoder. An example of bit plane decomposition is given in Figure 3 for N = S. In the example shown, the vector Y is such that Y = [-2, +7, +3.0, + 1, -3, -6, +5]. The non-zero values {y t } ι = ι N are said to be "significant" (reference VS in FIG. 3). The sign bits are represented by the vector bearing the reference sgn in FIG. 3. In this case, we have K = 3, P 0 = [0,1,1,0,1,1,0,1], P 1 = [1,1,1,0,0,1,1,0], P 2 = [0,1,0,0,0,0,1,1] and S = [1,0,0, 0,0,1,1,0].
Le vecteur Pk représente alors un plan de bits de poids k . Le plan de bits supérieurThe vector P k then represents a plane of bits of weight k. The upper bit plane
P^-1 représente le plan des bits le plus significatif (référence MSB pour "Most Significant Bits" en anglais), tandis que le plan de bits inférieur P0 représente le plan des bits les moins significatifs (référence LSB pour "Least Significant Bits" en anglais).P ^ -1 represents the most significant bit plane (MSB reference for "Most Significant Bits" in English), while the lower bit plane P 0 represents the plane of the least significant bits (LSB reference for "Least Significant Bits"). " in English).
On décrit maintenant, de façon plus détaillée, le fonctionnement du module 203 de la figure 2, en référence à la figure 4 correspondant à un organigramme du codage arithmétique par plans de bits (suivant une quantification scalaire). Il s'agit d'un codage avec multiplexage de dimension N au sens de l'état de l'art. Après une étape de début 400, on obtient le nombre total K de plans de bits (étape 401). On décrémente un indice courant de boucle k et on fixe alors initialement la valeur de cet indice courant à k=K-l (étape 402) pour terminer le traitement à k=0. Le test 403 vérifie que la valeur de k=0 n'est pas encore atteinte. Tant que cette valeur k=0 n'est pas atteinte (flèche O), on code le plan Pk d'indice courant k (étape 404). La première boucle pour laquelle k=K-l traite donc le plan Pκ-i correspondant au plan MSB et la dernière boucle pour laquelle k=0 traite le plan Po correspondant au plan LSB. A l'étape 405, on transmet les signes des nouveaux coefficients significatifs associés au plan Pk. L'étape suivante 406 vise à décrémenter la valeur de l'indice courant k. Si le plan Po pour la valeur de k=0 a été traité (flèche N en sortie du test 403), le traitement est terminé (étape de fin 407) ou recommence pour un nouveau bloc de données du signal (ou trame). Le codage s'effectue donc sur des plans de bits Pk successifs, du plan MSB au plan LSB. On indique qu'il est possible en outre de fractionner les plans Pk en sous-vecteurs pour permettre un décodage encore plus progressif, ce fractionnement pouvant éventuellement aller jusqu'à obtenir des sous-vecteurs de taille unitaire (égale à 1).We will now describe, in more detail, the operation of the module 203 of FIG. 2, with reference to FIG. 4 corresponding to a flowchart of the arithmetic coding by bit planes (following a scalar quantization). This is a coding with multiplexing of dimension N in the sense of the state of the art. After a start step 400, the total number K of bit planes (step 401) is obtained. A current loop index k is decremented and the value of this current index is initially set at k = K1 (step 402) to end the treatment at k = 0. The test 403 verifies that the value of k = 0 has not yet been reached. As long as this value k = 0 is not reached (arrow O), the plane Pk of current index k (step 404) is coded. The first loop for which k = Kl thus deals with the plane Pκ-i corresponding to the plane MSB and the last loop for which k = 0 treats the plane Po corresponding to the plane LSB. At step 405, the signs of the new significant coefficients associated with the plane Pk are transmitted. The next step 406 aims to decrement the value of the current index k. If the plane Po for the value of k = 0 has been processed (arrow N at the output of the test 403), the processing is finished (end step 407) or starts again for a new block of data of the signal (or frame). The coding is therefore performed on successive bit planes Pk, from the MSB plane to the LSB plane. It is indicated that it is also possible to split the planes Pk into sub-vectors to allow an even more progressive decoding, this fractionation possibly being able to go as far as obtaining sub-vectors of unit size (equal to 1).
On peut alors coder des plans de bits de valeurs absolues par un codage arithmétique adaptatif. En effet, les plans Pk peuvent être codés un par un (indépendamment les uns des autres, de façon séquentielle en allant du plan MSB au plan LSB), par codage arithmétique adaptatif. L'adaptation des probabilités des symboles (0 et 1) dans le codage d'un plan Pk n'utilise que les bits qui ont déjà été codés dans le même plan Pk. Le codeur arithmétique adaptatif est donc réinitialisé dès que l'on commence à coder un nouveau plan Pk, en particulier en initialisant les probabilités de 0 et de 1 à une valeur de 1/2 (= 0,5) et, au fur et à mesure du codage du même plan, ces probabilités évoluent et sont adaptées en mettant à jour la fréquence de 0 et de 1. Une description détaillée de ce type d'encodage est donnée notamment dans le document :Bit planes of absolute values can then be encoded by adaptive arithmetic coding. Indeed, the planes P k can be coded one by one (independently of each other, sequentially going from the MSB plane to the LSB plane) by adaptive arithmetic coding. The adaptation of the probabilities of the symbols (0 and 1) in the coding of a plane Pk uses only the bits that have already been coded in the same plane Pk. The adaptive arithmetic coder is thus reinitialized as soon as we begin to code a new plane P k , in particular by initializing the probabilities of 0 and of 1 to a value of 1/2 (= 0.5) and, as and when as the same plan is coded, these probabilities evolve and are adapted by updating the frequency of 0 and 1. A detailed description of this type of encoding is given in particular in the document:
"An introduction to arithmetic coding", G. C. Langdon, IBM J. Res. Dev. 28, 2, p.135-149 (Mars 1984)."An introduction to arithmetic coding", G.C. Langdon, IBM J. Res. Dev. 28, 2, p.135-149 (March 1984).
Des codeurs plus sophistiqués ne fixent pas la fréquence initiale de 0 et de 1 à 1/2, mais stockent des valeurs de probabilités dans des tables préenregistrées qui donnent une fréquence initiale de 0 et de 1 adaptée à un certain contexte de fonctionnement (par exemple adaptée au débit, ou encore au type de source à coder). Au mieux, les codeurs de l'état de l'art requièrent donc un stockage de tables de probabilités des symbolesMore sophisticated coders do not set the initial frequency of 0 and 1 to 1/2, but store probabilities values in pre-recorded tables that give an initial frequency of 0 and 1 adapted to a certain operating context (eg adapted to the flow, or to the type of source to be coded). At best, the coders of the state of the art therefore require a storage of tables of probabilities of the symbols
(comportant alors des valeurs de fréquences prédéfinies). De manière plus générale, des tables préenregistrées sont habituellement nécessaires pour pouvoir appliquer un codage entropique de type Huffman ou un codage arithmétique. Les techniques de l'état de l'art sont alors peu flexibles car elles demandent de pré-calculer et stocker des informations qui doivent être adaptées à des conditions particulières d'opération (de débit, de type de source). Par conséquent, il convient d'anticiper, à la conception des codeurs/décodeurs, toutes les situations possibles, afin de générer de telles tables. La présente invention vient améliorer la situation.(then having predefined frequency values). More generally, prerecorded tables are usually required to apply Huffman type entropy coding or arithmetic coding. State-of-the-art techniques are therefore not very flexible because they require pre-computation and storage of information that must be adapted to particular operating conditions (flow rate, source type). Therefore, it is necessary to anticipate, in the design of coders / decoders, all possible situations, in order to generate such tables. The present invention improves the situation.
Présentation de l'inventionPresentation of the invention
Elle propose à cet effet un procédé de traitement d'un signal pour un codage/décodage en compression du signal par plans de symboles, dans lequel des probabilités de valeurs de symboles sont déterminées pour au moins un plan.It proposes for this purpose a method of processing a signal for coding / decoding in compression of the signal by symbol planes, in which probabilities of symbol values are determined for at least one plane.
Au sens de l'invention, ces probabilités sont calculées dynamiquement, à partir d'une estimation d'une distribution du signal.For the purposes of the invention, these probabilities are calculated dynamically from an estimate of a distribution of the signal.
Préférentiellement, le signal étant quantifié avant le codage, l'estimation de la distribution du signal est menée sur le signal à coder, avant quantification, pour avoir une estimation la plus fine possible de la distribution du signal (et non pas une estimation de la distribution du signal appauvri après quantification).Preferably, the signal being quantized before the coding, the estimation of the signal distribution is conducted on the signal to be coded, before quantization, in order to have the finest possible estimation of the signal distribution (and not an estimate of the signal distribution). distribution of the depleted signal after quantification).
Dans un premier mode de réalisation, le signal comportant une succession de valeurs, chaque valeur est décomposée en une pluralité de valeurs de symboles dans une pluralité respective de plans de symboles. Les probabilités sont calculées pour au moins un plan et visent chacune la probabilité d'avoir, dans ce plan, une valeur de symbole égale à un symbole donné. Préférentiellement, les probabilités sont calculées au moins pour le plan représentant les valeurs de symboles les plus significatives.In a first embodiment, the signal having a succession of values, each value is decomposed into a plurality of symbol values in a respective plurality of symbol planes. The probabilities are calculated for at least one plane and are each aimed at the probability of having, in this plane, a symbol value equal to a given symbol. Preferentially, the probabilities are calculated at least for the plane representing the most significant symbol values.
Dans un deuxième mode de réalisation, les probabilités sont calculées en outre pour d'autres plans, en tenant compte d'un contexte défini par des valeurs de symboles prises dans des plans représentant des valeurs de symboles plus significatives.In a second embodiment, the probabilities are further calculated for other planes, taking into account a context defined by symbol values taken in planes representing more significant symbol values.
Plus particulièrement, pour une même position de valeur de signal dans ladite succession de valeurs, chaque valeur de symbole prise dans un plan représentant une valeur de symbole plus significative qu'une valeur de symbole dans un plan courant, définit une valeur de contexte pour ce plan courant et pour cette position. Les probabilités précitées sont alors calculées pour ce plan courant en tenant compte d'une pluralité de valeurs possibles du contexte pour ce plan courant. Dans un troisième mode de réalisation, on choisit un nombre limité de valeurs possibles du contexte, préférentiellement un nombre de deux, avec :More particularly, for the same signal value position in said succession of values, each symbol value taken in a plane representing a symbol value more significant than a symbol value in a current plane, defines a context value for that value. current plan and for this position. The aforementioned probabilities are then calculated for this current plane taking into account a plurality of possible values of the context for this current plane. In a third embodiment, a limited number of possible values of the context is chosen, preferably a number of two, with:
- une première valeur de contexte désignant l'occurrence d'au moins une valeur de symbole significative dans les plans représentant des valeurs de symboles plus significatives,a first context value designating the occurrence of at least one significant symbol value in the planes representing more significant symbol values,
- une seconde valeur de contexte signifiant qu'aucune occurrence de valeur de symbole significative n'a été relevée dans les plans représentant des valeurs de symboles plus significatives.a second context value signifying that no significant symbol value occurrence has been found in the planes representing more significant symbol values.
Ainsi, l'invention propose, au contraire de l'art antérieur, de se passer de tout stockage de tables de probabilités, lesquelles sont plutôt calculées "en ligne" (en fonction du signal), et d'utiliser une estimation de la densité de probabilités de la source à coder/décoder (par exemple représentée par un modèle gaussien généralisé) pour calculer dynamiquement les probabilités des symboles par plans (par exemple les probabilités de 0 et de 1 pour un plan de bits). L'invention peut donc utiliser la connaissance d'un modèle de probabilité de la source à coder (ou à décoder), et ce pour estimer a priori les probabilités de symboles dans chaque plan Pk.Thus, the invention proposes, unlike the prior art, to dispense with any storage of probability tables, which are instead calculated "in line" (as a function of the signal), and to use an estimate of the density of probabilities of the source to be encoded / decoded (for example represented by a generalized Gaussian model) to dynamically calculate the probabilities of the symbols by planes (for example the probabilities of 0 and 1 for a bit plane). The invention can therefore use knowledge of a probability model of the source to be encoded (or decoded), and this to estimate a priori the probabilities of symbols in each plane Pk.
On peut, en effet, "utiliser" un modèle de la source à coder car certains codeurs/décodeurs mettent déjà en œuvre une telle modélisation, notamment pour calculer le facteur de forme (noté habituellement α) du signal à coder. On peut alors s'appuyer sur un modèle de distribution du signal préexistant, par exemple utilisé pour le calcul du facteur de forme α dans l'encodeur par transformée avec codage stack-run et présenté dans le document Oger et al :One can, indeed, "use" a model of the source to be coded because some coders / decoders already implement such a modeling, in particular to calculate the form factor (usually noted α) of the signal to be encoded. We can then rely on a pre-existing signal distribution model, for example used for calculating the form factor α in the transform encoder with stack-run coding and presented in the document Oger et al:
"Transform audio coding with arithmetic-coded scalar quantization and model-based bit allocation ", M. Oger, S. Ragot et M. Antonini, ICASSP, avril 2007. On précise néanmoins ici que ce document ne divulgue en rien un quelconque codage par plans de symboles. Liste des figures"Transform audio coding with arithmetic-coded scale quantization and model-based bit allocation", M. Oger, S. Ragot and M. Antonini, ICASSP, April 2007. However, it is stated here that this document does not disclose any coding by symbol plans. List of Figures
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, outre les figures 1 à 4 décrites ci-avant : - la figure 5 présente un exemple d'encodeur utilisant, au sens de l'invention, un modèle de distribution du signal à coder, pour un codage par plans de bits, - la figure 6 présente un décodeur homologue de l'encodeur de la figure 5, la figure 7 illustre la densité de probabilités d'une gaussienne généralisée et montre différents intervalles de calcul de probabilité p(α,), - la figure 8 présente l'organigramme du codage par plan de bits avec une initialisation des tables de probabilités pour chaque plan Pk, selon le premier mode de réalisation précité, la figure 9 présente l'organigramme d'un décodage homologue du codage de la figure 8, - la figure 10 présente un exemple de décomposition binaire sur trois plans et de codage contextuel pour le plan LSB, la figure 11 illustre les plans de bits associés à un signal fortement harmonique, ainsi qu'un histogramme H de ce signal à comparer avec un modèle de distribution Mod qui peut lui être affecté (courbe en traits pointillés), la figure 12 illustre le principe d'un codage arithmétique (contextuel pour le codage du plan Pκ-2 dans l'exemple représenté) de plans de bits dont les tables de probabilités ont été calculées dynamiquement par le procédé au sens de l'invention, - la figure 13 présente l'organigramme du codage par plan de bits avec une initialisation contextuelle des tables de probabilités, selon le deuxième mode de réalisation précité, et la figure 14 présente l'organigramme du codage par plan de bits avec une initialisation contextuelle des tables de probabilités dans le cas où l'on n'impose que deux contextes possibles, selon le troisième mode de réalisation précité. Description détailléeOther features and advantages of the invention will emerge on examining the detailed description below, and the appended drawings in which, in addition to FIGS. 1 to 4 described above: FIG. 5 shows an example of encoder using, in the sense of the invention, a distribution model of the signal to be encoded, for a coding by bit planes, - Figure 6 shows a decoder homologous to the encoder of Figure 5, Figure 7 illustrates the density probability of a generalized Gaussian probability p and shows different calculation intervals (α,), - Figure 8 shows the flow diagram of the bitplane coding with an initialization of the probability tables for each plane P k, according to the In the first embodiment, FIG. 9 shows the flowchart of a homologous decoding of the coding of FIG. 8; FIG. 10 shows an example of three-plane binary decomposition and contextual coding for the LSB plane, FIG. FIG. 11 illustrates the bit planes associated with a strongly harmonic signal, as well as a histogram H of this signal to be compared with a Mod distribution model that can be assigned to it (dotted line curve), FIG. an arithmetic coding (contextual for the coding of the plane P κ-2 in the example shown) of bit planes whose probability tables have been calculated dynamically by the method in the sense of the invention, FIG. flowchart of the bitmap coding with a contextual initialization of the probability tables, according to the second embodiment mentioned above, and FIG. 14 presents the flowchart of the bitmap coding with a contextual initialization of the probability tables in the case where only two possible contexts are imposed, according to the third embodiment mentioned above. detailed description
La présente invention propose un traitement de codage/décodage par plans de symboles exploitant une distribution de probabilités de la source à coder pour estimer a priori la probabilité des symboles (par exemple 0 et 1) pour chaque plan. Ce traitement vise une optimisation du codage entropique en apportant une connaissance dynamique des tables de probabilité.The present invention proposes a coding / decoding processing using symbol planes exploiting a probability distribution of the source to be encoded in order to estimate a priori the probability of the symbols (for example 0 and 1) for each plane. This treatment aims at an optimization of the entropy coding by bringing a dynamic knowledge of the tables of probability.
On peut considérer le cas d'un codage arithmétique contextuel comme exemple de codage entropique. On décrit ci-après un exemple où le codage au sens de l'invention s'effectue sans perte des indices issus de la quantification des coefficients de transformée des codeurs fréquentiels, notamment pour des signaux de parole et/ou audio. Néanmoins, l'invention s'applique également au codage avec perte, notamment de signaux tels que les signaux d'images ou vidéo.The case of contextual arithmetic coding can be considered as an example of entropy coding. An example is described below in which the coding in the sense of the invention is carried out without loss of the indices resulting from the quantization of the transform coefficients of the frequency coders, in particular for speech and / or audio signals. Nevertheless, the invention also applies to lossy coding, in particular of signals such as image or video signals.
On a illustré alors sur la figure 5 un exemple d'encodeur utilisant un modèle de distribution du signal à coder pour connaître a priori les probabilités des symboles 0 ou 1 par plans de bits, au sens de l'invention. La structure de l'encodeur, telle que représentée à titre d'exemple sur la figure 5, est très proche d'un encodeur de l'art antérieur décrit dans le document Oger et al : "Transform audio coding with arithmetic-coded scalar quantization and model-based bit allocation ", M. Oger, S. Ragot et M. Antonini, ICASSP, avril 2007. En particulier, l'encodeur décrit dans ce document détermine un modèle de distribution du signal pour estimer un facteur de forme α qui ne sert, dans le document cité, que pour le contrôle de débit. Par ailleurs, ce type d'encodeur mène un codage selon la technique dite "stack-run" et qui n'a aucun rapport avec un codage par plans de bits au sens de l'invention.FIG. 5 illustrates an example of an encoder using a distribution model of the signal to be coded in order to know a priori the probabilities of the symbols 0 or 1 by bit planes, within the meaning of the invention. The structure of the encoder, as represented by way of example in FIG. 5, is very close to an encoder of the prior art described in the document Oger et al: "Transform audio coding with arithmetic-coded scalar quantization and model-based bit allocation ", M. Oger, S. Ragot and M. Antonini, ICASSP, April 2007. In particular, the encoder described in this document determines a signal distribution model for estimating a form factor α which in the cited document only serves for flow control purposes. Moreover, this type of encoder leads a coding according to the so-called "stack-run" technique and which has nothing to do with a coding by bit planes within the meaning of the invention.
Néanmoins, l'invention peut avantageusement tirer profit d'une structure préexistante comportant un module de calcul du facteur de forme 505 (figure 5) et utiliser en outre ce module 505 pour réaliser un codage par plans de bits comme décrit ci-après. En référence à la figure 5, l'encodeur dans l'exemple représenté comporte : un filtre passe-haut 501, un module de filtrage perceptuel 502, - un module 503 d'analyse LPC (pour "Linear Prédiction Coding") et quantification, pour l'obtention des paramètres de prédiction à court terme, un module 504 de conversion MDCT (pour "Modified Discrète CosineNevertheless, the invention can advantageously take advantage of a pre-existing structure comprising a form factor calculating module 505 (FIG. 5) and furthermore use this module 505 to perform bit-plane coding as described below. With reference to FIG. 5, the encoder in the example represented comprises: a high-pass filter 501, a perceptual filtering module 502, a LPC analysis module 501 (for Linear Prediction Coding) and quantization, to obtain the short-term prediction parameters, a 504 conversion module MDCT (for "Modified Discrete Cosine
Transform") et de mise en forme fréquentielle,Transform ") and frequency shaping,
- le module 505 de calcul d'un facteur de forme α, à partir d'un modèle gaussien généralisé dans l'exemple décrit, un module 506 de contrôle de débit, notamment en fonction du nombre de bits utilisés Nb, un module 507 qui exploite par ailleurs le module 505 pour mener les calculs servant au moins à l'initialisation des tables de probabilités du module de codage 509 par plans de bits, dans un premier mode de réalisation, et, dans d'autres modes de réalisation ultérieurs, au calcul de contextes, un module 508 de quantification scalaire uniforme, le module 509 de codage par plans de bits, un module 510 d'estimation du niveau de bruit et quantification, - un multiplexeur 511 des sorties des modules 503, 505, 509 et 510 pour un stockage des données codées ou une transmission pour un décodage ultérieur.the module 505 for calculating a form factor α, from a generalized Gaussian model in the example described, a rate control module 506, in particular as a function of the number of bits used Nb, a module 507 which also uses the module 505 to carry out the calculations serving at least the initialization of the probability tables of the coding module 509 by bit planes, in a first embodiment, and, in other subsequent embodiments, the calculating contexts, a uniform scalar quantization module 508, the bitmap coding module 509, a noise level estimation and quantization module 510, - a multiplexer 511 of the outputs of the modules 503, 505, 509, and 510 for storing encoded data or transmission for subsequent decoding.
Ainsi, le signal d'entrée x(n) est filtré par un filtrage passe-haut (501) afin de retirer les fréquences inférieures à 50 Hz. Puis, un filtrage perceptuel de mise en forme est appliqué au signal (502) et parallèlement une analyse LPC est appliquée en outre au signal (503) filtré par le module 501. Une analyse MDCT (504) est appliquée au signal après filtrage perceptuel. L'analyse utilisée peut par exemple être la même que celle du codeur normalisé 3GPP AMR-WB+. On estime le facteur de forme α sur les coefficients de la transformée MDCT (505). En particulier, une fois l'estimation du facteur de forme effectuée, on calcule le pas de quantification q qui convient pour atteindre le débit voulu (506). Puis, on effectue une quantification scalaire uniforme du signal suivant ce pas de quantification (507), le module 512 de la figure 5 effectuant une division par ce pas. On récupère ainsi une séquence d'entiers Y(k) qui sont ensuite codés par le module 509. On effectue préférentiellement aussi une estimation du niveau de bruit à injecter au décodeur (module 510).Thus, the input signal x (n) is filtered by a high-pass filter (501) in order to remove the frequencies below 50 Hz. Then, a perceptual shaping filtering is applied to the signal (502) and in parallel an LPC analysis is further applied to the signal (503) filtered by the module 501. An MDCT analysis (504) is applied to the signal after perceptual filtering. The analysis used may for example be the same as that of the standard 3GPP AMR-WB + encoder. The form factor α is estimated on the coefficients of the MDCT transform (505). In particular, once the estimate of the form factor has been made, the quantization step q which is suitable to reach the desired rate (506) is calculated. Then, a uniform scalar quantization of the signal following this quantization step (507), the module 512 of Figure 5 making a division by this step. Thus, a sequence of integers Y (k) is recovered which are then coded by the module 509. An estimation of the level of noise to be injected at the decoder (module 510) is also preferentially carried out.
Ainsi, dans l'exemple représenté sur la figure 5, l'encodage est effectué par transformée avec un codage par plan de bits dont les tables de probabilités sont initialisées en temps réel, au sens de l'invention, suivant un modèle de distribution estimé dynamiquement en fonction du signal à coder. La première partie du codage avant transformation MDCT (modules 501 à 504) est équivalente à celle utilisée pour le codage par transformée avec codage stack-run présentée dans le document Oger et al cité précédemment. L'estimation du facteur de forme (module 505) ainsi que le contrôle du débit peuvent être, eux aussi, communs. Par contre, on se sert ici de l'information du modèle déterminé pour estimer aussi les tables de probabilités (module 507) des symboles 0 et 1 qui vont servir à l'initialisation du module de codage 509. On effectue ensuite aussi une quantification scalaire uniforme (module 508), la référence 512 représentant un module de division. La quantification peut être, elle aussi, commune à celle décrite dans le document Oger et al, mais elle est suivie ici par un codage par plan de bits (module 509) dont l'initialisation des tables de probabilités se fait, comme indiqué ci-avant, suivant un modèle (défini par le module 505). On effectue une estimation du niveau de bruit (module 510) qui peut être encore commune à celle de la référence Oger et al. Les paramètres du codeur sont finalement transmis au décodeur en passant par un multiplexeur 511.Thus, in the example shown in FIG. 5, the encoding is performed by transforming with a bitmap coding whose probability tables are initialized in real time, in the sense of the invention, according to an estimated distribution model. dynamically depending on the signal to be coded. The first part of the MDCT before conversion (modules 501 to 504) is equivalent to that used for the transform encoding with stack-run encoding presented in the document Oger et al cited above. The estimation of the form factor (module 505) as well as the flow control can also be common. On the other hand, the information of the determined model is used here to also estimate the probability tables (module 507) of the symbols 0 and 1 which will be used to initialize the coding module 509. Next, scalar quantification is performed. uniform (module 508), the reference 512 representing a division module. The quantization can be, too, common to that described in the document Oger et al, but here it is followed by a bitmap coding (module 509) whose initialization of the probability tables is done, as indicated below. before, following a model (defined by module 505). An estimate of the noise level (module 510) is made which may still be common to that of the reference Oger et al. The parameters of the encoder are finally transmitted to the decoder via a multiplexer 511.
En référence maintenant à la figure 6, un décodeur homologue peut comporter : un module de démultiplexage 601 du flux reçu du codeur de la figure 5, un module 602 de décodage des coefficients LPC, un module 603 d'estimation des probabilités à partir du modèle â défini par le module 505 de la figure 5, - un module 606 de décodage du pas de quantification q , - un module 605 de décodage du niveau de bruit s , utilisant la valeur du pas de quantification décodée, un module 604 de décodage par plans de bits recevant les probabilités estimées (module 603) pour délivrer, en utilisant la valeur du pas de quantification décodée, le vecteur d'entiers décodé Y(k) , un module d'injection de bruit 607,Referring now to FIG. 6, a homologous decoder may comprise: a demultiplexing module 601 of the stream received from the coder of FIG. 5, a module 602 for decoding the LPC coefficients, a module 603 for estimating probabilities based on the model defined by the module 505 of FIG. 5, a module 606 for decoding the quantization step q, a noise level decoding module 605, using the value of the decoded quantization step, a bit plane decoding module 604 receiving the estimated probabilities (module 603) to deliver, by using the value of the decoded quantization step; , the decoded integer vector Y (k), a noise injection module 607,
- un module 608 de désaccentuation des basses fréquences pour retrouver le vecteur décodé X(k) , s 'exprimant dans le domaine transformé, un module 609 de transformée MDCT inverse, et - un module 610 de filtrage perceptuel inverse à partir des coefficients LPC décodés (module 602), pour retrouver un signal x(n) qui, sans perte ou troncature dans la communication, correspond au signal d'origine x(n) de la figure 5.a de-emphasis module 608 for finding the decoded vector X (k), expressed in the transformed domain, a module 609 for the inverse MDCT transform, and a module 610 for inverse perceptual filtering from the decoded LPC coefficients. (module 602), to find a signal x (n) which, without loss or truncation in the communication, corresponds to the original signal x (n) of FIG.
On indique par ailleurs, en référence à nouveau à la figure 5, que le nombre de bits Nb utilisés par le codage est renvoyé au module d'allocation des bits pour modifier (ou adapter) la valeur du pas de quantification, de sorte que ce nombre de bits reste inférieur ou égal au budget de bits disponibles. Le codage du spectre MDCT s'effectue donc dans une boucle de contrôle de débit avec typiquement 10 à 20 itérations, pour arriver à un pas de quantification optimal qopt. Plus particulièrement, le pas de quantification initial, fixé pour la première itération sur la détermination du pas de quantification optimal qopt, est estimé à partir du facteur de forme α que délivre le module 505 de détermination d'un modèle gaussien généralisé.It is also indicated, with reference again to FIG. 5, that the number of bits Nb used by the coding is returned to the bit allocation module in order to modify (or adapt) the value of the quantization step, so that number of bits remains less than or equal to the available bit budget. The MDCT spectrum is therefore coded in a rate control loop with typically 10 to 20 iterations, to arrive at an optimal quantization step q opt . More particularly, the initial quantization step, fixed for the first iteration on the determination of the optimal quantization step q opt , is estimated from the form factor α that delivers the module 505 for determining a generalized Gaussian model.
On détaille ci-après le fonctionnement de ce module 505.The operation of this module 505 is described below.
Contrairement au codage classique, le codage dit "basé modèle" (probabiliste) consiste à quantifier et coder la source non pas directement, mais à partir d'un modèle de probabilité. En référence à la figure 11, on a représenté la variation de l'amplitude (A(MDCT)) d'un signal à quantifier et coder (référencé X et correspondant donc à une suite de composantes X1). Ce signal X peut par exemple être délivré par le module 504 de la figure 5 et correspondre alors à un signal MDCT qui est fonction de la fréquence (freq). On rappelle que le signal X est destiné à être quantifié par un pas de quantification q, pour obtenir (en sortie du module 508 de la figure 5) le signal référencé Y et correspondant à une suite de composantes y,. On détermine les signes et les valeurs absolues a, de ces composantes y, et ces valeurs absolues a, sont décomposées en pans de bits MSB ... LSB représentés sur la figure 11.Unlike conventional coding, the so-called "model-based" (probabilistic) coding consists of quantifying and encoding the source not directly, but from a probability model. Referring to Figure 11, there is shown the variation of the amplitude (A (MDCT)) of a signal to be quantized and coded (referenced X and therefore corresponding to a sequence of components X 1 ). This signal X may for example be delivered by the module 504 of FIG. 5 and then correspond to a signal MDCT which is a function of the frequency (freq). Recall that the signal X is intended to be quantized by a quantization step q, to obtain (at the output of the module 508 of FIG. 5) the signal referenced Y and corresponding to a sequence of components y ,. The signs and absolute values a, of these components y, and these absolute values a, are decomposed into sections of bits MSB ... LSB shown in FIG.
Plus particulièrement, pour obtenir l'histogramme H correspondant à la distribution du signal X (graphe de droite sur la figure 11) : on "compte" toutes les occurrences où les composantes x, du signal X sont égales à 0 et on reporte le nombre obtenu en ordonnée (Hist) du graphe, à l'abscisse 0, puis on compte toutes les occurrences elles sont égales à 1 et on reporte le nombre obtenu en ordonnée, à l'abscisse 1 , et ainsi de suite pour les valeurs suivantes 2, 3, etc., et -1, -2, -3, etc. Par conséquent, la référence Val(x,) sur la figure 11 (abscisse du graphe de droite) désigne toutes les valeurs possibles que peut prendre le signal X.More particularly, to obtain the histogram H corresponding to the distribution of the signal X (right graph in FIG. 11): one "counts" all the occurrences where the components x, of the signal X are equal to 0 and the number is postponed obtained on the ordinate (Hist) of the graph, on the abscissa 0, then we count all the occurrences they are equal to 1 and we report the number obtained on the ordinate, on the abscissa 1, and so on for the following values 2 , 3, etc., and -1, -2, -3, etc. Consequently, the reference Val (x,) in FIG. 11 (abscissa of the graph on the right) indicates all the possible values that the signal X can take.
On modélise ensuite cet histogramme H par le modèle Mod (en traits pointillés) qui peut être par exemple d'allure gaussienne. En référence maintenant à figure 7, la distribution H du signal X peut finalement être représentée par un modèle de densité de probabilités (référence pdf pour "probability density function"), suite à un simple changement d'échelle d'abscisses (de VaI(X,) à Val(α,), la référence Val(α,) désignant les différentes valeurs possibles que peut prendre chaque valeur absolue de composante a,). La figure 7 illustre à titre d'exemple la densité de probabilités d'une gaussienne généralisée, qui est un modèle particulier pouvant avantageusement être choisi. On en donne une expression mathématique (notée fα ) ci-après.This histogram H is then modeled by the model Mod (in dashed lines) which may for example be Gaussian. Referring now to FIG. 7, the distribution H of the signal X can finally be represented by a probability density model (reference pdf for "probability density function"), following a simple scale change of abscissa (of VaI ( X,) to Val (α,), the reference Val (α,) denoting the different possible values that can take each absolute value of component a,). FIG. 7 illustrates, by way of example, the density of probabilities of a generalized Gaussian, which is a particular model that can advantageously be chosen. We give a mathematical expression (noted f α ) below.
La densité de probabilités d'une source z gaussienne généralisée, de moyenne nulle et d'écart-type σ, est définie par : où α est le facteur de forme décrivant la forme de la fonction exponentielle (figure 7), les paramètres A(α) et B(α) étant définis par :The probability density of a generalized Gaussian z source, of zero mean and of standard deviation σ, is defined by: where α is the form factor describing the shape of the exponential function (FIG. 7), the parameters A (α) and B (α) being defined by:
. . ccB(α , v r(3/α) A(α) = — Γ-^- et B(α) = , ' y ' 2r(l/α) V ; \ r(l/α) où F est la fonction Gamma définie comme suit : r(α) = {oV t«+1 dt. . ccB (α, vr (3 / α) A (α) = - Γ - ^ - and B (α) =, 'y' 2r (1 / α) V; \ r (l / α) where F is the function Gamma defined as follows: r (α) = { o V t "+1 dt
Ainsi, on modélise la source (le signal à coder) comme le résultat d'un tirage aléatoire d'une variable gaussienne généralisée. Ce modèle gaussien généralisé peut alors être utilisé avantageusement pour modéliser le spectre à coder dans le domaine de la transformée discrète en cosinus modifiée (MDCT). On peut tirer de ce modèle la valeur du facteur de forme α qui caractérise d'ailleurs le modèle. On rappelle qu'avantageusement, le facteur de forme α est déjà estimé pour chaque bloc de signal (ou trame) à partir du spectre à coder, dans certains codeurs existants qui intègrent un module tel que le module 505 de la figure 5, pour calculer le pas de quantification q.Thus, the source (the signal to be coded) is modeled as the result of a random draw of a generalized Gaussian variable. This generalized Gaussian model can then advantageously be used to model the spectrum to be coded in the field of the modified discrete cosine transform (MDCT). From this model, we can derive the value of the form factor α that characterizes the model. It is recalled that advantageously, the form factor α is already estimated for each signal block (or frame) from the spectrum to be coded, in some existing encoders which integrate a module such as the module 505 of FIG. the quantization step q.
Au sens de l'invention, l'estimation du modèle de distribution (pouvant mener notamment au facteur de forme α) permet de calculer aussi les probabilités des valeurs de symboles par plans. Cette technique est décrite ci-après. En référence encore à la figure 7, l'estimation d'une probabilité p(α,) d'avoir une valeur de composante a, parmi N valeurs possibles (référencées VaI(^) sur la figure 7) repose sur le calcul suivant : La figure 7 illustre aussi les différents intervalles de calcul de la probabilité p(α/). On observe déjà que, la distribution gaussienne généralisée étant symétrique, on a p(αJ = p("αJ - On relèvera aussi que les intervalles sont réguliers car on met en œuvre une quantification scalaire uniforme de pas q (pour obtenir les composantes y, (ou a,) à partir des composantes X1). On relèvera aussi que plus la valeur maximale des composantes a, est grande, plus la probabilité associée p(α,) est faible.For the purposes of the invention, the estimation of the distribution model (which can lead in particular to the form factor α) also makes it possible to calculate the probabilities of the symbol values per planes. This technique is described below. With reference again to FIG. 7, the estimation of a probability p (α,) of having a value of component a, among N possible values (referenced VaI (λ) in FIG. 7) is based on the following calculation: Figure 7 also illustrates the different intervals for calculating the probability p (α /). We already observed that the generalized Gaussian distribution is symmetrical, we have p J = p ( J - We will also report that the intervals are regular because it implements a uniform scalar quantization step q (for the components y , (or a,) from the components X 1 ) It will also be noted that the higher the maximum value of the components a, the greater the associated probability p (α,) is low.
Le calcul des probabilités p(αj peut être mené par des méthodes d'intégration classiques. On utilise dans une réalisation préférentielle la méthode dite "des trapèzes", simple de mise en œuvre. Par ailleurs, on normalise préférentiellement la valeur de l'écart-type σ à 1 de sorte que le pas de quantification, pour le calcul de l'intégrale dans l'équation ci-avant, devient q/σ. Cette opération permet un calcul plus efficace des intégrales, car on supprime ainsi le problème de la variation de dynamique sur le signal et on se ramène à une source centrée de variance unitaire quelle que soit la valeur du facteur de forme.The calculation of the probabilities p (αj can be carried out by conventional integration methods.The trapezoidal method, which is simple to implement, is preferably used in a preferred embodiment and the value of the difference is preferably standardized. -type σ to 1 so that the quantization step, for the computation of the integral in the equation above, becomes q / σ This operation allows a more efficient computation of the integrals, because one thus removes the problem of the variation of dynamics on the signal and is reduced to a centered source of unit variance whatever the value of the form factor.
Trois modes de réalisation sont présentés ci-après pour estimer les probabilités des symboles O et 1 par plans de bits à partir de ces calculs de probabilités p(α, ) .Three embodiments are presented below to estimate the probabilities of the symbols O and 1 by bit planes from these probability calculations p (α,).
Dans un premier mode de réalisation, on prévoit une estimation de la probabilité d'avoir des bits à O ou à 1 pour chaque plan de bits Pk, définissant alors ce qui était appelé ci-avant les tables initiales de probabilités. Ces tables seront décrites en référence à la figure 12 commentée plus loin.In a first embodiment, an estimate of the probability of having bits at O or 1 for each bit plane Pk is provided, thereby defining what was referred to above as the initial tables of probabilities. These tables will be described with reference to Figure 12 discussed below.
Dans un deuxième mode de réalisation, on prévoit une estimation de probabilités conditionnelles de O ou de 1 en fonction des bits déjà codés et à la même position dans des plans précédents (ces bits définissant alors un contexte). Dans un troisième mode de réalisation, on prévoit une estimation des probabilités conditionnelles en fonction d'un nombre de valeurs possibles de contexte limité à deux (contexte " significatif ou non").In a second embodiment, provision is made for estimating conditional probabilities of O or 1 as a function of the already coded bits and at the same position in previous planes (these bits then defining a context). In a third embodiment, an estimate of the conditional probabilities is provided as a function of a number of possible context values limited to two ("significant or non-significant" context).
On rappelle que, dans l'état de l'art, les probabilités de 0 et 1 initialement dans un plan Pk étaient fixées à la valeur 1/2 = 0,5, ou, au mieux, étaient préenregistrées dans une table. Or, la probabilité de 0 et 1 dans chaque plan peut prendre une valeur qui peut, en pratique, être très différente de 1/2 et, plus généralement, être très différente d'une trame de signal à l'autre, par exemple selon le degré de voisement du signal comme on le verra plus loin.It is recalled that, in the state of the art, the probabilities of 0 and 1 initially in a plane Pk were set to 1/2 = 0.5, or at best were prerecorded in a table. Now, the probability of 0 and 1 in each plane can take a value which can, in practice, be very different from 1/2 and, more generally, be very different from one signal frame to another, for example according to the degree of voicing of the signal as will be seen later.
L'organigramme de la figure 8 présente le principe du codage par plans de bit avec, selon le premier mode de réalisation, une initialisation des tables de probabilités, pour chaque plan Pk, qui est basée sur un modèle. Les paramètres du modèle qui sont le facteur de forme α et l'écart-type σ sont d'abord estimés (étape 801 après l'étape de début 800). On en détermine ensuite la valeur du pas de quantification scalaire q (étape 802), par exemple à partir de celle du facteur α comme représenté sur la figure 5. A partir des paramètres σ, α et q, on estime les probabilités des composantes a, (étape 803) comme décrit précédemment. Selon un principe similaire à celui décrit précédemment en référence à la figure 4, on vérifie s'il reste des plans de bits à coder à l'aide du test 805 sur la valeur courante d'un indice de boucle k décrémenté (étape 808) de K-I à 0. On estime alors les probabilités d'avoir un bit à 0 ou à 1 dans chaque plan (étape 806) puis on effectue le codage de ce plan (étape 807) en utilisant cette information sur les probabilités. On effectue cette boucle tant que l'indice k est positif ou nul (tant que des plans sont à coder). Sinon, le traitement se termine (étape de fin 809) ou peut être mis en œuvre à nouveau pour un bloc suivant de signal (ou trame) à coder.The flow diagram of FIG. 8 presents the principle of bitmap coding with, according to the first embodiment, an initialization of the probability tables, for each plan Pk, which is based on a model. The model parameters which are the form factor α and the standard deviation σ are first estimated (step 801 after the start step 800). The value of the scalar quantization step q (step 802) is then determined, for example from that of the factor α as represented in FIG. 5. From the parameters σ, α and q, the probabilities of the components a are estimated. , (step 803) as previously described. According to a principle similar to that described above with reference to FIG. 4, it is checked whether there remain bit planes to code using the test 805 on the current value of a decremented loop index k (step 808) from KI to 0. It is then estimated the probabilities of having a bit at 0 or 1 in each plane (step 806) and then the coding of this plane (step 807) is performed using this information on the probabilities. This loop is carried out as long as the index k is positive or zero (as long as there are plans to be coded). Otherwise, the processing terminates (end step 809) or can be implemented again for a next block of signal (or frame) to be encoded.
En référence maintenant à la figure 9, au décodage, après une étape de début 900, on décode les paramètres â , σ et q (étape 901) caractérisant le modèle de distribution qui a été utilisé au codage. On estime ensuite, avec ce modèle, les probabilités associées aux composantes a, (étape 902). On applique ensuite une boucle avec une décrémentation (étape 907) de l'indice courant de boucle k fixé initialement à K-I (étape 903). Tant que l'indice k est positif (flèche O en sortie du test 904), on estime les probabilités de 0 et de 1 dans chaque plan Pk (étape 906) afin de décoder aussi plus efficacement chaque plan Pk (étape 907). Sinon {k inférieur ou égal à 0 correspondant à la sortie N du test 904), plus aucun plan n'est à coder et le traitement peut se terminer (étape de fin 908) ou être mis en œuvre à nouveau pour un bloc suivant (ou trame) à décoder.Referring now to FIG. 9, at decoding, after a start step 900, the parameters α, σ and q (step 901) characterizing the distribution model are decoded which was used in coding. The probabilities associated with the components a, (step 902) are then estimated with this model. A loop is then applied with a decrement (step 907) of the loop current index k initially set to KI (step 903). As long as the index k is positive (arrow O at the output of the test 904), the probabilities of 0 and 1 in each plane Pk (step 906) are estimated in order to also decode each plane P.sub.k (step 907) more efficiently. If {k less than or equal to 0 corresponding to the output N of the test 904), no more plan is to be coded and the processing can be terminated (end step 908) or implemented again for a next block ( or frame) to be decoded.
On a vu ci-avant comment sont calculées les probabilités associées aux valeurs de composantes a,. On décrit maintenant comment peut en découler, pour chaque plan Pk, le calcul des probabilités associées à un symbole donné (étape 806 de la figure 8 et 905 de la figure 9). Afin de simplifier les notations dans les équations, la probabilité p (α, ) associée à une composante a, est notée « p(α) » ci-après.We saw above how are computed the probabilities associated with the values of components a ,. It will now be described how, for each plane P k , it is possible to calculate the probabilities associated with a given symbol (step 806 of FIG. 8 and 905 of FIG. 9). In order to simplify the notations in the equations, the probability p (α,) associated with a component a, is denoted by "p (α)" below.
La probabilité d'obtenir la valeur 0 dans un plan Pk peut être calculée à partir du modèle de probabilité correspondant encore à un modèle gaussien généralisé dans l'exemple décrit. La probabilité d'avoir le kieme bit de la décomposition binaire d'une composante a, (donc dans le plan Pk), égal à zéro, est donnée par : l si x = y , que l'on note ci-après y p(Bk (α)=0) pour plus de commodité dans l'écriture des équations.The probability of obtaining the value 0 in a plane Pk can be calculated from the probability model still corresponding to a generalized Gaussian model in the example described. The probability of having the k th bit of the binary decomposition of a component a, (thus in the plane Pk), equal to zero, is given by: l if x = y, which is noted below yp (B k (α) = 0) for convenience in writing equations.
La relation qui permet d'avoir la probabilité d'avoir le symbole 0 dans le plan Pk estThe relation that makes it possible to have the probability of having the symbol 0 in the plane Pk is
, , p(bk = 0,α ≤ M) alors donnée par : p (bk = 0 | a ≤ M) = ,,, p (b k = 0, α ≤ M) then given by: p (b k = 0 | a ≤ M) =,
où bk et M sont respectivement : - une variable aléatoire représentant un bit quelconque dans le plan Pk, etwhere b k and M are respectively: a random variable representing any bit in the plane P k , and
- le plus grand entier en valeur absolue que l'on peut avoir sur K plans, soit M=2K-1. On relèvera que l'expression de la probabilité est dépendante du nombre total de plans K et donc du nombre d'entiers que l'on peut coder. En effet, on suppose ici que le nombre de plans codés est inscrit dans le train binaire et cette donnée est donc disponible au décodage comme au codage, en particulier avant le codage arithmétique des plans Pk. On a donc une probabilité dite "conditionnelle" : sachant que a ≤ M.- the largest integer in absolute value that we can have on K planes, M = 2 K -1. It will be noted that the expression of the probability is dependent on the total number of planes K and thus on the number of integers that can be encoded. Indeed, it is assumed here that the number of coded planes is written in the bit stream and this data is therefore available for decoding and coding, in particular before the arithmetic coding of the plans Pk. We therefore have a so-called "conditional" probability: knowing that a ≤ M.
MM
La probabilité p (α ≤ M) est définie par : p (a ≤ M) = V p(α) . α=-MThe probability p (α ≤ M) is defined by: p (a ≤ M) = V p (α). α = -M
MM
La probabilité p (bk = 0, a ≤ M) est définie par : p (bk = 0, a ≤ M) = J^ PΦk (α) =0) • α=-MThe probability p (b k = 0, a ≤ M) is defined by: p (b k = 0, a ≤ M) = J ^ PΦ k ( α ) = 0) • α = -M
Pour simplifier l'écriture des équations, on note ci-après la valeur p(bk = 0 | at ≤ M) (ou p (bk = 0 1 a ≤ M) ) comme suit : « pM (bk = 0) ». On obtient alors l'expression suivante de la probabilité d'avoir la valeur 0 dans un plan Pk (étape 806) :To simplify the writing of the equations, we note below the value p (b k = 0 | a t ≤ M) (or p (b k = 0 1 a ≤ M)) as follows: "p M (b k = 0) ". We then obtain the following expression of the probability of having the value 0 in a plane P k (step 806):
1 M 1 M1 M 1 M
PM (K=O) =- x £ p(Bk (α)=0) = - x £ p(α)xδBk(fl) o P M (K = O) = - x £ p (B k (α) = 0) = - x £ p (α) xδ Bk (fl) o
£ p(β) a-=-M £ p(β) ^M a =-M a =-MP p ( β ) a - = - M p p ( β ) M M a = -M a = -M
On relèvera que la probabilité p(α,) (ou p(α)) intervient dans cette dernière équation, ce qui justifie son calcul préalable aux étapes 803 et 902 des figures 8 et 9.It will be noted that the probability p (α,) (or p (α)) occurs in this last equation, which justifies its calculation prior to steps 803 and 902 of FIGS. 8 and 9.
La technique de codage par plans de bits, elle-même, reste pratiquement inchangée par rapport à l'art antérieur. La différence essentielle relève toutefois de l'initialisation des probabilités de 0 à la valeur p(Bk (α) = θ) donnée ci-dessus, au lieu de choisir par défaut une valeur d'initialisation de 1/2 ou encore une valeur d'initialisation préenregistrée dépendant du débit ou de la source.The bitmap coding technique, itself, remains substantially unchanged from the prior art. The essential difference, however, is the initialization of the probabilities of 0 to the value p (B k (α) = θ) given above, instead of choosing by default an initialization value of 1/2 or a value prerecorded initialization depending on the flow rate or the source.
Par ailleurs, afin d'obtenir la probabilité d'avoir la valeur 1 soit pM (bk=l) , on utilise simplement une relation de complémentarité du type : pM (bk=l) + pM (bk=0) = 1 . La figure 10 présente un exemple des différentes valeurs {a, = 0, 1, 2, 3,..., 7) qui peuvent être prises sur K=3 plans. Ainsi, pour le plan P2 (MSB), les bits dont la valeur est zéro correspondent aux entiers 0, 1, 2 et 3 (trait plein) et donc la probabilité d'avoir la valeur 0 sur le plan MSB est donnée, en prenant la dernière équation ci-dessus, par : pM (b2=0)=p(αi = 0) + p(αi = l) + p (αi = 2) + p(αi = 3)Moreover, in order to obtain the probability of having the value 1 be p M (b k = 1), we simply use a complementarity relation of the type: p M (b k = 1) + p M (b k = 0) = 1. Figure 10 shows an example of the different values {a, = 0, 1, 2, 3, ..., 7) that can be taken on K = 3 planes. Thus, for the plane P 2 (MSB), the bits whose value is zero correspond to the integers 0, 1, 2 and 3 (solid line) and therefore the probability of having the value 0 on the MSB plane is given, in taking the last equation above, by: p M (b 2 = 0) = p (α i = 0) + p (α i = 1) + p (α i = 2) + p (α i = 3)
De la même façon, pour le plan Pi, les bits à la valeur zéro correspondent aux entiers 0, 1, 4 et 5 et : pM (b1=0)=p(α! = 0) +p(α, = l) +p(α, = 4) +p(α, = 5) , et ainsi de suite.In the same way, for the plane Pi, the bits at the value zero correspond to the integers 0, 1, 4 and 5 and: p M (b 1 = 0) = p (α ! = 0) + p (α, = l) + p (α, = 4) + p (α, = 5), and so on.
On explique maintenant, en revenant à la figure 11 , ce que représente le résultat de ces calculs de probabilité. Sur cette figure, on a représenté à titre purement illustratif un signal spectral X qui présente la particularité d'être très harmonique (ou "tonal").We now explain, returning to Figure 11, what the result of these probability calculations represents. In this figure, there is shown purely by way of illustration a spectral signal X which has the distinction of being very harmonic (or "tonal").
Ainsi, l'amplitude du signal MDCT est forte (en valeur absolue) sur seulement quelques fréquences qui se suivent (les bits significatifs ayant une valeur de 1 pour ces fréquences), tandis que l'amplitude associée aux autres fréquences est relativement faible (les bits significatifs gardant une valeur à 0). Par conséquent, le plan MSB et le ou les plans immédiatement suivants présentent peu de bits à 1. Avec l'allure de ce signal, une valeur petite du facteur de forme α (inférieure à 0,5) peut être trouvée et la probabilité d'obtenir des valeurs de bits à 0 est élevée (proche de 1) pour le plan MSB et ceux qui le suivent immédiatement. En revanche, le plan LSB des bits les moins significatifs et les plans qui le précèdent immédiatement peuvent comporter, selon une explication très schématique, autant de 0 que de 1 , suivant les fluctuations du bruit, et la probabilité d'y trouver des valeurs de bits à 0 est alors moyenne (proche de 0,5).Thus, the amplitude of the signal MDCT is strong (in absolute value) on only a few frequencies which follow each other (the significant bits having a value of 1 for these frequencies), while the amplitude associated with the other frequencies is relatively low (the significant bits keeping a value at 0). As a result, the MSB plane and the immediately following plane (s) have few bits to 1. With the pace of this signal, a small value of the shape factor α (less than 0.5) can be found and the probability of 0 bit values are high (close to 1) for the MSB plane and those immediately following it. On the other hand, the LSB plane of the least significant bits and the planes which immediately precede it can comprise, according to a very schematic explanation, as many 0s as of 1, according to the fluctuations of the noise, and the probability of finding there values of bits at 0 is then average (close to 0.5).
Il est à noter que si le signal était moins harmonique et plus bruité (par exemple un signal de parole non voisé), la probabilité de trouver des valeurs de bit à 0 dans le planIt should be noted that if the signal was less harmonic and more noisy (for example an unvoiced speech signal), the probability of finding bit values at 0 in the plane
MSB serait plus faible (plus proche de 0,5). Cette observation est détaillée dans la référence Oger et al (figure 1 et ses commentaires). Ainsi, si le signal de la figure 11 est ramené sous la forme d'un histogramme comme décrit dans cette référence Oger et al, on obtient un pic étroit (référence H de la figure 11), avec une faible valeur de largeur à mi-hauteur (donnant le facteur de forme α). En revanche, pour un signal fortement bruité ou non voisé, l'histogramme présenterait un pic plus large et un facteur de forme α plus grand. On comprend ici comment sont liés le modèle Mod de distribution de la source à coder (approximant l'histogramme H de la figure 11), d'une part, et les probabilités des valeurs de bits au moins dans le premier plan MSB, d'autre part.MSB would be lower (closer to 0.5). This observation is detailed in the reference Oger et al (Figure 1 and its comments). Thus, if the signal of FIG. 11 is brought back in the form of a histogram as described in this reference Oger et al, a narrow peak (reference H of FIG. 11) is obtained, with a small width value at half height (giving the form factor α). On the other hand, for a signal strongly noisy or unvoiced, the histogram would have a larger peak and a larger α-form factor. It will be understood here how the Mod distribution model of the source to be encoded (approximating the histogram H of FIG. 11) is linked, on the one hand, and the probabilities of the bit values at least in the first plane MSB, of somewhere else.
Ces valeurs de probabilités calculées peuvent alors être données à un codeur arithmétique (ou à un décodeur arithmétique), par exemple tel que celui décrit dans la référence Witten et al citée précédemment : "Arithmetic Coding for Data Compression" , LH. Witten, R.M. Neal, J.G. Cleary, Communications of the ACM - Computing Practices, Vol.30, N°6 (juin 1987), p.520-540.These calculated probability values can then be given to an arithmetic coder (or to an arithmetic decoder), for example such as that described in the reference Witten et al cited above: "Arithmetic Coding for Data Compression", LH. Witten, R. M. Neal, J. G. Cleary, Communications of the ACM - Computing Practices, Vol. 30, No. 6 (June 1987), p.520-540.
Dans ce cas, en référence à la figure 12 (qui peut être rapprochée de la figure Ib (page 522) de ce document Witten et al), les déclarations pM (bκ.j=0)=A et pM (bκ.j=l) =B définissent les tables de probabilités du plan Pκ-i (MSB) (qui peuvent être rapprochées de la table I (page 521) de ce document Witten et al).In this case, with reference to FIG. 12 (which can be compared with FIG. 1b (page 522) of this document Witten et al), the statements p M (b κ.j = 0) = A and p M (b κ.j = l) = B define the probability tables of the Pκ-i plane (MSB) (which can be compared with table I (page 521) of this document Witten et al).
Ainsi, il est possible, par la mise en œuvre de la présente invention, de calculer trame par trame les tables de probabilités pM (bκ_!=0) ,pM (bκ_!=l) au moins pour le plan MSB, directement à partir de la forme même du signal et sans avoir recours à un préenregistrement de tables de probabilités comme au sens de l'art antérieur, nécessitant alors des ressources mémoires supplémentaires, tant au codeur qu'au décodeur, et limitant la souplesse de mise en œuvre. Au sens de l'invention, les calculs des probabilités sont menés directement sur le signal, en temps réel, préférentiellement par une estimation a priori du modèle de distribution du signal (module 507 de la figure 5 et 603 de la figure 6) comme décrit ci-avant.Thus, it is possible, by the implementation of the present invention, to calculate, on a frame-by-frame basis, the probability tables p M (b κ- 1 = 0), p M (b κ- 1 = 1) at least for the MSB plane, directly from the actual form of the signal and without having recourse to a pre-registration of probability tables as in the sense of the prior art, thus requiring additional memory resources, both encoder and decoder, and limiting the flexibility of implementation. For the purposes of the invention, the calculations of the probabilities are carried out directly on the signal, in real time, preferably by an a priori estimation of the signal distribution model (module 507 of FIG. 5 and 603 of FIG. 6) as described above.
Le calcul des valeurs A=pM (bκ.1=0) et B=pM (bκ.1=l) correspond à ce qui a été désigné ci-avant par les termes "initialisation des tables de probabilités" . Cette opération est préférentiellement effectuée pour chaque plan. Dans le premier mode de réalisation précité, on calcule ces probabilités pour un plan courant Pk sans tenir compte des valeurs de bits dans des plans autres que Pk. Dans un deuxième mode de réalisation, on tient compte de ces valeurs en définissant un "contexte".The calculation of the values A = p M (b κ.1 = 0) and B = p M (b κ.1 = 1) corresponds to what has been designated above by the terms "initialization of the probability tables". This operation is preferably performed for each plane. In the above-mentioned first embodiment, these probabilities are calculated for a current plane Pk without taking into account bit values in planes other than Pk. In a second embodiment, these values are taken into account by defining a "context".
En effet, en référence à la figure l i a nouveau, on constate que dans les plans qui suivent immédiatement le plan MSB, si un bit d'un plan était à 1, le bit de même rang dans le plan immédiatement suivant est très fréquemment aussi à 1. Certes, la figure 11 n'est présentée qu'à titre illustratif mais cette observation peut être menée en pratique sur des cas réels. Typiquement, si un bit d'un rang i est à 1 dans un plan, il est alors "plus probable" que le bit de même rang soit aussi à 1 dans un plan suivant. A l'inverse, il est habituel que les amplitudes associées à quelques fréquences dans un spectre de signal soient quasi-nulles (notamment dans le cas d'un signal de parole). Ainsi, si le bit d'un plan Pk supérieur est nul, il est "plus probable" qu'un bit de même rang dans le plan suivant Pk-i soit nul aussi. Par conséquent, on peut, pour estimer la probabilité associée à un bit dans un plan, tenir compte avantageusement de la valeur du bit de même rang dans un plan précédent. On peut tirer parti de cette observation en définissant, à partir d'une valeur observée pour un bit de rang i sur un plan Pk (par exemple le seul bit à 1 du plan MSB de la figure 11), un contexte pour un bit de même rang i et sur le plan Pk-i suivant (bit aussi à 1 dans ce plan).In fact, with reference to FIG. 11a new, it can be seen that in the planes immediately following the MSB plane, if a bit of a plane was at 1, the bit of the same rank in the immediately following plane is very frequently also at 1. Of course, Figure 11 is presented for illustrative purposes only but this observation can be carried out in practice on real cases. Typically, if a bit of a rank i is 1 in a plane, then it is "more likely" that the bit of the same rank is also 1 in a subsequent plane. Conversely, it is usual for the amplitudes associated with a few frequencies in a signal spectrum to be almost zero (especially in the case of a speech signal). Thus, if the bit of a higher plane Pk is zero, it is "more probable" that a bit of the same rank in the following plane P k -i is also zero. Therefore, to estimate the probability associated with a bit in a plane, it is advantageous to take into account the value of the bit of the same rank in a previous plane. This observation can be exploited by defining, from a value observed for a bit of rank i on a plane P k (for example the only bit at 1 of the MSB plane of FIG. 11), a context for a bit of the same rank i and on the plane P k -i following (bit also 1 in this plane).
L'exploitation de ce principe notamment est menée par les codeurs arithmétiques dits alors "contextuels" dans les modes de réalisation décrits ci-après.The exploitation of this principle in particular is carried out by the so-called "contextual" arithmetic coders in the embodiments described below.
Ils mettent en œuvre un codage par plans de bits basé sur un modèle permettant un calcul de probabilité conditionnelle pour les plans Pk avec k<K-l. Les traitements de codage par plans de bits décrits précédemment n'exploitaient pas d'information mutuelle entre plans Pk, puisque les plans Pk étaient codés un par un et indépendamment les uns des autres. On présente maintenant une façon d'exploiter l'information déjà codée. Le plan de bits MSB est codé comme dans le cas précédent, de façon indépendante des autres plans de bits en initialisant la probabilité de 0 et de 1 à partir du modèle gaussien généralisé. Par contre, le codage du plan Pk pour k<K-l utilise ici la connaissance d'une information de "contexte" sur les plans précédents Pκ.15... , Pk+2, Pk+1They implement a model-based bit plane encoding allowing conditional probability computation for Pk planes with k <K1. The bitmap coding processes described above did not exploit mutual information between planes Pk, since the planes Pk were coded one by one and independently of one another. We are now presenting a way of exploiting already coded information. The bit plane MSB is encoded as in the previous case, independently of the other bit planes by initializing the probability of 0 and 1 from the generalized Gaussian model. On the other hand, the coding of the plane Pk for k <K1 here uses the knowledge of a "context" information on the previous plans P κ.15 ..., P k + 2 , P k + 1
Globalement, on calcule des tables de probabilités pour différents contextes possibles, donc pour différentes valeurs de bits possibles prises dans les plans précédents.Overall, we compute probability tables for different possible contexts, so for different possible bit values taken in previous plans.
Par exemple, en référence à la figure 12 à nouveau, pour le plan PK-2, on va calculer deux tables de probabilités (chaque table pour qu'un bit du plan Pκ-2 soit égal à 0 ou à 1) en fonction des valeurs de bit possibles dans le plan précédent Pκ-i (une table pour une valeur à 0 et une table pour une valeur à 1), donc en fonction du contexte noté C sur la figure 12. Dans l'exemple représenté, la valeur du bit de rang z'=0 dans le plan Pκ-i était 0, donc le contexte vaut C=O et la table des probabilités associée est donnée par les valeurs A' et B'. Pour le rang i=\, la valeur du bit correspondant dans le plan Pκ-i était 1, donc le contexte vaut C=I et la table des probabilités associée est donnée maintenant par les valeurs C et D'. Pour le rang i=2, la valeur du bit correspondant dans le plan Pκ-i était 0, donc le contexte vaut C=O et on reprend la table des probabilités donnée par les valeurs A' et B'. On rappelle que le rang i désigne l'indice i d'une composante a, ou y,. On relèvera sur la figure 12 que les contextes C du plan MSB ne sont pas définis (car, bien entendu, il n'y a pas de plan de bits plus significatifs). Pour une mise en œuvre informatique de cette réalisation, on fixera alors les contextes du plan MSB comme étant tous égaux à 0.For example, with reference to FIG. 12 again, for the plane P K-2 , two probability tables (each table for a bit of the plane P κ- 2 will be equal to 0 or 1) will be computed. according to the possible bit values in the preceding plane P κ- i (a table for a value at 0 and a table for a value at 1), and therefore according to the context noted C in FIG. 12. In the example shown, the value of the bit of rank z ' = 0 in the plane Pκ-i was 0, so the context is worth C = O and the associated table of probabilities is given by the values A' and B '. For the rank i = \, the value of the corresponding bit in the plane Pκ-i was 1, so the context is worth C = I and the associated probability table is now given by the values C and D '. For the rank i = 2, the value of the corresponding bit in the plane Pκ-i was 0, so the context is worth C = O and we take again the table of probabilities given by the values A 'and B'. Recall that the rank i designates the index i of a component a, or y ,. It will be noted in FIG. 12 that the contexts C of the MSB plane are not defined (because, of course, there is no more significant bit plan). For a computer implementation of this realization, we will then set the contexts of the MSB plane as being all equal to 0.
On ne détaille pas ici comment sont codés les plans, ni la manière dont sont découpés successivement les intervalles de probabilités (même si les limites des intervalles sont indiquées sur la figure 12). On pourra se référer utilement au document Witten et al pour la description de tels éléments. L'organigramme de la figure 13 présente le principe du codage par plans de bits avec une détermination de contexte pour chaque bit d'un plan Pk, dans un deuxième mode de réalisation de l'invention. Les éléments similaires à ceux de l'organigramme de la figure 8 portent les mêmes références et ne sont pas décrits à nouveau ici.We do not detail here how the planes are coded, nor how are the intervals of probabilities successively divided (even if the limits of the intervals are indicated in FIG. 12). We can usefully refer to the Witten et al document for the description of such elements. The flowchart of FIG. 13 presents the principle of bitmap coding with context determination for each bit of a Pk plane, in a second embodiment of the invention. Elements similar to those in the flowchart of Figure 8 have the same references and are not described again here.
Si au moins un plan est à coder (flèche O en sortie du test 805), on estime les probabilités associées aux différentes valeurs possibles de contexte pour chaque plan (étape 1306). Dans le deuxième mode de réalisation, par le terme "contexte", on entend, pour le ieme bit du keme plan, l'ensemble des bits de rang i dans les plans précédant le plan Pk. Ainsi, en référence à la figure 10, pour le rang 7, dans le plan P1, le contexte est "1" (valeur du bit de rang 7 dans le plan P2 (MSB)), tandis que dans le plan Po, le contexte est "11" (1 étant la valeur du bit de rang 7 dans le plan P2 (MSB) et 1 étant la valeur du bit de rang 7 dans le plan Pi).If at least one plane is to be coded (arrow O at the output of the test 805), the probabilities associated with the different possible values of context for each plane are estimated (step 1306). In the second embodiment, the term "context" means, for the ith bit of the k th plane, the set of bits of rank i in the planes preceding the plane Pk. Thus, with reference to FIG. 10, for rank 7, in the plane P 1 , the context is "1" (value of the bit of rank 7 in the plane P 2 (MSB)), while in the plane Po, the context is "11" (where 1 is the value of the rank 7 bit in the P 2 plane (MSB) and 1 is the value of the rank 7 bit in the Pi plane).
Le contexte étant ainsi défini pour un bit courant, on estime ensuite les probabilités en fonction du contexte trouvé (étape 1307) pour le rang de ce bit. On code alors, avec les probabilités ainsi calculées, chaque bit d'un plan (étape 1308 de la figure 13) jusqu'à épuisement des rangs. On réitère ce traitement pour un plan suivant, en tenant compte encore du contexte pour chaque bit. On effectue cette boucle tant que des plans sont à coder (flèche O en sortie du test 805). Sinon (flèche N en sortie du test 805), le codage est terminé ou peut être mis en œuvre pour un bloc de signal (ou trame) suivant.The context being thus defined for a current bit, the probabilities are then estimated as a function of the context found (step 1307) for the rank of this bit. We then code, with the probabilities thus calculated, each bit of a plane (step 1308 of FIG. 13) until the ranks are exhausted. This treatment is reiterated for a next plane, taking into account the context for each bit. This loop is carried out as long as there are plans to be coded (arrow O at the output of test 805). Otherwise (arrow N at the output of test 805), the coding is completed or can be implemented for a next signal block (or frame).
Ainsi, dans un premier temps, on calcule les tables de probabilités pour différents contextes possibles, puis on estime la probabilité d'avoir la valeur zéro ou la valeur 1 sachant le contexte, pour chaque bit. On détaille ci-après la manière de calculer les tables de probabilités pour différents contextes possibles (les valeurs A', B', C, D' dans l'exemple de la figure 12). Le calcul de la probabilité des contextes eux-mêmes Ck (α) (étape 1306) s'effectue comme suit. Pour les plans de bits de rang inférieur à K-I (autres que le plan MSB), on définit les contextes Ck (α) comme étant le quotient de a, par 2κ~k dans le plan Pk, soit :Thus, at first, we compute the probability tables for different possible contexts, then we estimate the probability of having the value zero or the value 1 knowing the context, for each bit. The manner of calculating the probability tables for different possible contexts is described below (the values A ', B', C, D 'in the example of FIG. 12). The calculation of the probability of the contexts themselves C k (α) (step 1306) is as follows. For the bit planes of rank lower than KI (other than the MSB plane), the contexts C k (α) are defined as being the quotient of a, by 2 κ ~ k in the plane Pk, ie:
K-IK-I
C k (α) = ∑ Bj (α)2J , avec -M ≤ α < M et pour tout k < K j=k+l Pour le plan Pk, le nombre de contextes possibles est de 2κ"k. Les différentes valeurs Ck.n possibles des contextes sur le plan Pk sont définies comme suit : C k ( α ) = Σ B j (α) 2 J , with -M ≤ α <M and for all k <K j = k + l For the plane Pk, the number of possible contexts is 2 κ "k . The different possible values Ck.n of the contexts on the plane Pk are defined as follows:
K-I cκn = ∑ B j (n) 2J - avec 0 < n < 2κ"k et pour tout k < K j=k+lKI cκ n = Σ B j ( n ) 2J - with 0 <n <2 κ "k and for all k <K j = k + l
Ainsi, dans le deuxième mode de réalisation, en référence à l'exemple de la figure 10 où K=3 plans, sur le plan k=l, on dénombre quatre contextes différents qui sont {00,01,10,1 l}et la probabilité d'avoir le keme contexte de a dans le plan Pk égal à Ck,n est donnée (à l'étape 1306 de la figure 13) par :Thus, in the second embodiment, with reference to the example of FIG. 10 where K = 3 planes, on the plane k = 1, there are four different contexts which are {00,01,10,1 1} and the probability of the kth context of a in the plane Pk equal to Ck, n is given (in step 1306 of Figure 13) by:
P(Ck (α) = c,J = p(Bk+1 (α) = Bk+1 (n))xp(Ck+1 (α) = H p(Bj Ia) = B^n)) P (C k (α) = c, J = p (B k + 1 (α) = B k + 1 (n)) xp (C k + 1 (α) = H p (B j Ia) = B ^ not))
Maintenant, le calcul de la probabilité conditionnelle d'avoir la valeur zéro sachant le contexte Ck (α) , pour k<K-l, s'effectue, à l'étape 1307 de la figure 13, comme suit.Now, the computation of the conditional probability of having the value zero knowing the context C k (α), for k <K1, is carried out, at the step 1307 of FIG. 13, as follows.
On cherche à exploiter la connaissance a priori du contexte (plans de rang k+1 à K-I) lors du codage du plan Pk. La probabilité conditionnelle d'avoir la valeur 0, sachant le contexte ct,n, pour k < K-I, est définie par : Les relations suivantes permettent de déterminer l'ensemble des probabilités en jeu, pour les 2κ~k différentes valeurs possibles de contexte (0, 1, 00, 01, 10, 11, 000, etc.) : We try to exploit the knowledge a priori of the context (planes of rank k + 1 to KI) during the coding of the plane Pk. The conditional probability of having the value 0, knowing the context ct, n, for k <KI, is defined by: The following relations make it possible to determine the set of probabilities involved, for the 2 κ ~ k different possible context values (0, 1, 00, 01, 10, 11, 000, etc.):
La probabilité pM (ck = ckn ) , pour k <K-1, est définie par la relation :The probability p M (c k = c kn ), for k <K-1, is defined by the relation:
La probabilité pM (bk = 0,ck = ckn ) , pour k <K-1, est quant à elle définie par la relation :The probability p M (b k = 0, c k = c kn ), for k <K-1, is defined by the relation:
Ainsi, la probabilité conditionnelle d'avoir la valeur 0 sachant le contexte Ck,n (étape 1307), notée pM fbk = 0 ck = cKn ) , pour k < K-I, est finalement définie par la relation :Thus, the conditional probability of having the value 0 knowing the context Ck, n (step 1307), denoted p M fb k = 0c k = c Kn ), for k <KI, is finally defined by the relation:
Un exemple de calcul de la probabilité conditionnelle pour k<K-l est encore présenté en figure 10, sur laquelle, pour le plan P2 (MSB), il est décidé que tous les contextes sont nuls. Pour le plan Pi, on compte deux contextes possibles 0 ou 1, tandis que pour le plan P0 (LSB), on compte alors quatre contextes possibles qui sont {00, 01, 10, 11} et pour le plan Po, les entiers dont le contexte est "00" sont 0 et 1. La probabilité d'avoir le contexte "00" (traits pointillés de la figure 10) est donc donnée par : pM (c0 = 00) = p(α! = 0) + p(α! = l) Dans le cas où le contexte est "00", le seul entier dont le bit dans le plan Po a pour valeur binaire 0 est l'entier 0. Ainsi, la probabilité d'avoir un bit égal à zéro dans le plan Po, sachant que le contexte est "00", est donnée par : An example of calculating the conditional probability for k <K1 is still presented in FIG. 10, in which, for the plane P 2 (MSB), it is decided that all the contexts are null. For the plane Pi, there are two possible contexts 0 or 1, whereas for the plane P 0 (LSB), there are four possible contexts that are {00, 01, 10, 11} and for the plane Po, the integers whose context is "00" are 0 and 1. The probability of having the context "00" (dashed lines of Figure 10) is therefore given by: p M (c 0 = 00) = p (α ! = 0 ) + p (α ! = l) In the case where the context is "00", the only integer whose bit in the plane Po has the binary value 0 is the integer 0. Thus, the probability of having a bit equal to zero in the plane Po, knowing that the context is "00", is given by:
Inversement, la probabilité d'avoir un bit égal à 1 dans le plan Po, sachant que le contexte est "00", est donnée par :Conversely, the probability of having a bit equal to 1 in the plane Po, knowing that the context is "00", is given by:
pM (b0 = l|c0 = 00) = l -pM (b0 = 0|c0 = 00) = 1 - Pk = O)p M (b 0 = l | c 0 = 00) = l -p M (b 0 = 0 | c 0 = 00) = 1 - Pk = O)
P (U1 = O) H-P ^1 = I)P (U 1 = O) HP 1 = I)
On constate néanmoins que le calcul des tables de probabilités pour les derniers plans (dont le plan LSB avec 2K contextes possibles) est fastidieux compte tenu de la croissance exponentielle du nombre de contextes à prendre en compte. On décrit maintenant le troisième mode de réalisation correspondant à un codage arithmétique contextuel par plans de bits basé sur un modèle, avec calcul de la probabilité conditionnelle pour k<K-l, en particulier dans le cas où un nombre limité de contextes possibles est imposé (ici deux contextes possibles). Il s'agit d'une variante du cas précédent correspondant à une probabilité conditionnelle avec utilisation de contextes, dans laquelle, au lieu d'avoir un nombre de contextes qui augmente par un facteur égal à 2 à chaque nouveau plan, au fur et à mesure que l'on descend du plan MSB au planNevertheless, we note that the calculation of the probability tables for the last plans (including the LSB plan with 2 K possible contexts) is tedious given the exponential growth of the number of contexts to be taken into account. We now describe the third embodiment corresponding to a model-based bit plane contextual arithmetic coding, with calculation of the conditional probability for k <K1, in particular in the case where a limited number of possible contexts is imposed (here two possible contexts). It is a variant of the previous case corresponding to a conditional probability with contexts, in which, instead of having a number of contexts that increases by a factor of 2 to each new plan, as and when as we go down from the MSB plane to the plane
LSB, on fixe au contraire un nombre maximum de contextes associés à un seul bit (0 ou 1).LSB, on the contrary we set a maximum number of contexts associated with a single bit (0 or 1).
Dans l'exemple décrit, ce nombre maximum est de deux et s'interprète ainsi : un contexte à 0 indique que les bits codés dans les plans supérieurs et au même rang sont tous égaux à 0 et donc que le coefficient MDCT quantifié, pour ce rang, est pour l'instant non significatif, et un contexte à 1 indique qu'au moins un des bits déjà codés dans les plans supérieurs et au même rang était égal à 1, ce qui implique que le coefficient actuel, pour ce rang, est significatif. L'organigramme de la figure 14 présente le principe du codage par plans de bits avec une détermination de contexte pour chaque bit d'un plan Pk, en limitant le nombre de contextes possibles à deux ("0" ou "1" à l'étape 1406). Les éléments similaires à ceux des organigrammes des figures 8 et 13 portent les mêmes références et ne sont pas décrits à nouveau ici. Seules les étapes 1406, 1407 et 1408 sont modifiées dans le sens où les seules valeurs possibles du contexte sont maintenant 0 ou 1 , ce qui influe aussi sur le codage réalisé (étape 1408).In the example described, this maximum number is two and is thus interpreted: a context at 0 indicates that the bits coded in the higher planes and at the same rank are all equal to 0 and therefore the quantified MDCT coefficient, for this reason. rank, is for the moment insignificant, and a context at 1 indicates that at least one of the bits already coded in the higher planes and at the same rank was equal to 1, which implies that the current coefficient, for this rank, is significant. The flowchart of FIG. 14 presents the principle of bitmap coding with a context determination for each bit of a Pk plane, limiting the number of possible contexts to two ("0" or "1" to step 1406). The elements similar to those of the flowcharts of FIGS. 8 and 13 bear the same references and are not described again here. Only steps 1406, 1407 and 1408 are modified in the sense that the only possible values of the context are now 0 or 1, which also influences the coding performed (step 1408).
On présente ci-après un exemple de calcul de la probabilité conditionnelle, pour k<K-l, menée à l'étape 1406 de la figure 14 avec ces deux valeurs de contexte possibles. En référence à la figure 10, on a repris cet exemple où les deux contextes possibles sont 0 et 1. Sur le plan P1, les bits dont le contexte est "0" (ce qui correspond à avoir la valeur 0 sur tous les plans avant le plan courant, donc sur P2 correspondant au plan MSB) sont ceux des entiers Ci1 = 0, 1, 2 et 3. La probabilité d'avoir un contexte égal à zéro est alors donnée par :An example of calculation of the conditional probability, for k <K1, conducted at step 1406 of FIG. 14 with these two possible context values is presented below. With reference to FIG. 10, this example is repeated where the two possible contexts are 0 and 1. On the plane P 1 , the bits whose context is "0" (which corresponds to having the value 0 on all the planes before the current plane, so on P 2 corresponding to the plane MSB) are those of the integers Ci 1 = 0, 1, 2 and 3. The probability of having a context equal to zero is then given by:
PM (C, = 0) = p(α, = 0) + p(α, = l) + p(α, = 2) + p(α! = 3) .P M (C, = 0) = p (α, = 0) + p (α, = 1) + p (α, = 2) + p (α ! = 3).
Sur le plan Po (LSB), les bits dont le contexte est "0" (en se référant alors aux plans Pi et P2) sont ceux des entiers a, = 0 et 1. La probabilité d'avoir un contexte égal à zéro est alors pM (c0 = 0) = p(α, = 0) + p(α, = l) .On the Po (LSB) plane, the bits whose context is "0" (referring to the planes Pi and P 2 ) are those of the integers a, = 0 and 1. The probability of having a context equal to zero is then p M (c 0 = 0) = p (α, = 0) + p (α, = 1).
Le calcul de la probabilité d'avoir le contexte égal à 0 (étape 1406 de la figure 14) se mène comme suit. Pour les plans Pk avec k<K-l (autres que le plan MSB), on définit des contextes :The calculation of the probability of having the context equal to 0 (step 1406 of FIG. 14) is carried out as follows. For the planes Pk with k <K-1 (other than the MSB plane), we define contexts:
. fl s'il existe B. (α) = l pour j = k + l,... K-I. fl if there exists B. (α) = 1 for j = k + l, ... K-I
Ck (α) = 1 C k ( α ) = 1
[0 autrement[0 otherwise
La probabilité d'avoir le keme contexte de a dans le plan Pk égal à zéro est donnée alors (étape 1406) par une relation récursive de la forme : p(Ck (α) = O) = p(Bk+1 (α) = θ)xp(Ck+1 (α) = O) = The probability of having the k th context of a in the plane Pk equal to zero is then given (step 1406) by a recursive relation of the form: p (C k (α) = O) = p (B k + 1 (α) = θ) xp (C k + 1 (α) = O) =
Le calcul de la probabilité conditionnelle d'avoir la valeur zéro, pour k<K-l, avec deux choix de contextes possibles (à l'étape 1407 de la figure 14) est mené en exploitant la connaissance du contexte (présence d'un bit égal à 1 dans les plans de rang k+1 à K-I) lors du codage du plan de rang Pk. On définit alors la probabilité conditionnelle pour k<K-l (étape 1407) comme suit :The calculation of the conditional probability of having the value zero, for k <K1, with two possible context choices (at step 1407 of FIG. 14) is conducted by exploiting the knowledge of the context (presence of an equal bit to 1 in the planes of rank k + 1 to KI) during the coding of the plane of rank Pk. We then define the conditional probability for k <K-1 (step 1407) as follows:
où Ck est une variable aléatoire représentant le contexte associé à un bit bk quelconque dans le plan Pk .where Ck is a random variable representing the context associated with any bit bk in the plane Pk.
La probabilité pM (ck = 0) , pour k <K-1, est donnée par la relation :The probability p M (c k = 0), for k <K-1, is given by the relation:
La probabilité p(bk = 0,ck = 0) , pour k <K-1, est définie quant à elle par la relationThe probability p (b k = 0, c k = 0), for k <K-1, is defined by the relation
MMMM
PM (bk = 0,ck = 0) = - -XP M (b k = 0, c k = 0) = - -X
M £ [p(Bk (α) = 0)xp(Ck (α) = 0)]M £ [p (B k (α) = 0) xp (C k (α) = 0)]
∑ V(fl) a,=-M a=-MΣ V (fl) a, = - M a = -M
On a donc la probabilité conditionnelle pour k<K-l qui est donc définie par : PM (bk = 0|ck = 0) = So we have the conditional probability for k <Kl which is therefore defined by: P M (b k = 0 | c k = 0) =
On indique qu'il est possible de calculer aussi pM (bk = 0 ck = l) de façon semblable.It is indicated that it is also possible to calculate p M (b k = 0c k = 1) in a similar way.
L'invention, selon l'un quelconque des trois modes de réalisation ci-avant, conduit alors à une technique efficace de codage par plan de bits et rend ce type de codage plus flexible qu'au sens de l'état de l'art. En effet, il devient possible de ne plus stocker de tables de probabilités pré-calculées (contextes). Un calcul en dynamique, basé simplement sur le signal à coder/décoder, suffit alors.The invention, according to any one of the three embodiments above, then leads to an efficient bitmap coding technique and makes this type of coding more flexible than in the state of the art sense. . Indeed, it becomes possible to no longer store pre-calculated probability tables (contexts). A dynamic calculation, based simply on the signal to be coded / decoded, then suffices.
La présente invention vise aussi un codeur pour la mise en œuvre du procédé de l'invention, tel que celui représenté à titre d'exemple sur la figure 5 décrite précédemment, et comportant alors un module 505 d'estimation d'une distribution du signal à coder, alimentant un module 507 de calcul des probabilités de valeurs de symboles. Elle vise aussi un décodeur pour la mise en œuvre du procédé de l'invention, tel que celui représenté à titre d'exemple sur la figure 6 décrite précédemment, et comportant alors un module 603 de calcul des probabilités de valeurs de symboles, à partir d'une estimation d'une distribution du signal. En particulier, ce module 603 est alimenté par au moins un paramètre (par exemple le facteur de forme α) caractérisant le modèle de densité de probabilités du signal avant codage, ce paramètre α étant reçu par le décodeur sous forme codée et étant décodé ensuite (référence â de la figure 6).The present invention also aims at an encoder for implementing the method of the invention, such as that represented by way of example in FIG. 5 described above, and then comprising a module 505 for estimating a distribution of the signal. to code, feeding a module 507 for calculating the probabilities of symbol values. It also relates to a decoder for implementing the method of the invention, such as that represented by way of example in FIG. 6 described above, and then comprising a module 603 for calculating the probabilities of symbol values, starting from an estimate of a signal distribution. In particular, this module 603 is powered by at least one parameter (for example the form factor α) characterizing the probability density model of the signal before coding, this parameter α being received by the decoder in coded form and then being decoded ( reference of Figure 6).
La présente invention vise aussi un programme informatique destiné à être stocké dans une mémoire d'un tel codeur ou d'un tel décodeur. Il comporte des instructions pour la mise en œuvre du procédé de l'invention, lorsqu'il est exécuté par un processeur du codeur ou du décodeur. Par exemple, les organigrammes des figures 8, 9, 13 ou 14 peuvent schématiser des algorithmes respectifs de différentes versions d'un tel programme informatique.The present invention also relates to a computer program intended to be stored in a memory of such an encoder or such a decoder. It includes instructions for implementing the method of the invention, when it is executed by a processor of the encoder or the decoder. For example, the flow charts of FIGS. 8, 9, 13 or 14 can schematize respective algorithms of different versions of such a computer program.
Bien entendu, la présente invention ne se limite pas aux modes de réalisation décrits ci- avant ; elle s'étend à d'autres variantes.Of course, the present invention is not limited to the embodiments described above; it extends to other variants.
Par exemple, les codeurs arithmétiques ne fonctionnent pas, en pratique, directement avec les probabilités des symboles, mais plutôt avec les fréquences entières des symboles. L'invention décrite précédemment s'adapte néanmoins facilement à l'utilisation de fréquences, puisque les fréquences correspondent à la probabilité multipliée par un nombre d'occurrences observées. On peut encore se référer au document Witten et al pour plus de détail sur ce point. Il suffit donc de convertir en fréquences les probabilités estimées ci-avant.For example, arithmetic coders do not work, in practice, directly with the probabilities of symbols, but rather with the integer frequencies of symbols. The invention described above nevertheless adapts easily to the use of frequencies, since the frequencies correspond to the probability multiplied by a number of observed occurrences. We can still refer to the document Witten et al for more details on this point. It is therefore sufficient to convert the probabilities estimated above into frequencies.
Plus généralement encore, on a décrit ci-avant des plans de symboles dont les valeurs sont des valeurs de bits "0" ou "1". L'invention s'étend néanmoins à une application au codage/décodage par plans de symboles (avec plus de deux symboles, par exemple trois symboles : "0", "+1", "-1"). La référence Witten et al (table I et figure Ib) indique comment gérer les probabilités associées à plus de deux symboles. On retiendra ainsi que l'invention permet d'évaluer la probabilité des symboles dans au moins un plan de symboles (préférentiellement le plan des symboles les plus significatifs), à partir d'un modèle de la source (signal à coder/décoder).More generally still, there are described above symbol planes whose values are "0" or "1" bit values. The invention nevertheless extends to an application to coding / decoding by symbol planes (with more than two symbols, for example three symbols: "0", "+1", "-1"). The reference Witten et al (Table I and Figure Ib) indicates how to handle the probabilities associated with more than two symbols. It should be noted that the invention makes it possible to evaluate the probability of the symbols in at least one symbol plane (preferably the plane of the most significant symbols), from a source model (signal to be encoded / decoded).
D'ailleurs, le principe de l'invention pourrait également s'appliquer au cas d'un codage de type stack-run où les probabilités de quatre symboles (0,1,+,-) pour les "stacks" et les "runs" sont calculées à partir d'un modèle de distribution du signal à coder (selon la référence Oger et al donnée précédemment), par exemple à partir d'un modèle gaussien généralisé. Dans ce cas, on peut initialiser les probabilités des symboles 0, 1, + et -, à partir de la valeur du paramètre α associée au modèle. Par ailleurs, comme on l'a vu précédemment, l'invention permet d'optimiser les contextes du codage arithmétique contextuel. Outre le fait que le codage au sens de l'invention peut être arithmétique contextuel, le codage peut être aussi adaptatif (par exemple en fonction du débit, de la source, ou encore des valeurs prises par les bits d'un même plan) comme décrit par exemple dans la référence Langdon et al citée précédemment.Moreover, the principle of the invention could also be applied to the case of a stack-run coding where the probabilities of four symbols (0,1, +, -) for "stacks" and "runs "are calculated from a distribution model of the signal to be coded (according to the reference Oger et al previously given), for example from a generalized Gaussian model. In this case, we can initialize the probabilities of the symbols 0, 1, + and -, starting from the value of the parameter α associated with the model. Moreover, as we have seen above, the invention makes it possible to optimize the contexts of the contextual arithmetic coding. In addition to the fact that the coding in the sense of the invention may be contextual arithmetic, the coding may also be adaptive (for example as a function of the bit rate, the source, or the values taken by the bits of the same plane) as described for example in the reference Langdon et al cited above.
Plus généralement encore, l'invention s'applique à tout type de codage (Huffman, ou autres) basé sur les probabilités des symboles en codage par plans de symboles. Ainsi, l'invention peut s'appliquer plus généralement à d'autres types de codage entropique que le codage arithmétique.More generally, the invention applies to any type of coding (Huffman, or others) based on the probabilities of symbols in symbol plane coding. Thus, the invention can be applied more generally to other types of entropy coding than arithmetic coding.
Par ailleurs, le cas du modèle gaussien généralisé avec transmission du paramètre de forme n'a été décrit ci-avant qu'à titre d'exemple de réalisation. Des modèles autres que le modèle gaussien généralisé sont possibles. Par exemple, des modèles de probabilités fixes (un modèle Laplacien notamment) ou paramétriques (des modèles alpha-stables, de mélange de gaussiennes, ou autres) peuvent aussi être envisagés pour modéliser la source.Moreover, the case of the generalized Gaussian model with transmission of the shape parameter has only been described above as an exemplary embodiment. Models other than the generalized Gaussian model are possible. For example, models of fixed probabilities (a Laplacian model in particular) or parametric models (alpha-stable models, Gaussian mixing models, or others) can also be considered to model the source.
Plus généralement encore, il est possible de ne pas modéliser la distribution du signal, mais simplement calculer les tables de probabilités au codage sur la base de la distribution brute (non modélisée) du signal. On pourrait alors coder ces tables de probabilités et les transmettre au décodeur de sorte que ce dernier n'a pas à les recalculer (suppression du module 603 de la figure 6 et réception des tables de probabilités à la place du facteur de forme α). Néanmoins, il est préféré de modéliser la distribution du signal et de ne transmettre au décodeur que quelques paramètres (notamment le facteur de forme α) qui caractérisent le modèle, comme décrit précédemment, pour limiter la quantité de données dans le flux codé. More generally, it is possible not to model the signal distribution, but simply to compute the probability tables at the encoding based on the raw (unmodeled) distribution of the signal. One could then code these probability tables and transmit them to the decoder so that the latter does not have to recalculate them (deletion of the module 603 of FIG. 6 and reception of the probability tables instead of the form factor α). Nevertheless, it is preferred to model the distribution of the signal and to transmit to the decoder only a few parameters (in particular the form factor α) which characterize the model, as previously described, in order to limit the quantity of data in the coded stream.

Claims

REVENDICATIONS
1. Procédé de traitement d'un signal pour un codage/décodage en compression du signal par plans de symboles, dans lequel des probabilités de valeurs de symboles sont déterminées pour au moins un plan (Pκ-i), caractérisé en ce que lesdites probabilités sont calculées dynamiquement, à partir d'une estimation (Mod) d'une distribution du signal (X).A method of processing a signal for encoding / decoding in compression of the signal by symbol planes, wherein probabilities of symbol values are determined for at least one plane (Pκ-i), characterized in that said probabilities are dynamically calculated from an estimate (Mod) of a signal distribution (X).
2. Procédé selon la revendication 1, dans lequel le signal est quantifié avant le codage, caractérisé en ce que l'estimation de la distribution du signal est menée sur le signal à coder (X), préférentiellement avant quantification.2. Method according to claim 1, wherein the signal is quantized before coding, characterized in that the estimation of the signal distribution is conducted on the signal to be coded (X), preferably before quantization.
3. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que l'estimation de distribution du signal comporte une modélisation de la distribution du signal (H), pour déduire au moins un paramètre (α) caractérisant un modèle (Mod) représentant une densité de probabilités (pdf) du signal.3. Method according to one of claims 1 and 2, characterized in that the distribution estimate of the signal comprises a modeling of the distribution of the signal (H), to derive at least one parameter (α) characterizing a model (Mod ) representing a density of probabilities (pdf) of the signal.
4. Procédé selon la revendication 3, caractérisé en ce que la modélisation est effectuée au codage (505), en ce que ledit paramètre (α) est communiqué en vue du décodage, et en ce que lesdites probabilités sont calculées, au codage (507) et au décodage (603), en fonction dudit paramètre (α).4. Method according to claim 3, characterized in that the modeling is performed at the coding (505), in that said parameter (α) is communicated for the purpose of decoding, and in that said probabilities are calculated, at the coding (507). ) and decoding (603) as a function of said parameter (α).
5. Procédé selon l'une des revendications 3 et 4, caractérisé en ce que le modèle est de type gaussien généralisé, et en ce que ledit paramètre est un facteur de forme (α).5. Method according to one of claims 3 and 4, characterized in that the model is generalized Gaussian type, and in that said parameter is a form factor (α).
6. Procédé selon l'une quelconque des revendications précédentes, dans lequel, le signal comportant une succession de valeurs (a,), chaque valeur (a,) est décomposée en une pluralité de valeurs de symboles (0 ; 1) dans une pluralité respective de plans de symboles (Pk), lesdites probabilités étant calculées pour au moins un plan (MSB) et visent chacune la probabilité d'avoir, dans ce plan, une valeur de symbole égale à un symbole donné, caractérisé en ce que lesdites probabilités sont calculées au moins pour le plan (MSB) représentant les valeurs de symboles les plus significatives.The method according to any one of the preceding claims, wherein, the signal comprising a succession of values (a,), each value (a,) is decomposed into a plurality of symbol values (0; 1) in a plurality respective symbol planes (P k ), said probabilities being calculated for at least one plane (MSB) and each aiming at the probability of having, in this plane, a symbol value equal to a given symbol, characterized in that said probabilities are calculated at least for the plane (MSB) ) representing the most significant symbol values.
7. Procédé selon la revendication 6, caractérisé en ce que lesdites probabilités sont calculées en outre pour d'autres plans (Pk), en tenant compte d'un contexte (C) défini par des valeurs de symboles prises dans des plans (Pk+i, Pk+2, • • -, Pκ-i) représentant des valeurs de symboles plus significatives.7. Method according to claim 6, characterized in that said probabilities are further calculated for other planes (Pk), taking into account a context (C) defined by symbol values taken in planes (Pk + i, Pk + 2, • • -, Pκ-i) representing more significant symbol values.
8. Procédé selon la revendication 7, caractérisé en ce que, pour une même position (z) de valeur de signal (a,) dans ladite succession de valeurs, chaque valeur de symbole prise dans un plan (Pk+i, Pk+2, • • -, Pκ-i) représentant une valeur de symbole plus significative qu'une valeur de symbole dans un plan courant (Pk), définit une valeur de contexte (C) pour ce plan courant (Pk) et pour cette position (z), et en ce que lesdites probabilités sont calculées pour le plan courant (Pk) en tenant compte d'une pluralité de valeurs possibles du contexte (C) pour le plan courant (Pk).8. Method according to claim 7, characterized in that, for the same signal value position (z) (a,) in said succession of values, each symbol value taken in a plane (Pk + i, Pk + 2 , • • -, Pκ-i) representing a symbol value more significant than a symbol value in a current plane (Pk), defines a context value (C) for this current plane (Pk) and for this position ( z), and in that said probabilities are calculated for the current plane (Pk) taking into account a plurality of possible values of the context (C) for the current plane (Pk).
9. Procédé selon la revendication 8, caractérisé en ce qu'on choisit un nombre limité de valeurs possibles du contexte (C).9. Method according to claim 8, characterized in that a limited number of possible values of the context (C) is chosen.
10. Procédé selon la revendication 9, caractérisé en ce que le nombre de valeurs possibles de contexte par plan de symboles est limité à deux :Method according to claim 9, characterized in that the number of possible context values per symbol plane is limited to two:
- une première valeur de contexte désignant l'occurrence d'au moins une valeur de symbole significative dans les plans (Pk+i, Pk+2, • • -, Pκ-i) représentant des valeurs de symboles plus significatives,a first context value designating the occurrence of at least one significant symbol value in the planes (Pk + i, Pk + 2, • • -, Pκ-i) representing more significant symbol values,
- une seconde valeur de contexte signifiant qu'aucune occurrence de valeur de symbole significative n'a été relevée dans les plans (Pk+i, Pk+2, • • -, Pκ-i) représentant des valeurs de symboles plus significatives. a second context value signifying that no significant symbol value occurrence has been found in the (Pk + i, Pk + 2, • • -, Pκ-i) planes representing more significant symbol values.
11. Codeur pour la mise en œuvre du procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte un module (505) d'estimation d'une distribution du signal à coder, alimentant un module (507) de calcul desdites probabilités de valeurs de symboles.11. Encoder for implementing the method according to one of the preceding claims, characterized in that it comprises a module (505) for estimating a distribution of the signal to be encoded, supplying a module (507) calculation said probabilities of symbol values.
12. Décodeur pour la mise en œuvre du procédé selon l'une des revendications 1 à 10, caractérisé en ce qu'il comporte un module (603) de calcul desdites probabilités de valeurs de symboles, à partir d'une estimation (α) d'une distribution du signal.12. Decoder for implementing the method according to one of claims 1 to 10, characterized in that it comprises a module (603) for calculating said probabilities of symbol values, from an estimate (α) of a signal distribution.
13. Décodeur selon la revendication 12, pour la mise en œuvre du procédé selon la revendication 4, caractérisé en ce que ledit module (603) de calcul desdites probabilités de valeurs de symboles est alimenté par au moins un paramètre (α) caractérisant le modèle de densité de probabilités du signal avant codage, ledit paramètre étant reçu par le décodeur.13. Decoder according to claim 12, for implementing the method according to claim 4, characterized in that said module (603) for calculating said probabilities of symbol values is fed by at least one parameter (α) characterizing the model. probability density of the signal before coding, said parameter being received by the decoder.
14. Programme informatique destiné à être stocké dans une mémoire d'un codeur selon la revendication 11 ou d'un décodeur selon l'une des revendications 12 et 13, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé selon l'une des revendications 1 à 10, lorsqu'il est exécuté par un processeur du codeur ou du décodeur. 14. Computer program intended to be stored in a memory of an encoder according to claim 11 or a decoder according to one of claims 12 and 13, characterized in that it comprises instructions for the implementation of the method according to one of claims 1 to 10, when executed by a processor of the encoder or decoder.
EP08828177A 2007-08-24 2008-07-25 Encoding/decoding by symbol planes with dynamic calculation of probability tables Withdrawn EP2183851A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0706001 2007-08-24
PCT/FR2008/051412 WO2009027606A1 (en) 2007-08-24 2008-07-25 Encoding/decoding by symbol planes with dynamic calculation of probability tables

Publications (1)

Publication Number Publication Date
EP2183851A1 true EP2183851A1 (en) 2010-05-12

Family

ID=38920619

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08828177A Withdrawn EP2183851A1 (en) 2007-08-24 2008-07-25 Encoding/decoding by symbol planes with dynamic calculation of probability tables

Country Status (5)

Country Link
US (1) US20110116542A1 (en)
EP (1) EP2183851A1 (en)
JP (1) JP4981174B2 (en)
CN (1) CN101842988B (en)
WO (1) WO2009027606A1 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700410B2 (en) * 2009-06-18 2014-04-15 Texas Instruments Incorporated Method and system for lossless value-location encoding
KR20100136890A (en) * 2009-06-19 2010-12-29 삼성전자주식회사 Apparatus and method for arithmetic encoding and arithmetic decoding based context
PT2491553T (en) 2009-10-20 2017-01-20 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an iterative interval size reduction
US7978101B2 (en) * 2009-10-28 2011-07-12 Motorola Mobility, Inc. Encoder and decoder using arithmetic stage to compress code space that is not fully utilized
MX2012008075A (en) * 2010-01-12 2013-12-16 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a modification of a number representation of a numeric previous context value.
WO2013026196A1 (en) * 2011-08-23 2013-02-28 Huawei Technologies Co., Ltd. Estimator for estimating a probability distribution of a quantization index
EP3174295B1 (en) * 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
CN115442626A (en) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 Video data stream, encoder, method of encoding video content and decoder
FR3005816B1 (en) * 2013-05-17 2019-11-29 Jean-Claude Colin METHOD FOR ENCODING, ESPECIALLY COMPRESSED IMAGES, IN PARTICULAR BY "RANGE CODER" OR ARITHMETIC COMPRESSION.
EP3252758B1 (en) * 2015-01-30 2020-03-18 Nippon Telegraph and Telephone Corporation Encoding apparatus, decoding apparatus, and methods, programs and recording media for encoding apparatus and decoding apparatus
CN106157960A (en) * 2015-04-14 2016-11-23 杜比实验室特许公司 The self adaptation arithmetic coding/decoding of audio content
GB2559200A (en) 2017-01-31 2018-08-01 Nokia Technologies Oy Stereo audio signal encoder
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
WO2019091576A1 (en) * 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
CA3101091A1 (en) * 2018-06-06 2019-12-12 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN112398484B (en) 2019-08-15 2024-04-23 华为技术有限公司 Coding method and related equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004042933A1 (en) * 2002-10-24 2004-05-21 Agency For Science, Technology And Research A method and a device for processing bit symbols generated by a data source; a computer readable medium; a computer program element
WO2006075901A1 (en) * 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3684128B2 (en) * 2000-02-18 2005-08-17 キヤノン株式会社 Arithmetic encoding / decoding method and arithmetic encoding / decoding device
JP4254017B2 (en) * 2000-03-10 2009-04-15 ソニー株式会社 Image coding apparatus and method
JP4039609B2 (en) * 2002-03-18 2008-01-30 株式会社Kddi研究所 Image coding apparatus and moving picture coding apparatus using the same
JP4195978B2 (en) * 2003-02-10 2008-12-17 パナソニック株式会社 Video signal encoding apparatus and method, and recording medium
KR100561869B1 (en) * 2004-03-10 2006-03-17 삼성전자주식회사 Lossless audio decoding/encoding method and apparatus
KR101237413B1 (en) * 2005-12-07 2013-02-26 삼성전자주식회사 Method and apparatus for encoding/decoding audio signal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004042933A1 (en) * 2002-10-24 2004-05-21 Agency For Science, Technology And Research A method and a device for processing bit symbols generated by a data source; a computer readable medium; a computer program element
WO2006075901A1 (en) * 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US20110116542A1 (en) 2011-05-19
JP2010537533A (en) 2010-12-02
JP4981174B2 (en) 2012-07-18
CN101842988B (en) 2013-08-14
CN101842988A (en) 2010-09-22
WO2009027606A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
EP2183851A1 (en) Encoding/decoding by symbol planes with dynamic calculation of probability tables
EP2104936B1 (en) Low-delay transform coding using weighting windows
EP1581930B1 (en) Method for encoding and decoding audio at a variable rate
US7609904B2 (en) Transform coding system and method
EP2732448B1 (en) Adaptations of analysis or synthesis weighting windows for transform coding or decoding
WO2005083889A1 (en) Dimensional vector and variable resolution quantisation
EP1997103B1 (en) Method of coding a source audio signal, corresponding coding device, decoding method and device, signal, computer program products
JP2002135131A (en) Method and apparatus for performing variable-size vector entropy coding
WO2009010674A1 (en) Hierarchical coding of digital audio signals
EP2289171B1 (en) Method for processing numerical data
EP2769378A2 (en) Improved hierarchical coding
WO2005066936A1 (en) Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression
EP2232489B1 (en) Transform-based coding/decoding, with adaptive windows
WO2007107659A2 (en) Restrained vector quantisation
EP2652735B1 (en) Improved encoding of an improvement stage in a hierarchical encoder
WO2005008886A2 (en) Digital image context compression
WO2009047461A1 (en) Transmission error dissimulation in a digital signal with complexity distribution
EP2289172B1 (en) Method for enumeration of vectors in a regular lattice of points
EP2171713B1 (en) Coding of digital audio signals
EP2126904B1 (en) Audio encoding method and device
WO2007091000A2 (en) Method for coding a source audio signal and corresponding computer program products, coding device, decoding method, signal and data medium
WO2006108736A1 (en) Method and device for progressive quantization, method and device for inverse quantization, corresponding computer programmes, signal and data support
FR2778039A1 (en) Method of encoding digital images
WO2015145050A1 (en) Estimation of encoding noise created by compressed micda encoding
FR2773927A1 (en) Digital image signal encoding and decoding technique for signal compression

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20100217

AK Designated contracting states

Kind code of ref document: A1

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

AX Request for extension of the european patent

Extension state: AL BA MK RS

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

17Q First examination report despatched

Effective date: 20150909

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

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20170929