WO2009027606A1 - Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites - Google Patents

Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites Download PDF

Info

Publication number
WO2009027606A1
WO2009027606A1 PCT/FR2008/051412 FR2008051412W WO2009027606A1 WO 2009027606 A1 WO2009027606 A1 WO 2009027606A1 FR 2008051412 W FR2008051412 W FR 2008051412W WO 2009027606 A1 WO2009027606 A1 WO 2009027606A1
Authority
WO
WIPO (PCT)
Prior art keywords
plane
signal
probabilities
symbol
values
Prior art date
Application number
PCT/FR2008/051412
Other languages
English (en)
Inventor
Marie Oger
Thi Minh Nguyet Hoang
Stéphane RAGOT
Marc Antonini
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to EP08828177A priority Critical patent/EP2183851A1/fr
Priority to US12/674,885 priority patent/US20110116542A1/en
Priority to JP2010521456A priority patent/JP4981174B2/ja
Priority to CN2008801135935A priority patent/CN101842988B/zh
Publication of WO2009027606A1 publication Critical patent/WO2009027606A1/fr

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

L'invention concerne un codage arithmétique par plans de bits (MSB,..., LSB), dans lequel on utilise des tables de probabilités d'avoir un bit à 0 ou à 1 pour le codage de chaque plan de bits. Selon l'invention, ces tables de probabilités sont calculées dynamiquement, pour chaque trame de signal, à partir d'un modèle (Mod) de densité de probabilités correspondant à la distribution (H) du signal (X) sur chaque trame.

Description

Codage/décodage par plans de symboles, avec calcul dynamique de tables de probabilités
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.
Art antérieur
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.
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.
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.
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 ] ,
- 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ι • • • % ] ,
- 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 :
- 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.
La référence 205 illustre le canal de transmission du codeur au décodeur, qui peut éventuellement appliquer une troncature du train binaire.
Ainsi, en partant du signal adapté, à coder, X = [X1 • • • xN ] , la quantification scalaire
(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 :
Figure imgf000005_0001
puis à décomposer les valeurs absolues sous forme binaire, avec : α! = Bκ.1! ) 2κ-1 + - Bk! )2k + ... + B1! ) 21 + B0! ) 2° , où :
Bk ((Z1 ) est le keme bit de la décomposition binaire de la valeur absolue a, de la composante quantifiée Y1, et
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 :
Figure imgf000005_0002
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).
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 :
"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.
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).
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.
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.
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 :
Pk = Pk , S = S et donc Y = Y
Dans la suite du document, pour la clarté de l'exposé, on suppose qu'il n'y a pas d'erreurs binaires.
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] .
Le vecteur Pk représente alors un plan de bits de poids k . Le plan de bits supérieur
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).
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).
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 :
"An introduction to arithmetic coding", G. C. Langdon, IBM J. Res. Dev. 28, 2, p.135-149 (Mars 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 symboles
(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.
Présentation de l'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.
Au sens de l'invention, ces probabilités sont calculées dynamiquement, à partir d'une estimation d'une distribution du 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).
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.
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.
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 :
- 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,
- 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.
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.
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 :
"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
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ée
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é.
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.
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.
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 Cosine
Transform") et de mise en forme fréquentielle,
- 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.
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).
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.
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,
- 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.
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é.
On détaille ci-après le fonctionnement de ce module 505.
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.
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.
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.
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 :
Figure imgf000017_0001
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 :
. . 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
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.
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 :
Figure imgf000018_0001
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.
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.
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(α, ) .
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.
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").
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.
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.
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.
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.
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
Figure imgf000020_0001
y p(Bk (α)=0) pour plus de commodité dans l'écriture des équations.
La relation qui permet d'avoir la probabilité d'avoir le symbole 0 dans le plan Pk est
, , p(bk = 0,α ≤ M) alors donnée par : p (bk = 0 | a ≤ M) = ,
où bk et M sont respectivement : - une variable aléatoire représentant un bit quelconque dans le plan Pk, et
- 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.
M
La probabilité p (α ≤ M) est définie par : p (a ≤ M) = V p(α) . α=-M
M
La probabilité p (bk = 0, a ≤ M) est définie par : p (bk = 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) :
1 M 1 M
PM (K=O) =- x £ p(Bk (α)=0) = - x £ p(α)xδBk(fl) o
£ p(β) a-=-M £ p(β) ^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.
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.
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)
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.
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").
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).
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 plan
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.
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.
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).
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.
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".
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).
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.
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+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.
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.
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.
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).
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.
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 :
K-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 :
K-I cκn = ∑ B j (n) 2J - avec 0 < n < 2κ"k et pour tout 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 :
P(Ck (α) = c,J = p(Bk+1 (α) = Bk+1 (n))xp(Ck+1 (α) = H p(Bj Ia) = B^n))
Figure imgf000027_0001
Figure imgf000027_0002
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.
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 :
Figure imgf000027_0003
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.) :
Figure imgf000028_0001
La probabilité pM (ck = ckn ) , pour k <K-1, est définie par la relation :
Figure imgf000028_0002
La probabilité pM (bk = 0,ck = ckn ) , pour k <K-1, est quant à elle définie par la relation :
Figure imgf000028_0003
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 :
Figure imgf000028_0004
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 :
Figure imgf000029_0001
Inversement, la probabilité d'avoir un bit égal à 1 dans le plan Po, sachant que le contexte est "00", est donnée par :
pM (b0 = l|c0 = 00) = l -pM (b0 = 0|c0 = 00) = 1 - Pk = O)
P (U1 = O) H-P ^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 plan
LSB, on fixe au contraire un nombre maximum de contextes associés à un seul bit (0 ou 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).
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 :
PM (C, = 0) = p(α, = 0) + p(α, = l) + 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) .
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 :
. fl s'il existe B. (α) = l pour j = k + l,... K-I
Ck (α) = 1
[0 autrement
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) =
Figure imgf000031_0001
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 :
où Ck est une variable aléatoire représentant le contexte associé à un bit bk quelconque dans le plan Pk .
La probabilité pM (ck = 0) , pour k <K-1, est donnée par la relation :
Figure imgf000031_0002
La probabilité p(bk = 0,ck = 0) , pour k <K-1, est définie quant à elle par la relation
MM
PM (bk = 0,ck = 0) = - -X
M £ [p(Bk (α) = 0)xp(Ck (α) = 0)]
∑ V(fl) a,=-M a=-M
Figure imgf000031_0003
On a donc la probabilité conditionnelle pour k<K-l qui est donc définie par : PM (bk = 0|ck = 0) =
Figure imgf000032_0001
On indique qu'il est possible de calculer aussi pM (bk = 0 ck = l) de façon semblable.
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.
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).
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.
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.
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.
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).
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.
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.
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.
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é.

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).
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.
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.
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 (α).
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 (α).
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.
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.
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).
9. Procédé selon la revendication 8, caractérisé en ce qu'on choisit un nombre limité de valeurs possibles du contexte (C).
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 :
- 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,
- 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.
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.
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.
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.
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.
PCT/FR2008/051412 2007-08-24 2008-07-25 Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites WO2009027606A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP08828177A EP2183851A1 (fr) 2007-08-24 2008-07-25 Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
US12/674,885 US20110116542A1 (en) 2007-08-24 2008-07-25 Symbol plane encoding/decoding with dynamic calculation of probability tables
JP2010521456A JP4981174B2 (ja) 2007-08-24 2008-07-25 確率テーブルの動的な計算によるシンボルプレーン符号化/復号化
CN2008801135935A CN101842988B (zh) 2007-08-24 2008-07-25 基于概率表动态计算的符号平面编码/解码

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0706001 2007-08-24
FR0706001 2007-08-24

Publications (1)

Publication Number Publication Date
WO2009027606A1 true WO2009027606A1 (fr) 2009-03-05

Family

ID=38920619

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2008/051412 WO2009027606A1 (fr) 2007-08-24 2008-07-25 Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites

Country Status (5)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2462698A1 (fr) * 2009-10-28 2012-06-13 Motorola Mobility, Inc. Codeur et décodeur utilisant un niveau arithmétique pour comprimer l'espace de code qui n'est pas entièrement utilisé
CN102792370A (zh) * 2010-01-12 2012-11-21 弗劳恩霍弗实用研究促进协会 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法、解码音频信息的方法及计算机程序
US9978380B2 (en) 2009-10-20 2018-05-22 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9245529B2 (en) * 2009-06-18 2016-01-26 Texas Instruments Incorporated Adaptive encoding of a digital signal with one or more missing values
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
EP2734942A4 (fr) * 2011-08-23 2014-06-04 Huawei Tech Co Ltd Estimateur permettant d'estimer une distribution de probabilités d'un indice de quantification
PT2842313T (pt) 2012-04-13 2016-12-22 Ge Video Compression Llc Fluxo de dados escaláveis e entidade de rede
EP2868103B1 (fr) 2012-06-29 2016-12-07 GE Video Compression, LLC Concept de flux de données vidéo
FR3005816B1 (fr) * 2013-05-17 2019-11-29 Jean-Claude Colin Procede pour encoder, notamment des images compressees, notamment par "range coder" ou compression arithmetique.
JP6387117B2 (ja) * 2015-01-30 2018-09-05 日本電信電話株式会社 符号化装置、復号装置、これらの方法、プログラム及び記録媒体
CN106157960A (zh) * 2015-04-14 2016-11-23 杜比实验室特许公司 音频内容的自适应算术编解码
GB2559200A (en) 2017-01-31 2018-08-01 Nokia Technologies Oy Stereo audio signal encoder
WO2019091573A1 (fr) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Appareil et procédé de codage et de décodage d'un signal audio utilisant un sous-échantillonnage ou une interpolation de paramètres d'échelle
EP3483879A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Fonction de fenêtrage d'analyse/de synthèse pour une transformation chevauchante modulée
EP3483884A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Filtrage de signal
WO2019091576A1 (fr) * 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codeurs audio, décodeurs audio, procédés et programmes informatiques adaptant un codage et un décodage de bits les moins significatifs
EP3483882A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Contrôle de la bande passante dans des codeurs et/ou des décodeurs
EP3483886A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sélection de délai tonal
EP3483880A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Mise en forme de bruit temporel
EP3483878A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Décodeur audio supportant un ensemble de différents outils de dissimulation de pertes
EP3483883A1 (fr) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage et décodage de signaux audio avec postfiltrage séléctif
WO2019235366A1 (fr) * 2018-06-06 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Procédé de codage de données tridimensionnelles, procédé de décodage de données tridimensionnelles, dispositif de codage de données tridimensionnelles et dispositif de décodage de données tridimensionnelles
CN112398484B (zh) * 2019-08-15 2024-04-23 华为技术有限公司 一种编码方法及相关设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3684128B2 (ja) * 2000-02-18 2005-08-17 キヤノン株式会社 算術符号化/復号化方法ならびに算術符号化/復号化装置
JP4254017B2 (ja) * 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
JP4039609B2 (ja) * 2002-03-18 2008-01-30 株式会社Kddi研究所 画像符号化装置およびこれを利用した動画像符号化装置
WO2004042933A1 (fr) * 2002-10-24 2004-05-21 Agency For Science, Technology And Research Procede et dispositifs de traitement de symboles binaires generes par une source de donnees, support lisible par un ordinateur, element de programme d'ordinateur
JP4195978B2 (ja) * 2003-02-10 2008-12-17 パナソニック株式会社 映像信号符号化装置及び方法及び記録媒体
KR100561869B1 (ko) * 2004-03-10 2006-03-17 삼성전자주식회사 무손실 오디오 부호화/복호화 방법 및 장치
WO2006075901A1 (fr) * 2005-01-14 2006-07-20 Sungkyunkwan University Procedes et dispositifs de codage et de decodage entropique adaptatif pour codage video adaptatif
KR101237413B1 (ko) * 2005-12-07 2013-02-26 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
HOWARD P G ET AL: "ARITHMETIC CODING FOR DATA COMPRESSION", PROCEEDINGS OF THE IEEE, IEEE. NEW YORK, US, vol. 82, no. 6, 1 June 1994 (1994-06-01), pages 857 - 865, XP000438336, ISSN: 0018-9219 *
LANGDON G: "An introduction to arithmetic coding", IBM JOURNAL OF RESEARCH AND DEVELOPMENT, INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK, NY, US, vol. 28, no. 2, March 1984 (1984-03-01), pages 135 - 149, XP002086019, ISSN: 0018-8646 *
M. OGER ET AL.: "Transform Audio Coding with Arithmetic-Coded Scalar Quantization and Model-Based Bit Allocation", IEEE INT. CONF. ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING ICASSP 2007, 15 April 2007 (2007-04-15) - 20 April 2007 (2007-04-20), pages IV-545 - IV-548, XP002464925 *
See also references of EP2183851A1 *
WITTEN I H ET AL: "ARITHMETIC CODING FOR DATA COMPRESSION", COMMUNICATIONS OF THE ASSOCIATION FOR COMPUTING MACHINERY, ACM, NEW YORK, NY, US, vol. 30, no. 6, 1 June 1987 (1987-06-01), pages 520 - 540, XP000615171, ISSN: 0001-0782 *
YU R ET AL: "Improving Coding Efficiency for MPEG-4 Audio Scalable Lossless Coding", ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 2005. PROCEEDINGS. (ICASSP '05). IEEE INTERNATIONAL CONFERENCE ON PHILADELPHIA, PENNSYLVANIA, USA MARCH 18-23, 2005, PISCATAWAY, NJ, USA,IEEE, 18 March 2005 (2005-03-18), pages 169 - 172, XP010792356, ISBN: 0-7803-8874-7 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9978380B2 (en) 2009-10-20 2018-05-22 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
US11443752B2 (en) 2009-10-20 2022-09-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values
EP2462698A1 (fr) * 2009-10-28 2012-06-13 Motorola Mobility, Inc. Codeur et décodeur utilisant un niveau arithmétique pour comprimer l'espace de code qui n'est pas entièrement utilisé
CN102687403A (zh) * 2009-10-28 2012-09-19 摩托罗拉移动公司 使用算术阶段压缩未充分利用的代码空间的编码器和解码器
KR101353170B1 (ko) 2009-10-28 2014-01-17 모토로라 모빌리티 엘엘씨 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더
EP3065301A1 (fr) * 2009-10-28 2016-09-07 Google Technology Holdings LLC Codeur et décodeur utilisant un niveau arithmétique pour comprimer l'espace de code qui n'est pas entièrement utilisé
CN102792370A (zh) * 2010-01-12 2012-11-21 弗劳恩霍弗实用研究促进协会 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法、解码音频信息的方法及计算机程序
US9633664B2 (en) 2010-01-12 2017-04-25 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. 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

Also Published As

Publication number Publication date
CN101842988B (zh) 2013-08-14
JP2010537533A (ja) 2010-12-02
CN101842988A (zh) 2010-09-22
US20110116542A1 (en) 2011-05-19
JP4981174B2 (ja) 2012-07-18
EP2183851A1 (fr) 2010-05-12

Similar Documents

Publication Publication Date Title
WO2009027606A1 (fr) Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
EP2104936B1 (fr) Codage par transformee, utilisant des fenetres de ponderation et a faible retard
US7609904B2 (en) Transform coding system and method
EP1581930B1 (fr) Procede de codage et de decodage audio a debit variable
EP2732448B1 (fr) Adaptations de fenêtres de pondération d&#39;analyse ou de synthèse pour un codage ou décodage par transformée
WO2005083889A1 (fr) Quantification vectorielle en dimension et resolution variables
JP2002135131A (ja) 可変サイズベクトルエントロピ符号化を実行するための方法および装置
WO2007104889A1 (fr) Procede de codage d&#39;un signal audio source, dispositif de codage, procede et dispositif de decodage, signal, produits programme d&#39;ordinateur correspondants
WO2009010674A1 (fr) Codage hierarchique de signaux audionumeriques
WO2005066936A1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
WO2013057453A2 (fr) Codage hierarchique perfectionne
EP2232489B1 (fr) Codage/decodage par transformee, a fenetres adaptatives
WO2007107659A2 (fr) Quantification vectorielle contrainte
EP2652735B1 (fr) Codage perfectionne d&#39;un etage d&#39;amelioration dans un codeur hierarchique
WO2005008886A2 (fr) Compression contextuelle d&#39;images numeriques
EP2203915A1 (fr) Dissimulation d&#39;erreur de transmission dans un signal numerique avec repartition de la complexite
FR2597282A1 (fr) Procede de quantification dans un codage par transformation pour la transmission de signaux d&#39;image
EP2126904B1 (fr) Procede et dispositif de codage audio
EP1982330A2 (fr) Procede de codage d&#39;un signal audio source, dispositif de codage, procede de decodage, signal, support de donnees, produits programme d&#39;ordinateur correspondants
WO2006108736A1 (fr) Procédé et dispositif de quantification progressive, procédé et dispositif de quantification inverse, programmes informatiques, signal et support de données correspondants
FR2778039A1 (fr) Codage et decodage de signal numerique
WO2015145050A1 (fr) Estimation d&#39;un bruit de codage introduit par un codage en compression de type micda
FR2773927A1 (fr) Codage et decodage de signal numerique
FR2953089A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un signal numerique
FR2927486A1 (fr) Procedes de codage et de decodage d&#39;un histogramme et d&#39;un signal de valeurs dont la distribution est representee par l&#39;histogramme, et systemes associes

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880113593.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08828177

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008828177

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2010521456

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 359/MUMNP/2010

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 12674885

Country of ref document: US