EP1527521B1 - Device and method for robust decoding of arithmetic codes - Google Patents
Device and method for robust decoding of arithmetic codes Download PDFInfo
- Publication number
- EP1527521B1 EP1527521B1 EP03755610.7A EP03755610A EP1527521B1 EP 1527521 B1 EP1527521 B1 EP 1527521B1 EP 03755610 A EP03755610 A EP 03755610A EP 1527521 B1 EP1527521 B1 EP 1527521B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- state
- model
- source
- stream
- arithmetic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 75
- 230000007704 transition Effects 0.000 claims description 42
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000013138 pruning Methods 0.000 description 20
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 13
- 238000009826 distribution Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 230000004907 flux Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000013144 data compression Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004870 electrical engineering Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000002655 kraft paper Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 241000135309 Processus Species 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the invention relates to the compression / decompression of digital data, especially for multimedia signals (audio, image, video, speech), and the robust transmission of these data over noisy networks, such as wireless networks, mobile communications.
- variable length codes for example the codes of Huffman.
- PROCEEDINGS SALT LAKE CITY, UT, USA, 7-11 MAY 2001, 2657-2660 vol.4, XP002267571, 2001, Piscataway, NJ, USA, IEEE, USA, ISBN: 0-7803-7041-4 describes an iterative method of source-channel joint decoding inspired by the turbo codes in which the three models of the coding chain, ie a model of the source of symbols, a model of the source coder and a model of the channel coder, are used alternately.
- the present invention proposes advances in this direction.
- the invention also relates to an arithmetic or quasi-arithmetic decoding device corresponding to the method.
- a multimedia signal compression system uses statistical codes also called variable length codes. These allow to obtain speeds approaching what the specialists call “the entropy of the signal”.
- the most used codes in existing systems are the Huffman codes that have been described in the following book: DA Huffman: "A method for the construction of minimum redundancy codes", Proc. IRE, 40 (1951), p.1098-1101 .
- the first generation standards H.261, H.263, MPEG-1, MPEG-2 have incorporated synchronization markers into the syntax of the transmitted bitstream. These are long code words (16 or 22 bits consisting of a sequence of 15 or 21 bits to '1' followed by a '0') not emulable by errors occurring on the other code words and which can therefore be recognized by the decoder with a probability close to '1'.
- this symmetry of the code makes it possible to confine the propagation of errors on a segment in the middle of the packet instead of propagating it until the end of the packet delimited by a synchronization marker.
- the symmetry of the code generates a loss in compression efficiency with respect to a Huffman code of the order of 10%.
- reversible variable length codes do not completely avoid the problem of error propagation: if an error occurs at the beginning and at the end of a packet, the whole packet may be wrong.
- the disclosed invention relates in particular to an encoder / decoder device for a family of codes widely used in compression systems such as arithmetic type codes comprising arithmetic codes and quasi-arithmetic codes.
- sequence designates a stream or a sequence of elements.
- a sequence of bits or symbols will designate a stream or a sequence of bits, or symbols respectively.
- This conversion uses a source model described below comprising a correspondence between the source M-area A and the binary source S.
- the length N of this bit stream is a random variable, a function of S, the sequence of binary symbols, itself a function of A, the sequence of M -ary symbols.
- the train of first bits U is transmitted, by way of example only, on a channel without memory.
- This first bit stream U is received as a stream of second bits Y due to errors introduced during transmission over the communication channel.
- the lower layers of the communication system make it possible to determine at least the current properties Ic of the communication channel, for example the error rate introduced by the channel into the communicated bits, confidence measurements on bits received. These last measurements make it possible to estimate probabilities of receiving a second binary element knowing a first binary element communicated on the channel. These probabilities are estimated as shown in the appendix (equation 21 with the index i being an integer) from one of the current properties Ic of the channel: p, the probability of error on the channel.
- Product model 7 is derived from source model 8 and transfer model 9 or 10.
- the product model can be dynamically constructed from the source model and transfer models 9 or 10. In another possible realization , the product model can be implemented in the model module without being built dynamically.
- the transfer model comprises an encoding model 9 or a decoding model 10. This transfer model makes it possible to establish a correspondence between binary symbols and first bits, as a function of probabilities associated with binary symbols.
- these models can be pre-calculated and stored in a module external to the decoder model module. They can also be used remotely, for example by using an Ethernet-type local network or a wider Internet-type network.
- the processing module 6 is adapted to calculate x-area symbol probabilities, knowing the bits of the second bit stream, from the properties Ic of the channel, the source model and the product model.
- the processing module 6 is adapted to reconstruct the most likely x-ary symbol stream from these calculated probabilities and to reconstruct the flow of M-ary symbols from the source model if a flow of M-ary symbols has been code.
- the figure 2 illustrates an example of a coding method that can use the insertion of synchronization markers. This method is implemented in an encoder receiving as input a source (M-ary), for example a data sequence.
- M-ary for example a data sequence.
- step 100 when the data sequence does not require M-ary markers, the process proceeds to step 104. If, on the contrary, M-ary markers are to be inserted into the data sequence, the frequency , the size and the value of these markers are provided by the encoder to perform the insertion of these markers in step 102.
- step 104 it is checked whether the data sequence (including or not synchronization markers) requires an M-ary / binary conversion. If this is not the case, then the data sequence is binary and is subject to arithmetic coding (quasi-arithmetic in the example of the figure) in step 112. Otherwise, the M-ary / binary conversion of the sequence is carried out at step 106. In step 108, if bit markers are to be inserted, the frequency, size and value of these markers are provided by the encoder to effect the insertion of these markers at step 110.
- step 112 the M-ary or binary data sequence is subjected to quasi-arithmetic coding whose complexity is controlled by the parameter T. If T is large, the quasi-arithmetic coding becomes identical to an arithmetic coding. This results in a -maximal compression of the bit data sequence into a bit stream.
- the figure 3 illustrates an example of a decoding method taking into account the synchronization markers inserted.
- This method is implemented in a decoder receiving as input the bitstream and information concerning the source M-ary or x-ary (in particular binary), the frequency, the size and the value of the possible synchronization markers.
- step 1208 it is checked whether the data sequence obtained after decoding requires a binary / M-ary conversion.
- step 130 it is checked whether the data sequence comprises binary markers. If so, these markers are removed in step 132 using the information on their frequency and size. After step 130 or step 132, the data sequence is subjected to binary / M-ary conversion in step 134.
- step 128 or 134 it is checked whether the data sequence comprises M-ary markers in step 136. If this is not the case, the decoding of the data (or source) sequence is finished. otherwise, the markers are deleted in step 138 to obtain the data (or source) sequence.
- FIGS. 4 to 5 illustrate source models for the M-ary / binary and binary / M-ary conversion of a data (or source) sequence.
- the Figure 4A illustrates the binary representation of the 4 symbols of a 4-ary source, that is to say a source taking value in a 4-ary alphabet.
- this tree can be represented by a correspondence table.
- the black node is called the root of the tree
- the white nodes are the intermediate nodes
- the gray nodes are called leaves of the tree.
- the probabilities P of each M-ary symbol correspond to the stationary probabilities of the source.
- the transition probabilities (not shown) on the branches of this binary tree are calculated from the stationary probabilities.
- the Figure 4B represents the automaton for converting the sequence of independent M-ary symbols into a sequence of binary symbols.
- the probabilities of each x-ary symbol (here, binary symbol) are indicated on the corresponding transitions.
- a complete model of the source is obtained by connecting successive local models as indicated on the Figure 5A .
- a local model corresponds to a source model for a flow comprising a symbol as illustrated on the Figure 4A .
- the complete model of the source consists of identifying the leaves of the first binary tree with the root of the next tree, root represented by a black node on the Figures 5A and 5B .
- the Figure 5A thus combines binary trees between them.
- the Figure 5B combines a first binary tree with corresponding automata taking as initial and final state the leaves of the binary tree. This automaton makes it possible to convert a sequence of dependent M-ary symbols into a sequence of binary symbols.
- C k states define the possible nodes which can be in the machine after the production of k binary symbols.
- This set of possible nodes is symbolized in the figure by a mixed line connecting the nodes of the same state k.
- the sequence C 0 ,..., C K is a Markov chain and the flow of corresponding binary symbols is a function of the transitions of this chain.
- the transitions called S k since they generate the emission of the binary symbols S k represent the set of possible transitions between the set of states C k-1 and the set of states C k of the source model.
- the arithmetic coding makes it possible, for a sequence of binary symbols, to determine the interval of this sequence .
- the latter represents a segment of the unit interval and its lower bound is derived from the sum of the probabilities of the symbol sequences corresponding to the lower subintervals.
- the width of this interval is given by the probability of the sequence of symbols corresponding to this interval.
- the "interval current" is the interval corresponding to a part of the sequence and therefore to the state C k current of this part of sequence, when calculating the interval or sub-segment associated with the sub-sequence corresponding to the state C k .
- the principle of arithmetic coding can be modeled by a stochastic automaton whose states E are defined by three variables: low, up and n scl the number of rescaling.
- the disadvantage of this coding is that there can be a very large number of states if the stationary distribution of the source is not known a priori or if the stream comprises a large number of x-ary symbols.
- Quasi-arithmetic coding also known as low-precision arithmetic coding, reduces the number of possible states without significant loss of compression efficiency, as described in [4].
- the real interval [0,1 [ is replaced by the integer interval [0, T [.
- T makes it possible to control the compromise between the complexity and the compression efficiency: if T is large, then the subdivisions of the interval will represent precisely the distribution of the source. On the other hand, if T is small (close to 1), all the possible subdivisions of the interval can be pre-calculated, these subdivisions will represent only an approximation of the distribution of the source.
- a sequence S 1 K of binary symbols is converted a bit stream U 1 N by a binary tree.
- This tree can be seen as an automaton or an encoder model that models the distribution of the bitstream.
- the encoding of a symbol determines the choice of an arc of the tree, to which the transmission of bits can be associated.
- Each node corresponds to a state E of the arithmetic coder. The successive transitions between these states follow the distribution of the source P (S k
- E k be the state of the automaton at each "symbol instant" k.
- the state E k of the quasi-arithmetic encoder is defined by three variables: lowS k , upS k and nscl k .
- the terms lowS k and upS k denote the bounds of the interval resulting from successive subdivisions of [0, T [corresponding to the coding of the sequence S 1 K.
- the quantity nscl k is reset every time a bit is issued and incremented each time a rescaling without bit transmission is performed. It therefore represents the number of rescaling done since the last bit transmission. When a bit is sent, it is followed by nscl k bits of opposite value.
- T 4 for a binary source.
- the number of states can be further reduced by identifying the binary symbols as "less likely” (LPS) and “more likely” (MPS) in column C3, rather than 0 and 1 in column C2. This amounts to considering the probability of each binary symbol rather than the value of the binary symbol, the MPS and LPS being able to correspond either to a bit 0 or to a bit 1.
- LPS low likely
- MPS more likely
- the sequence E 0 ... E K of successive states of the quasi-arithmetic encoder forms a Markov chain and the outputs of the encoder are functions of the transitions on this chain.
- the decoding can be modeled by a stochastic automaton with a number of states E n finite as presented on the table 2.
- the state of an arithmetic decoder is defined by two intervals: [lowU n , upU n [and [lowS Kn , upS Kn [.
- An encoder and an arithmetic decoder are not synchronized. Indeed, in coding, the reception of a symbol does not necessarily lead to the emission of a bit. Similarly, at decoding, reading a bit does not necessarily lead to the production of a symbol. Thus, if the reading of the first symbol of the sequence to be coded causes no bit transmission, it may be that at decoding, the reading of the first bit is sufficient to decode the first symbol. Both intervals are scaled as well as coded to avoid numerical accuracy problems.
- E n be the state of this automaton at the "bit time" n, that is, at the processing time of the received bit U n .
- This state is defined by the values of the intervals [lowU n , upU n [and [lowS Kn , upS Kn [.
- the current interval [lowS Kn , upS Kn will be subdivided into entire intervals.
- Various models are envisaged according to the invention for use in coding / decoding methods and for being implemented in the corresponding coders / decoders.
- a so-called "product" model that can be a model resulting from the product of the source and encoder models or a model resulting from the product of the source and decoder models.
- the states of the model produced must gather the information contained in the states of each of the two models (source and encoder or source and decoder).
- the size of the state space of the "product model" can not be known a priori. It can be calculated from the binary source model and the T parameter.
- a sequence of binary symbols S 1 K is converted into a sequence of bits U 1 N K , with N K the number of bits transmitted when K symbols have been coded.
- the product model specifies the bits U Nk-1 + 1 to U Nk which must be issued and the next state X k .
- transitions may not emit any bit.
- C k ) P (S k + 1
- the second bits Y Nk-1 + 1 to Y Nk are obtained at the output of the transmission channel when the first bits U Nk-1 + 1 to U Nk have been transmitted. These second bits are observations on the first bits.
- FIG. 6A An example of a product model derived from the source and encoder models is presented according to Figures 6 and 7 .
- the sample product model defines in the table of the Figure 6A comes from the product of the source model of the figure 4C and the encoder model of the table 1.
- the size of the state space resulting from this product is given by the product of the sizes of the state spaces of the two models (source and encoder).
- simplifications take place, which leads to a smaller number of states.
- One or the other of these figures can be used according to the probabilities of the binary source.
- the probabilities of the binary source, resulting from a conversion from an M-ary source depend on the state C k of the model of this binary source.
- the transitions of the source / encoder product model are thus a function of the distribution of the source.
- Column M1 of the Figure 6A contains only 4 states of the product model defined in column M2 by the state variables of the source model and the corresponding encoder.
- the model of the source having 3 states and that of the encoder having 2 states, the model produced will have at most 6 states. In practice, simplifications take place as explained below using Figures 7A and 7B .
- the number of symbols produced by each transition of the product model is random.
- the dependency structure between the second bit sequence and the decoded symbols is random.
- a sequence of bits U 1 N is converted into a sequence of symbols S 1 K NOT , with K N the number of symbols decoded when N bits have been received.
- the automaton Given a state X n and an input bit U n + 1 , the automaton produces the sequence of binary symbols S Kn + 1 Kn + 1 , and specifies the next state X n + 1 .
- the probabilities of transitions between (X n , K n ) and (X n + 1 , K n + 1 ) in the lattice depend on the binary source model. They are given by the formula in annex (17).
- simplifications of states of this model are possible depending on the model of the decoder and the source model used.
- the source model used is that of the figure 4C and the decoder model, that of table 2.
- Robust decoding methods for arithmetic codes are based on the dependency models described above.
- a first embodiment of the robust decoding method is illustrated by the figure 11 .
- the decoder receives as input the bitstream to be decoded.
- the source model, the variable N representing the number of received bits to be decoded and the probability P (U n / Y n ) of having transmitted a first bit (or first bit) U n knowing the second bit (or second element binary) Y n observed are data that the decoder has for input, that is to say that, by way of example only, this data can be received as input with the bitstream to be decoded or can be read in a memory accessible by the decoder.
- the probability P (U n / Y n ) can be obtained from the properties of the channel.
- the MAP (Maximum A Posteriori) criterion corresponds to the optimal Bayesian estimation of an X process from the available observations Y as indicated by equation (3), appendix 1. Optimization is performed for all "sequences" possible.
- this criterion is applied to the estimation of the hidden states of the processes (X, N), which can be considered as symbol clock processes, and processes (X, K), which can be considered as bit clock process, given the bit sequences observed.
- the estimate can be made either with bit clock or symbol clock. For reasons of simplicity of implementation, the bit clock estimate is preferred.
- the best sequence (X, K) can be obtained from the local probabilities on the pairs (X n , K n ) thanks to the equation (4).
- the trellis is first constructed using the source / decoder model of the Figure 9A for example, and the corresponding probabilities are calculated for each transition of the trellis.
- a forward pass allows the successive construction of the connected states by transitions of the state diagram produced from a state of origin to a final state.
- Each state defines an expected number of decoded symbols for a given number of bits passed from the stream of second bits from the original state.
- the latter probability is obtained from the properties of the channel.
- step 302 the back pass makes it possible to obtain the term P (Y N n + 1
- This term is calculated as the sum of the product of three conditional probabilities (equation (7)): the initialized recursive probability for all possible "last states" (X N , K N ), the transition probability between the states (X n + 1 , K n + 1 ) and (X n , K n ) given by the model produced and the probability of having emitted the bit U n + 1 triggering the transition between the states (X n + 1 , K n + 1 ) and (X n , K n ) knowing the second binary element Y n + 1 .
- this latter probability is obtained from the channel model.
- this backward pass makes it possible to calculate the probabilities P (Y N n + 1
- the backward pass comprises the successive deletion of the states of the state diagram produced, from the final state to the original state, for which the expected number of symbols for a given number of bits of the stream of second bits is different from a maximum known number of symbols.
- the first pass of step 300 starts at the initial state of the trellis and successively builds the different sections of the trellis. During this pass before, it is not possible to know which are the paths which do not respect the constraint of termination.
- step 304 the probabilities obtained from the forward and backward passes are combined in the form of a product for each value of n varying from 1 to N to obtain the probabilities P (X n , K n
- step 306 the product of equation (4) is performed on the probabilities P (X n , K n
- the lattice on which the estimate is made may be pre-calculated and stored from the source / decoder product model and the length N of the observed bit sequence. So, with reference to the figure 12 from the source / decoder model and the values of K and N, the lattice is constructed in step 400 in a forward pass and simplified by a backward pass at step 402. This lattice is stored in memory for be used at each bit stream arrival for which the source / decoder model and the K and N values are the same.
- This trellis comprises, at each state (X n , K n ), several couples values (X n , K n ).
- the pair (X 1 , K 1 ) can take the values (1, 1) or (2, 1) depending on whether the transmitted bit U 1 is 0 or 1.
- a forward pass and a backward pass are made on the bit stream at steps 404 and 406, for example in a parallel manner.
- X n , K n ) are calculated as indicated in equations (6) and (7).
- the product of these probabilities is carried out at step 408 for each value of n and corresponds to each transition of the trellis. It is then proceeded to calculate the product of the probabilities for n varying from 1 to N in step 410 as indicated in (4) to obtain probabilities P (X, K
- Y) is kept to determine the most likely path on the lattice and the corresponding symbol sequence.
- the most likely path (obtaining the highest probability P (X, K
- An optimal decoding method of quasi-arithmetic codes has been presented. This process requires the creation and manipulation of an estimation lattice, such as that of the figure 13 .
- the size of this lattice depends on the number of states of the source / decoder product model (4 states are possible for the product model source / decoder of the Figure 9A for example) and the amplitude of the values that the variable K n can take at each bit bit n.
- the number of states of the source / decoder product model is itself dependent on the binary source model and the precision parameter of the quasi-arithmetic coding T. To adjust the compromise between the compression efficiency of the quasi-arithmetic encoder and the complexity of the estimation process, it is therefore sufficient to adjust the value of the parameter T.
- This process relies on the same source, encoder and decoder models as those previously seen. Since the number of states of the encoder and decoder models is too large for them to be pre-calculated, the corresponding estimation lattice can not be built either.
- the estimation method proposed below is therefore based on the exploration of a subset of the estimation mesh, which is considered as a tree. This process is called a sequential estimation method. It can be applied from the source / encoder models and perform the sequential calculations using the "symbol clock", that is to say a counter incremented according to the number of symbols to be found.
- the figure 14 illustrates the so-called symbol clock sequential estimation method, ie based on the source / encoder model.
- the estimation of the sequence of states (X, N) for a bit stream is equivalent to the estimation of the sequence of transitions between these states, ie to the estimation of the sequence S knowing the observations Y at the output of the channel.
- ⁇ denotes a normalization factor.
- step 500 the probability of decoding a sequence of symbols (from 1 to k) knowing bits of the stream of second bits P (S 1 k / Y 1 Nk ) for each symbol instant k can be calculated in one pass before unique thanks to the decomposition of the equation (9) where N k is the total number of bits transmitted when in the state X k .
- N k is the total number of bits transmitted when in the state X k .
- Equation (12) the second term of this equation modeling the noise introduced by this channel is given to equation (12) as the product, for a given state X k of the source / encoder model, probabilities of observing a second bit Y n for a first transmitted bit U n .
- equation (10) is used to calculate P (S 1 k / Y 1 Nk ) for each consecutive symbol time k.
- step 502 allows the calculation of the probabilities P (S 1 k / Y 1 Nk ) for a number of symbols k varying from 1 to x1. For symbols from this value x1, pruning occurs at step 504 to maintain a complexity of the estimation mesh at a desired level, x1 is an integer less than or equal to the number of K symbols.
- the pruning of step 504 may comprise different embodiments.
- two embodiments are presented below. Achievements can be combined or used separately.
- the value of W depends on the available memory resources.
- N k is the number of bits transmitted for k coded symbols during coding.
- W and w is given in (19) with N kmax and N kmin depending respectively on the probability of the most and least likely sequence S 1 k .
- the pruning criterion is based on a threshold applied to the likelihood of the paths.
- the likelihood of a path is given by equation (8) (symbol clock).
- U) are related to the channel model as shown in equation (12).
- P (Y n y n
- Pruning consists of deleting all paths for which the average binary error probability at the output of the channel is greater than p.
- the pruning criterion comprises a threshold p compared to the probabilities P (Y Nk
- the probability P (S 1 k / Y 1 Nk ) for the number of symbols Nk (with k> x) is calculated at step 506.
- the pruning performed at the step 504 is reiterated for this new symbol moment Nk.
- Steps 504 and 506 are performed for a value k incremented up to the value K.
- the posterior marginal probabilities P (S 1 K / Y 1 NK ) are known for all the possible sequences s 1 K.
- the most likely sequence s 1 K is chosen, that is to say the sequence for which the probability P (S 1 K / Y 1 NK ) is the largest among the possible sequences of the obtained estimation lattice.
- the figure 15 illustrates the so-called bit clock sequential estimation method, ie based on the source / decoder model.
- the estimation of the sequence of states (X, K) to obtain a train of symbols is equivalent to the estimation of the sequence of transitions between these states, that is to say the estimation of the sequence S knowing the observations Y at the output of the channel.
- ⁇ denotes a normalization factor.
- step 600 the probability of decoding a sequence of K n symbols knowing the bits of the second bit stream P (S 1 Kn / Y 1 n ) for each bit n (defined later) can be calculated in a pass before unique thanks to the decomposition of the equation (13) where K n is the total number of decoded symbols on receipt of the bit n in the state X n .
- the probability P (S 1 Kn ) of obtaining a symbol sequence S 1 Kn is recurrently expressed according to equation (14) using equation (15).
- the probability P (Y 1 n / U 1 n ) can be rewritten and makes it possible to obtain the probability P (S 1 Kn / Y 1 n ) as indicated in (16).
- step 602 allows the calculation of probabilities P (S 1 Kn / Y 1 n ) in step 600 for a number of bits n varying from 1 to x 2, where x 2 is an integer denoting a threshold number of bits. For bits from this value x2, pruning occurs at step 604 to maintain a complexity of the estimation mesh at a desired level.
- the pruning of step 604 may comprise different embodiments corresponding to the achievements of step 504 of the figure 14 . Achievements can be combined or used separately.
- likelihoods the significance of calculated probabilities
- K n is the number of symbols transmitted for n bits received during decoding.
- W and w is given in (20) with K nmax and K nmin depending respectively on the probability of the most and least likely sequence S 1 k .
- the pruning criterion is based on a threshold applied to the likelihood of the paths.
- the likelihood of a path is given by equation (13) (bit clock).
- U) are related to the channel model as shown in Equation (16).
- pruning consists of deleting all paths for which the average binary error probability at the output of the channel is greater than p.
- the pruning criterion comprises a threshold p compared to the probabilities P (Yn
- the probability P (S 1 Kn / Y 1 n ) for the number of bits n (with n> x 2) is calculated in step 606.
- the pruning carried out at step 604 is taken for this new bit bit K n .
- the steps 604 and 606 are performed for an incremented value n up to the value N.
- the most probable sequence S 1 N is chosen, that is to say the sequence for which the probability P (S 1 K / Y 1 N ) is the largest of the possible sequences of the obtained estimation lattice.
- the posterior marginal P (S 1 K / Y 1 N ) probabilities are known for all the K 1 sequences remaining after pruning.
- termination constraints mentioned can be seen as a means of forcing the synchronization at the end of the symbol sequence. Indeed, they force the decoder to obtain the correct correspondence between the number of decoded symbols and the number of bits observed. However, these constraints have no synchronization effect on the middle of the sequence.
- K n (k with symbol clock) indicates when a marker is expected.
- the corresponding transition probabilities in the estimation lattice are updated accordingly. A zero probability is assigned to all transitions that do not emit the expected markers, while a probability of 1 is assigned to the others. As a result, some paths in the trellis may be removed, resulting in a reduction in the number of states and a better ability to re-synchronize.
- the invention provides a method for robust decoding of arithmetic codes based on the use of arithmetic code type codes including reduced precision arithmetic codes, referred to as quasi-arithmetic codes.
- the precision of these quasi-arithmetic codes is an adjustable parameter depending on the desired effect. Very high accuracy achieves compression performance identical to arithmetic codes. Lower accuracy increases robustness at the cost of a reasonable loss of compression.
- the invention makes it possible to greatly reduce the desynchronization phenomenon of the decoder.
- the invention offers a greater flexibility to adjust a compromise between compression efficiency / robustness / complexity of decoding.
- the invention comprises a set of methods that can be chosen according to the complexity allowed by the terminal, according to the error rate observed on the channel.
- a sequential decoding method includes a synchronization mechanism coupled with a pruning technique that controls the complexity of the decoding process.
- a trellis decoding method with parameterization of the complexity / robustness / compression compromise makes it possible to use the method in a manner coupled with a channel decoder (convolutional code decoder), which is difficult to use with traditional sequential methods.
- U 1 not P S 1 K not P S 1 K not - 1 ⁇ P S K not - 1 + 1 K not
- S 1 K not - 1
- ⁇ k K not - 1 + 1 K not P S not
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Error Detection And Correction (AREA)
Description
L'invention concerne la compression/décompression de données numériques, notamment pour des signaux multimédia (audio, image, vidéo, parole), et la transmission robuste de ces données sur des réseaux bruités, tels que des réseaux sans fils, des communications mobiles.The invention relates to the compression / decompression of digital data, especially for multimedia signals (audio, image, video, speech), and the robust transmission of these data over noisy networks, such as wireless networks, mobile communications.
Pour réduire le débit de transmission des données numériques, on les comprime, en cherchant à s'approcher du maximum théorique que les spécialistes appellent "l'entropie du signal". Pour cela, on utilise souvent des codes statistiques aussi appelés codes à longueurs variables, par exemple les codes de Huffman. Ces codes ont néanmoins l'inconvénient d'être très sensibles aux erreurs de transmission. L'inversion de un bit peut conduire à une désynchronisation du décodeur, qui a pour conséquence un décodage erroné de toutes les données qui suivent la position du bit erroné.To reduce the transmission rate of digital data, they are compressed, seeking to approach the theoretical maximum that specialists call "the entropy of the signal". For this, one often uses statistical codes also called variable length codes, for example the codes of Huffman. These codes nevertheless have the disadvantage of being very sensitive to transmission errors. Inversion of a bit can lead to desynchronization of the decoder, which results in erroneous decoding of all the data following the position of the erroneous bit.
Les solutions actuelles de compression, transmission et décompression de signaux multimédia sur réseau, sur lesquelles on reviendra, se fondent sur l'hypothèse qu'une certaine qualité de service du transport des données est garantie. En d'autres termes, elles supposent que les couches de transport et de liaison, en s'appuyant sur l'utilisation de codes correcteurs, vontpermettre d'atteindre un taux d'erreur résiduel quasi nul (c' est-à-dire vu par l'application de compression et de décompression). Mais cette hypothèse de taux d'erreur résiduel quasi nul n'est plus vraie lorsque les caractéristiques des canaux varient dans le temps (canaux non stationnaires), notamment dans les réseaux sans fil et mobiles, et pour une complexité du code de canal réaliste. En outre, l'ajout de redondance par codes correcteurs d'erreurs conduit à réduire le débit utile.Current solutions for compression, transmission and decompression of network multimedia signals, to which we will return, are based on the assumption that a certain quality of service of data transport is guaranteed. In other words, they assume that the transport and link layers, relying on the use of correcting codes, will make it possible to achieve a residual error rate that is almost zero (ie seen by the application of compression and decompression). But this assumption of almost zero residual error rate is no longer true when the characteristics of the channels vary over time (non-stationary channels), especially in wireless and mobile networks, and for a complexity of the realistic channel code. In addition, the addition of redundancy by error correction codes leads to a reduction in the payload.
Le document de
Le besoin se fait donc sentir de nouvelles solutions de codage/décodage.The need is therefore felt for new coding / decoding solutions.
La présente invention vient proposer des avancées en ce sens.The present invention proposes advances in this direction.
A cet effet, l'invention concerne un procédé de décodage, dans un décodeur arithmétique ou quasi-arithmétique, d'éléments binaires reçus d'un canal en des symboles x-aires comprenant les étapes suivantes:
- recevoir dudit canal un flux de N seconds éléments binaires Yi correspondants à N premiers éléments binaires Ui transmis, par l'intermédiaire dudit canal, d'un codeur arithmétique ou quasi-arithmétique vers ledit décodeur avec i compris entre 1 et N, ledit codeur codant une source de symboles;
- décoder lesdits N seconds éléments binaires Yi en un flux de K symboles x-aires Sj avec j compris entre 1 et K.
- receiving from said channel a stream of N second bits Yi corresponding to N first bits Ui transmitted, via said channel, an arithmetic or quasi-arithmetic coder to said decoder with i between 1 and N, said coder coding a source of symbols;
- decoding said N second bits Yi into a stream of K x-area symbols Sj with j between 1 and K.
Avantageusement, l'étape de décodage comprend :
- a. calculer des probabilités d'aboutir dans des états produits connaissant des bits du flux de seconds éléments binaires Yi, à partir d'un modèle dudit canal, d'un modèle de ladite source et d'un modèle produit définissant une correspondance entre lesdits symboles x-aires Sj et lesdits premiers éléments binaires Ui, à partir d'états produits dans un diagramme d'états "produit", un état produit comprenant un état source et un état d'un modèle dudit codeur ou dudit décodeur arithmétique ou quasi-arithmétique, et
- b. déterminer le flux de symboles x-aires le plus probable à partir des probabilités calculées à l'étape a.
- at. calculating probabilities of ending in produced states knowing bits of the stream of second bits Yi, from a model of said channel, a model of said source and a product model defining a correspondence between said symbols x Sj and said first bits Ui, from states produced in a "product" state diagram, a product state comprising a source state and a state of a model of said encoder or said arithmetic or quasi-arithmetic decoder , and
- b. determine the most likely x-ary symbol flow from the probabilities calculated in step a.
L'invention concerne également un dispositif de décodage arithmétique ou quasi-arithmétique correspondant au procédé.The invention also relates to an arithmetic or quasi-arithmetic decoding device corresponding to the method.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels :
- la
figure 1 illustre un ensemble comprenant un codeur et un décodeur selon l'invention, - la
figure 2 est une vue générale du procédé de codage implémentable dans un codeur selon l'invention, - la
figure 3 est un diagramme formant vue générale du procédé de décodage implémentable dans un décodeur selon l'invention, - les
figures 4A, 4B et 4C illustrent trois représentations différentes d'un même modèle dit "source" établissant une correspondance entre les symboles de la source et des séquences de bits, - les
figures 5A et 5B illustrent deux représentations différentes d'une même correspondance entre des séquences de symboles et des séquences de bits, basées sur le modèle dit "source" desfigures 4A et 4B , - la table 1 illustre une représentation sous forme de table d'un modèle dit "codeur",
- la table 2 illustre une représentation sous forme de table d'un modèle dit "décodeur",
- la
figure 6A illustre une représentation sous forme de table d'un modèle dit "produit source-codeur"selon l'invention, - la
figure 6B illustre une représentation sous forme de treillis du modèle dit "produit source-codeur" de lafigure 6A selon l'invention, - les
figures 7A et 7B illustrent deux représentations partielles sous forme de treillis du modèle dit "codeur" de la table 1, - la
figure 8 illustre une représentation généralisée d'un modèle dit "produit source-codeur"selon l'invention, - la
figure 9A illustre une représentation sous forme de table d'un modèle dit "produit source-décodeur"selon l'invention, - la
figure 9B illustre une représentation sous forme de treillis du modèle dit "produit source-décodeur" de lafigure 9A selon l'invention, - la
figure 10 illustre une représentation généralisée d'un modèle dit "produit source-décodeur"selon l'invention, - la
figure 11 illustre le procédé de décodage dans une première réalisation selon l'invention, - la
figure 12 illustre le procédé de décodage dans une deuxième réalisation selon l'invention, - la
figure 13 illustre une représentation sous forme de treillis réalisée à partir du procédé de décodage de lafigure 11 ou12 , - la
figure 14 illustre le procédé de décodage dans une troisième réalisation selon l'invention, - la
figure 15 illustre le procédé de décodage dans une quatrième réalisation selon l'invention.
- the
figure 1 illustrates an assembly comprising an encoder and a decoder according to the invention, - the
figure 2 is a general view of the coding method that can be implemented in an encoder according to the invention, - the
figure 3 is a diagram forming a general view of the decoding method that can be implemented in a decoder according to the invention, - the
Figures 4A, 4B and 4C illustrate three different representations of the same model called "source" establishing a correspondence between the symbols of the source and bit sequences, - the
Figures 5A and 5B illustrate two different representations of the same correspondence between symbol sequences and bit sequences, based on the so-called "source" model ofFigures 4A and 4B , - Table 1 illustrates a table representation of a so-called "encoder" model,
- Table 2 illustrates a table representation of a so-called "decoder" model,
- the
Figure 6A illustrates a table representation of a so-called "source-encoder product" model according to the invention, - the
Figure 6B illustrates a lattice representation of the so-called "source-encoder product" model of theFigure 6A according to the invention, - the
Figures 7A and 7B illustrate two partial representations in the form of lattices of the so-called "encoder" model of table 1, - the
figure 8 illustrates a generalized representation of a so-called "source-encoder product" model according to the invention, - the
Figure 9A illustrates a table representation of a so-called "source-decoder product" model according to the invention, - the
Figure 9B illustrates a lattice representation of the so-called "source-decoder product" model of theFigure 9A according to the invention, - the
figure 10 illustrates a generalized representation of a so-called "source-decoder product" model according to the invention, - the
figure 11 illustrates the decoding method in a first embodiment according to the invention, - the
figure 12 illustrates the decoding method in a second embodiment according to the invention, - the
figure 13 illustrates a lattice representation made from the decoding method of thefigure 11 or12 , - the
figure 14 illustrates the decoding method in a third embodiment according to the invention, - the
figure 15 illustrates the decoding method in a fourth embodiment according to the invention.
En outre:
l'annexe 1 contient des expressions mathématiques utilisées dans la présente description.
-
Appendix 1 contains mathematical expressions used in this description.
Les dessins et les annexes à la description comprennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la description, mais aussi contribuer à la définition de l'invention, le cas échéant.The drawings and appendices to the description include, for the most part, elements of a certain character. They can therefore not only serve to better understand the description, but also contribute to the definition of the invention, if any.
De manière générale, un système de compression de signaux multimédia (image, vidéo, audio, parole) fait appel à des codes statistiques aussi appelés codes à longueurs variables. Ceux-ci permettent d'obtenir des débits approchant ce que les spécialistes appellent "l'entropie du signal". Les codes les plus utilisés dans les systèmes existants (en particulier dans les standards) sont les codes de Huffman qui ont été décrits dans l'ouvrage suivant :
Plus récemment, on a vu un regain d'intérêt pour les codes arithmétiques en raison de leurs performances accrues en terme de compression. Ils permettent en effet de découpler le processus d'encodage du modèle supposé de la source. Ceci permet aisément d'utiliser des modèles statistiques d'ordre supérieur. Ces codes arithmétiques ont été décrits dans des ouvrages tels que
- [1]-
J.J. Rissanen "Generalized kraft inequality and arithmetic", IBM J.Res. Develop., 20:198-203, Mai 1976 - [2]-
J.J. Rissanen, "Arithmetic Coding as number representations", Acta Polytech. Scand. Math., 31:44-51, Décembre 1979
- [1] -
JJ Rissanen "Generalized kraft inequality and arithmetic", IBM J.Res. Develop., 20: 198-203, May 1976 - [2] -
JJ Rissanen, "Arithmetic Coding and Number Representations", Acta Polytech. Scand. Math. 31: 44-51, December 1979
Jusque récemment, la conception des systèmes de compression se faisait en supposant une qualité de service transport garantie. On supposait en effet que les couches inférieures du modèle OSI incorporent des codes correcteurs d'erreurs garantissant un taux d'erreur résiduel vu de l'application quasi-nul.Until recently, the design of the compression systems was done assuming a quality of service transport guaranteed. In fact, it was assumed that the lower layers of the OSI model incorporate error-correcting codes that guarantee a residual error rate given the quasi-zero application.
Les codes à longueurs variables pouvaient donc être largement utilisés malgré leur forte sensibilité au bruit de transmission. Cette hypothèse de taux d'erreur résiduel quasi nul n'est plus vraie dans les réseaux sans fil et mobiles, dont les caractéristiques des canaux varient dans le temps (canaux non stationnaires). Ce taux d'erreur résiduel vu par le décodeur des signaux de source est souvent loin d'être négligeable. Toute erreur dans le train binaire peut engendrer une dé-synchronisation du décodeur et donc une propagation des erreurs sur la suite des informations décodées.Codes of varying lengths could therefore be widely used despite their high sensitivity to transmission noise. This assumption of almost zero residual error rate is no longer true in wireless and mobile networks, whose channel characteristics vary over time (non-stationary channels). This residual error rate seen by the decoder of the source signals is often far from negligible. Any error in the bit stream may cause the decoder to de-synchronize and thus propagate errors over the sequence of decoded information.
Pour pallier ce problème de propagation, les standards de premières générations (H.261, H.263, MPEG-1, MPEG-2) ont incorporé dans la syntaxe du train binaire transmis des marqueurs de synchronisation. Ce sont des mots de code longs (16 ou 22 bits constitués d'une suite de 15 ou 21 bits à '1' suivis d'un '0') non émulables par des erreurs se produisant sur les autres mots de code et qui peuvent donc être reconnus par le décodeur avec une probabilité proche de '1'.To overcome this propagation problem, the first generation standards (H.261, H.263, MPEG-1, MPEG-2) have incorporated synchronization markers into the syntax of the transmitted bitstream. These are long code words (16 or 22 bits consisting of a sequence of 15 or 21 bits to '1' followed by a '0') not emulable by errors occurring on the other code words and which can therefore be recognized by the decoder with a probability close to '1'.
Cela conduit à structurer le train binaire en paquets délimités par ces marqueurs de synchronisation. Cela permet de confiner la propagation des erreurs au sein du paquet.This leads to structuring the bitstream into packets delimited by these synchronization markers. This helps to confine the propagation of errors within the packet.
Cependant si une erreur intervient en début de paquet la suite du paquet peut être perdue. En outre, la périodicité de ces marqueurs de synchronisation doit être restreinte pour éviter une perte trop grande en efficacité de compression.However, if an error occurs at the beginning of the packet, the rest of the packet may be lost. In addition, the periodicity of these synchronization markers must be restricted to avoid excessive loss of compression efficiency.
Les nouveaux standards (H.263+ et MPEG-4) ont alors fait appel à des codes à longueurs variables réversibles (RVLC). La particularité de ces codes est qu'ils peuvent être décodés du premier vers le dernier bit d'un paquet, et, à l'inverse, du dernier vers le premier bit du paquet.The new standards (H.263 + and MPEG-4) then used reversible variable length codes (RVLC). The peculiarity of these codes is that they can be decoded from the first to the last bit of a packet, and, conversely, from the last to the first bit of the packet.
Si une erreur s'est produite en milieu de paquet, cette symétrie du code permet de confiner la propagation des erreurs sur un segment en milieu de paquet au lieu de la propager jusqu'à la fin du paquet délimité par un marqueur de synchronisation. Cependant, la symétrie du code engendre une perte en efficacité de compression par rapport à un code de Huffman de l'ordre de 10 %. En outre les codes à longueurs variables réversibles n'évitent pas complètement le problème de propagation des erreurs : si une erreur se produit en début et en fin de paquet, tout lé paquet risque d'être erroné.If an error occurred in the middle of the packet, this symmetry of the code makes it possible to confine the propagation of errors on a segment in the middle of the packet instead of propagating it until the end of the packet delimited by a synchronization marker. However, the symmetry of the code generates a loss in compression efficiency with respect to a Huffman code of the order of 10%. In addition, reversible variable length codes do not completely avoid the problem of error propagation: if an error occurs at the beginning and at the end of a packet, the whole packet may be wrong.
La conception de procédés de codage/décodage robustes au bruit de transmission et basés sur une famille de codes performants en compression (i.e., qui permettent d'approcher l'entropie de la source), constitue un enjeu important, notamment pour les futurs systèmes de communication multimédia (image, vidéo, audio, parole) mobiles. Pour ces systèmes, de nouveaux standards sont à l'étude à la fois au sein de l'ITU (International Telecommunication Union) et de l'ISO (International Standard Organization).The design of transmission noise-robust coding / decoding methods based on a family of compression-efficient codes (ie, which allow to approach the entropy of the source), constitutes an important stake, in particular for the future systems of multimedia communication (picture, video, audio, speech) mobile. For these systems, new standards are being studied both within the International Telecommunication Union (ITU) and the International Standard Organization (ISO).
Bien que les standards occupent une place prépondérante dans le secteur des télécommunications, une telle famille de codes peut aussi trouver des applications sur des marchés de niche faisant appel à des solutions propriétaires.Although standards dominate the telecommunications industry, such a family of codes can also find applications in niche markets using proprietary solutions.
L'invention décrite concerne notamment un dispositif codeur/décodeur pour une famille de codes largement utilisés dans les systèmes de compression comme des codes de type arithmétique comprenant les codes arithmétiques et les codes quasi-arithmétiques.The disclosed invention relates in particular to an encoder / decoder device for a family of codes widely used in compression systems such as arithmetic type codes comprising arithmetic codes and quasi-arithmetic codes.
Les principes du codage arithmétique et quasi-arithmétique sont développés ci-après. Ils sont développés plus en détail dans l'ouvrage [2] et les ouvrages suivants
- [3]-
I.H. Witten, R. M. Neal and J. G. Cleary. Arithmetic coding for data compression. Communications of the ACM, 30(6):520-540, Juin 1987 - [4]
P. G. Howard and J. S. Vitter, Image and Text Compression, pages 85-112. Kluwer Academic Publisher, 1992
- [3] -
IH Witten, RM Neal and JG Cleary. Arithmetic coding for data compression. Communications of the ACM, 30 (6): 520-540, June 1987 - [4]
PG Howard and JS Vitter, Image and Text Compression, pages 85-112. Kluwer Academic Publisher, 1992
Dans le reste de la description, l'utilisation du mot "séquence" désigne un flux ou une suite d'éléments. Par exemple, une séquence de bits, respectivement de symboles désignera un flux ou une suite de bits, respectivement de symboles.In the rest of the description, the use of the word "sequence" designates a stream or a sequence of elements. For example, a sequence of bits or symbols will designate a stream or a sequence of bits, or symbols respectively.
Le principe du codage consiste de façon générale à procéder aux étapes suivantes :
- soit A = A1 ... AL, une séquence de symboles de source quantifiés qui prennent leur valeur dans un alphabet fini A composé de M = 2q symboles, A={a1 ... aM}. Cet alphabet a une distribution stationnaire qui indique pour chaque symbole une probabilité stationnaire associée. Cette séquence de symboles M-aires (appelée également source A) est convertie en une séquence de symboles x-aires (avec x≤M). Dans le cas où cette séquence de symboles M-aires est convertie en une séquence de symboles binaires S=S1...SK, (appelée également source S), K est définit par K=qxL. Les variables M et x définissent des entiers à partir de 2. Ainsi, dans l'exemple, x = 2 et M=4.
- let A = A 1 ... A L be a sequence of quantized source symbols which take their value in a finite alphabet A composed of M = 2 q symbols, A = {a 1 ... a M }. This alphabet has a stationary distribution which indicates for each symbol an associated stationary probability. This sequence of M-ary symbols (also called source A) is converted into a sequence of x-ary symbols (with x≤M). In the case where this sequence of M -ary symbols is converted into a sequence of binary symbols S = S 1 ... S K , (also called source S), K is defined by K = qxL. The variables M and x define integers starting from 2. Thus, in the example, x = 2 and M = 4.
A titre d'exemple uniquement dans le reste de la description, et pour des raisons de simplification, on considérera que x=2. Cette conversion utilise un modèle de source décrit ci-après comprenant une correspondance entre la source M-aire A et la source binaire S. Cette séquence de symboles binaires S est convertie à son tour en une séquence de premiers éléments binaires d'information U=U1 ...UN, par l'intermédiaire d'un codeur quasi-arithmétique de précision T. La longueur N de ce train binaire est une variable aléatoire, fonction de S, la séquence de symboles binaires, elle-même fonction de A, la séquence de symboles M-aires. Le train de premiers éléments binaires U est transmis, à titre d'exemple uniquement, sur un canal sans mémoire. Ce train de premiers éléments binaires U est reçu comme un train de seconds éléments binaires Y en raison d'erreurs introduites lors de la transmission par le canal de communication. Les couches inférieures du système de communication permettent en effet de déterminer au moins les propriétés courantes Ic du canal de communication, par exemple le taux d'erreurs introduites par le canal dans les bits communiqués, des mesures de confiance sur des bits reçus. Ces dernières mesures permettent d'estimer des probabilités de recevoir un second élément binaire connaissant un premier élément binaire communiqué sur le canal. Ces probabilités sont estimées comme indiqué en annexe (équation 21 avec l'indice i étant un entier) à partir d'une des propriétés courantes Ic du canal : p, la probabilité d'erreur sur le canal.By way of example only in the remainder of the description, and for reasons of simplification, it will be considered that x = 2. This conversion uses a source model described below comprising a correspondence between the source M-area A and the binary source S. This sequence of binary symbols S is in turn converted into a sequence of first bits of information U = U 1 ... U N , via a quasi-arithmetic encoder of precision T. The length N of this bit stream is a random variable, a function of S, the sequence of binary symbols, itself a function of A, the sequence of M -ary symbols. The train of first bits U is transmitted, by way of example only, on a channel without memory. This first bit stream U is received as a stream of second bits Y due to errors introduced during transmission over the communication channel. The lower layers of the communication system make it possible to determine at least the current properties Ic of the communication channel, for example the error rate introduced by the channel into the communicated bits, confidence measurements on bits received. These last measurements make it possible to estimate probabilities of receiving a second binary element knowing a first binary element communicated on the channel. These probabilities are estimated as shown in the appendix (equation 21 with the index i being an integer) from one of the current properties Ic of the channel: p, the probability of error on the channel.
Le principe du décodage consiste à estimer la suite de symboles A, connaissant les seconds éléments binaires appelés également par la suite "observations y". Dans le reste de la description, les lettres majuscules seront utilisées pour dénoter les variables aléatoires, et les minuscules pour les réalisations, ou observations de ces variables. Pour noter une suite de variables successives, la notation Xu v ={Xu, Xu+1...Xv}.The principle of decoding consists of estimating the sequence of symbols A, knowing the second bits, also called "observations y". In the rest of the description, capital letters will be used to denote random variables, and lowercase letters for realizations, or observations of these variables. To note a sequence of successive variables, the notation X u v = {X u , X u + 1 ... X v }.
Le principe de codage/décodage peut également être directement appliqué à une source correspondant non pas à des symboles M-aires (A) avec M>2 mais à des symboles binaires (S) avec M=2. Dans la suite de la description, un symbole x-aire, respectivement un symbole M-aire, comprend notamment le cas du symbole binaire (x=2, respectivement M=2) et le cas du symbole pour lequel x>2, respectivement M>2.The coding / decoding principle can also be directly applied to a source corresponding not to M-ary symbols (A) with M> 2 but to binary symbols ( S ) with M = 2. In the remainder of the description, an x-ary symbol, respectively an M-ary symbol, comprises in particular the case of the binary symbol (x = 2, respectively M = 2) and the case of the symbol for which x> 2, respectively M > 2.
La
- un modèle de source 8 permettant de définir des probabilités pour des symboles x-aires associés à des transitions entre états sources dans un diagramme d'états source décrit ci-après,
- un modèle dit "produit" 7 permettant de définir une correspondance entre les symboles x-aires et de premiers éléments binaires, en fonction d'états dans un diagramme d'états "produit", un état produit étant fonction d'un état source et d'un état d'un modèle de transfert.
- a source model 8 making it possible to define probabilities for x-ary symbols associated with transitions between source states in a source state diagram described below,
- a so-called "product"
model 7 making it possible to define a correspondence between the x-ary symbols and first binary elements, as a function of states in a "product" state diagram, a product state being a function of a source state and a state of a transfer model.
Le modèle produit 7 est établi à partir du modèle source 8 et d'un modèle de transfert 9 ou 10. Le modèle produit peut être construit dynamiquement à partir du modèle de source et des modèles de transfert 9 ou 10. Dans une autre réalisation possible, le modèle produit peut être implémenté dans le module de modèles sans être construit dynamiquement. Le modèle de transfert comprend un modèle de codage 9 ou un modèle de décodage 10. Ce modèle de transfert permet d'établir une correspondance entre des symboles binaires et de premiers éléments binaires, en fonction de probabilités associées à des symboles binaires.
Il est également possible de partir d'une séquence de symboles M-aire pouvant être au préalable transformée en une séquence de symboles x-aires avant d'être compressée en utilisant le modèle source.It is also possible to start from an M-ary symbol sequence that can be previously transformed into an x-ary symbol sequence before being compressed using the source model.
Dans une réalisation possible, ces modèles peuvent être pré-calculés et mis en mémoire dans un module externe au module de modèle du décodeur. Ils peuvent également être utilisés à distance, par exemple en se servant d'un réseau local de type Ethernet ou un réseau plus étendu de type internet.In one possible embodiment, these models can be pre-calculated and stored in a module external to the decoder model module. They can also be used remotely, for example by using an Ethernet-type local network or a wider Internet-type network.
Le module de traitement 6 est adapté pour calculer des probabilités de symboles x-aires, connaissant les bits du flux de seconds éléments binaires, à partir des propriétés Ic du canal, du modèle source et du modèle produit. Le module de traitement 6 est adapté pour reconstituer le flux de symboles x-aires le plus probable à partir de ces probabilités calculées et pour reconstituer le flux de symboles M-aires à partir du modèle source si un flux de symboles M-aires a été codé.The processing module 6 is adapted to calculate x-area symbol probabilities, knowing the bits of the second bit stream, from the properties Ic of the channel, the source model and the product model. The processing module 6 is adapted to reconstruct the most likely x-ary symbol stream from these calculated probabilities and to reconstruct the flow of M-ary symbols from the source model if a flow of M-ary symbols has been code.
Le procédé découlant de ce dispositif selon l'invention est décrit dans le reste de la description et permettra, notamment, de mieux comprendre le fonctionnement d'un tel dispositif.The method resulting from this device according to the invention is described in the rest of the description and will, in particular, to better understand the operation of such a device.
La
A l'étape 100, lorsque la séquence de données ne nécessite pas de marqueurs M-aires, le procédé continue à l'étape 104. Si, au contraire, des marqueurs M-aires doivent être insérés dans la séquence de données, la fréquence, la taille et la valeur de ces marqueurs sont fournies par le codeur pour effectuer l'insertion de ces marqueurs à l'étape 102.In
A l'étape 104, il est vérifié si la séquence de données (comprenant ou non des marqueurs de synchronisation) nécessite une conversion M-aire/binaire. Si tel n'est pas le cas, la séquence de données est donc binaire et est soumise au codage arithmétique (quasi-arithmétique dans l'exemple de la figure) à l'étape 112. Sinon, la conversion M-aire/binaire de la séquence s'effectue à l'étape 106. A l'étape 108, si des marqueurs binaires doivent être insérés, la fréquence, la taille et la valeur de ces marqueurs sont fournies par le codeur pour effectuer l'insertion de ces marqueurs à l'étape 110.In
A l'étape 112, la séquence de données M-aire ou binaire est soumise au codage quasi-arithmétique dont la complexité est contrôlée par le paramètre T. Si T est grand, le codage quasi-arithmétique devient identique à un codage arithmétique. Il en résulte une compression -maximale de la séquence de données binaire en un train de bits.In
La
A l'étape 120, différents modes de décodage peuvent être sélectionnés :
- un décodage instantané à l'étape 124,
- un décodage séquentiel selon l'invention, qui est détaillé dans le reste de la description, à l'étape 122,
- un décodage optimal, qui est détaillé dans le reste de la description, selon l'invention à l'étape 126.
- instant decoding at
step 124, - a sequential decoding according to the invention, which is detailed in the remainder of the description, at
step 122, - an optimal decoding, which is detailed in the rest of the description, according to the invention in
step 126.
A l'étape 128, il est vérifié si la séquence de données obtenue après décodage nécessite une conversion binaire/M-aire.In
Si tel est le cas, la séquence de données est donc binaire et à l'étape 130, il est vérifié si la séquence de données comprend des marqueurs binaires. Si tel est le cas, ces marqueurs sont supprimés à l'étape 132 en utilisant les informations sur leur fréquence et leur taille. Après l'étape 130 ou l'étape 132, la séquence de données est soumise à la conversion binaire/M-aire à l'étape 134.If so, then the data sequence is binary and in
Après l'étape 128 ou 134, il est vérifié si la séquence de données comprend des marqueurs M-aires à l'étape 136. Si tel n'est pas le cas, le décodage de la séquence de données (ou source) est terminé, sinon, les marqueurs sont supprimés à l'étape 138 pour obtenir la séquence de données (ou source).After
Les
La
La
Pour un flux de données comprenant plusieurs symboles M-aires non indépendants, un modèle complet de la source est obtenu en connectant des modèles locaux successifs comme indiqué sur la
D'après la
A partir de cet automate stochastique, le flux de symboles binaires peut être modélisé par un modèle de Markov caché.From this stochastic automaton, the flow of binary symbols can be modeled by a hidden Markov model.
Connaissant chaque probabilité stationnaire associée à chaque symbole binaire, chacune de ces probabilités correspondant à un des segments de l'intervalle unitaire [0,1[, le codage arithmétique permet, pour une séquence de symboles binaires, de déterminer l'intervalle de cette séquence. Ce dernier représente un segment de l'intervalle unitaire et sa borne inférieure est issue de la somme des probabilités des séquences de symboles correspondant aux sous-intervalles inférieurs. La largeur de cet intervalle est donnée par la probabilité de la séquence de symboles correspondant à cet intervalle. On appelle "intervalle courant", l'intervalle correspondant à une partie de la séquence et donc à l'état Ck courant de cette partie de séquence, lors du calcul de l'intervalle ou sous-segment associé à la sous séquence correspondant à l'état Ck.Knowing each stationary probability associated with each binary symbol, each of these probabilities corresponding to one of the segments of the unit interval [0,1 [, the arithmetic coding makes it possible, for a sequence of binary symbols, to determine the interval of this sequence . The latter represents a segment of the unit interval and its lower bound is derived from the sum of the probabilities of the symbol sequences corresponding to the lower subintervals. The width of this interval is given by the probability of the sequence of symbols corresponding to this interval. The "interval current" is the interval corresponding to a part of the sequence and therefore to the state C k current of this part of sequence, when calculating the interval or sub-segment associated with the sub-sequence corresponding to the state C k .
Des mises en oeuvre pratiques du codage arithmétique ont d'abord été introduites dans l'ouvrage [1], l'ouvrage suivant :
- [5]- R. Pasco. Source coding algorithms for fast data compression. PhD thesis, Dept. of Electrical Engineering, Stanford Univ., Stanford Calif.,1976
- [5] - R. Pasco. Source coding algorithms for fast data compression. PhD thesis, Dept. of Electrical Engineering, Stanford University, Stanford Calif., 1976
L'utilisation de cette technique garantit que l'intervalle courant satisfait en permanence low < 0.25 < 0.5 ≤ high ou low < 0.5 < 0.75 ≤ high, avec low et high les bornes inférieures et supérieures de l'intervalle courant respectivement.The use of this technique ensures that the current interval continuously satisfies low <0.25 <0.5 ≤ high or low <0.5 <0.75 ≤ high , with low and high the lower and upper limits of the current range respectively.
Le principe du codage arithmétique peut se modéliser par un automate stochastique dont les états E sont définis par trois variables : low, up et nscl le nombre de remises à l'échelle. L'inconvénient de ce codage est qu'il peut exister un très grand nombre d'états si la distribution stationnaire de la source n'est pas connue a priori ou si le flux comprend un nombre de symboles x-aires important. Le codage quasi-arithmétique, également appelé codage arithmétique à précision réduite, permet de réduire le nombre d'états possibles sans perte importante en efficacité de compression, comme décrit dans l'ouvrage [4]. Pour effectuer le codage quasi-arithmétique, l'intervalle réel [0,1[ est remplacé par l'intervalle entier [0,T[. L'entier T permet de contrôler le compromis entre la complexité et l'efficacité de compression : si T est grand, alors les subdivisions de l'intervalle représenteront précisément la distribution de la source. Par contre, si T est petit (proche de 1), toutes les subdivisions possibles de l'intervalle pourront être pré-calculées, ces subdivisions représenteront seulement une approximation de la distribution de la source.The principle of arithmetic coding can be modeled by a stochastic automaton whose states E are defined by three variables: low, up and n scl the number of rescaling. The disadvantage of this coding is that there can be a very large number of states if the stationary distribution of the source is not known a priori or if the stream comprises a large number of x-ary symbols. Quasi-arithmetic coding, also known as low-precision arithmetic coding, reduces the number of possible states without significant loss of compression efficiency, as described in [4]. To carry out the quasi-arithmetic coding, the real interval [0,1 [is replaced by the integer interval [0, T [. The integer T makes it possible to control the compromise between the complexity and the compression efficiency: if T is large, then the subdivisions of the interval will represent precisely the distribution of the source. On the other hand, if T is small (close to 1), all the possible subdivisions of the interval can be pre-calculated, these subdivisions will represent only an approximation of the distribution of the source.
Comme présenté dans la table 1, toutes les transitions entre états et les émissions de bits correspondantes peuvent être pré-calculées. Les opérations arithmétiques sont alors remplacées par des lectures de table.As shown in Table 1, all transitions between states and the corresponding bit transmissions can be pre-calculated. Arithmetic operations are then replaced by table reads.
Une séquence S1 K de symboles binaires est convertie un flux de bits U1 N par un arbre binaire. Cet arbre peut être vu comme un automate ou un modèle codeur qui modélise la distribution du train binaire. Le codage d'un symbole détermine le choix d'un arc de l'arbre, auquel peut être associée l'émission de bits. Chaque noeud correspond à un état E du codeur arithmétique. Les transitions successives entre ces états suivent la distribution de la source P(Sk|Sk-1) pour une source de Markov d'ordre 1. Soit Ek l'état de l'automate à chaque "instant symbole" k. Comme pour le codage arithmétique, l'état Ek du codeur quasi-arithmétique est défini par trois variables: lowSk, upSk et nsclk. Les termes lowSk et upSk désignent les bornes de l'intervalle résultant des subdivisions successives de [0,T[ correspondant au codage de la séquence S1 K. La quantité nsclk est remise à zéro chaque fois qu'un bit est émis et incrémentée chaque fois qu'une remise à l'échelle sans émission de bit est effectuée. Elle représente donc le nombre de remises à l'échelle effectuées depuis la dernière émission de bit. Quand un bit est émis, il est suivi par nsclk bits de valeur opposée.A sequence S 1 K of binary symbols is converted a bit stream U 1 N by a binary tree. This tree can be seen as an automaton or an encoder model that models the distribution of the bitstream. The encoding of a symbol determines the choice of an arc of the tree, to which the transmission of bits can be associated. Each node corresponds to a state E of the arithmetic coder. The successive transitions between these states follow the distribution of the source P (S k | S k-1 ) for a Markov source of
Dans la mesure où il y a un nombre fini de subdivisions possibles de l'intervalle [0,T[, il doit être possible de pré-calculer tous les états du codeur quasi-arithmétique sans connaître la source à priori.Since there is a finite number of possible subdivisions of the interval [0, T [, it must be possible to pre-calculate all the states of the quasi-arithmetic encoder without knowing the source a priori.
A titre d'exemple, la table 1 présente les états, les sorties et toutes les transitions possibles d'un codeur quasi-arithmétique de précision T=4 pour une source binaire. On s'intéressera dans un premier temps aux ensembles C1 et C2 de colonnes. La valeur de la variable nscl k n'est pas inclue dans le modèle d'état. Seuls les incréments de cette variable sont signalés par la lettre f dans le tableau comme dans l'ouvrage [4].By way of example, Table 1 presents the states, outputs and all possible transitions of a quasi-arithmetic precision encoder T = 4 for a binary source. We will first look at the sets C1 and C2 of columns. The value of the variable nscl k is not included in the state model. Only the increments of this variable are indicated by the letter f in the table as in the book [4].
Le codeur a trois états possibles, correspondant à des subdivisions entières de l'intervalle [0,4[ prises par l'intervalle courant [lowSk, upSk[. On se reportera à l'ouvrage
- [6]
P. G. Howard and J. S. Vitter, Design and analysis of fast text compression based on quasi-arithmetic coding. In Data Compression Conference, pages 98-107, Snowbird, Utah,Mars-Avril 1993
- [6]
Howard Howard and JS Vitter, Design and analysis of fast compression-based text on quasi-arithmetic coding. In Data Compression Conference, pp. 98-107, Snowbird, Utah, March-April 1993
Dans le cas où les symboles en entrée sont des symboles binaires, le nombre d'états peut être encore réduit en identifiant les symboles binaires comme " moins probable" (LPS) et "plus probable" (MPS) dans la colonne C3, plutôt que 0 et 1 dans la colonne C2. Cela revient à considérer la probabilité de chaque symbole binaire plutôt que la valeur du symbole binaire, les MPS et LPS pouvant correspondre soit à un bit 0 soit à un bit 1. Le nombre de combinaisons possibles des probabilités de la source binaire est réduit. Cela permet de combiner certaines transitions et d'éliminer des états de l'automate.In the case where the input symbols are binary symbols, the number of states can be further reduced by identifying the binary symbols as "less likely" (LPS) and "more likely" (MPS) in column C3, rather than 0 and 1 in column C2. This amounts to considering the probability of each binary symbol rather than the value of the binary symbol, the MPS and LPS being able to correspond either to a
La séquence E0...EK d'états successifs du codeur quasi-arithmétique forme une chaîne de Markov et les sorties du codeur sont fonctions des transitions sur cette chaîne.The sequence E 0 ... E K of successive states of the quasi-arithmetic encoder forms a Markov chain and the outputs of the encoder are functions of the transitions on this chain.
De la même manière que le codage quasi-arithmétique, le décodage peut se modéliser par un automate stochastique à nombre d'états En fini comme présenté sur la table 2.In the same way as quasi-arithmetic coding, the decoding can be modeled by a stochastic automaton with a number of states E n finite as presented on the table 2.
L'état d'un décodeur arithmétique est défini par deux intervalles : [lowUn,upUn[ et [lowSKn,upSKn[. L'intervalle [lowUn,upUn[ correspond au segment de l'intervalle [0,1[ défini par la réception de la séquence de bits U1 n. L'intervalle [lowSKn,upSKn[ est le segment de l'intervalle [0,1[ obtenu quand la séquence de symboles S1 Kn a été décodée. Cet intervalle est mis à jour par cumul des probabilités de chaque symbole binaire décodé, de la même manière qu'au codage pour chaque symbole codé. Il reproduit le fonctionnement du codeur.The state of an arithmetic decoder is defined by two intervals: [lowU n , upU n [and [lowS Kn , upS Kn [. The interval [lowU n , upU n [corresponds to the segment of the interval [0,1 [defined by the reception of the bit sequence U 1 n . The interval [lowS Kn , upS Kn [is the segment of the interval [0,1 [obtained when the symbol sequence S 1 Kn has been decoded. This interval is updated by accumulating the probabilities of each decoded binary symbol, in the same way as the coding for each coded symbol. It reproduces the operation of the encoder.
Un codeur et un décodeur arithmétique ne sont pas synchronisés. En effet, au codage, la réception d'un symbole n'entraîne pas nécessairement l'émission d'un bit. De même, au décodage, la lecture d'un bit n'entraîne pas nécessairement la production d'un symbole. Ainsi, si la lecture du premier symbole de la séquence à coder n'entraîne aucune émission de bit, il se peut qu'au décodage, la lecture du premier bit suffise à décoder le premier symbole. Les deux intervalles sont mis à l'échelle comme au codage afin d'éviter les problèmes de précision numérique.An encoder and an arithmetic decoder are not synchronized. Indeed, in coding, the reception of a symbol does not necessarily lead to the emission of a bit. Similarly, at decoding, reading a bit does not necessarily lead to the production of a symbol. Thus, if the reading of the first symbol of the sequence to be coded causes no bit transmission, it may be that at decoding, the reading of the first bit is sufficient to decode the first symbol. Both intervals are scaled as well as coded to avoid numerical accuracy problems.
Dans l'exemple de la table 2, un automate stochastique est défini pour une valeur de T = 4. La table présente les états, transitions et sorties d'un décodeur quasi-arithmétique pour une source binaire, avec T=4 et la simplification MPS/LPS.In the example of Table 2, a stochastic automaton is defined for a value of T = 4. The table presents the states, transitions and outputs of a quasi-arithmetic decoder for a binary source, with T = 4 and simplification MPS / LPS.
Soit En l'état de cet automate à "l'instant bit" n, c'est-à-dire à l'instant de traitement du bit reçu Un. Cet état est défini par les valeurs des intervalles [lowUn,upUn[ et [lowSKn,upSKn[. En fonction de la distribution stationnaire de la source (représentée, colonne K1, par la probabilité du symbole MPS le plus probable), l'intervalle courant [lowSKn,upSKn[ sera subdivisé en intervalles entiers. Suivant que le bit d'entrée est Un = 0 dans la colonne K2 ou Un =1 dans la colonne K3, les subdivisions en intervalles entiers de l'intervalle courant [lowSKn,upSKn[ possibles conduisent à l'émission de symboles MPS ou LPS indiquées ou à la remise à l'échelle appropriée avant de déterminer le prochain état de l'automate.Let E n be the state of this automaton at the "bit time" n, that is, at the processing time of the received bit U n . This state is defined by the values of the intervals [lowU n , upU n [and [lowS Kn , upS Kn [. Depending on the stationary distribution of the source (represented, column K1, by the probability of the most probable MPS symbol), the current interval [lowS Kn , upS Kn [will be subdivided into entire intervals. Depending on whether the input bit is U n = 0 in the column K2 or U n = 1 in the column K3, the subdivisions into integer intervals of the current interval [lowS Kn , upS Kn [possible lead to the emission of indicated MPS or LPS symbols or the appropriate rescaling before determining the next state of the PLC.
Un codeur, respectivement décodeur utilisant l'automate stochastique de la table 1, respectivement table 2, démarre à l'état Ek =1, respectivement En =1.An encoder or decoder respectively using the stochastic automaton of the table 1, respectively table 2, starts in the state E k = 1, respectively E n = 1.
Différents modèles sont envisagés selon l'invention pour être utilisés dans des procédés de codage/décodage et pour être implémentés dans les codeurs/décodeurs correspondants. Ainsi, il est envisagé un modèle dit "produit" pouvant être un modèle résultant du produit des modèles source et codeur ou un modèle résultant du produit des modèles source et décodeur.Various models are envisaged according to the invention for use in coding / decoding methods and for being implemented in the corresponding coders / decoders. Thus, it is envisaged a so-called "product" model that can be a model resulting from the product of the source and encoder models or a model resulting from the product of the source and decoder models.
De manière générale, les états du modèle produit doivent rassembler les informations contenues dans les états de chacun des deux modèles (source et codeur ou source et décodeur). Dans le cas général, la taille de l'espace d'états du "modèle produit" ne peut pas être connue a priori. Elle peut être calculée à partir du modèle de source binaire et du paramètre T.In general, the states of the model produced must gather the information contained in the states of each of the two models (source and encoder or source and decoder). In the general case, the size of the state space of the "product model" can not be known a priori. It can be calculated from the binary source model and the T parameter.
Pour un modèle produit source/codeur, comme le nombre de bits, dans chaque élément binaire, produit par chaque transition du modèle produit est aléatoire, la structure des dépendances entre la séquence de seconds éléments binaires et les états du modèle produit est aléatoire. Afin de "capturer"' cette structure de dépendances, le processus de Markov, représenté par les états Xk du codeur selon le modèle produit, est augmenté d'un compteur Nk pour obtenir la structure de dépendance suivante (X,N)=(X1,N1)... (XK,NK). Chaque état Xk du modèle produit est défini par l'état du modèle codeur, l'état du modèle source et le nombre de bits émis quand le k-ième symbole a été codé : (Xk,Nk) = (lowSk,upSk,Ck,Nk). Cela conduit à la structure de dépendances décrite graphiquement par la
Un exemple de modèle produit issu des modèles source et codeur est présenté d'après les
Le modèle codeur arithmétique de la table 1 (T=4) utilisant le modèle d'état simplifié de la colonne C3 a été représenté sous forme de treillis aux
Ainsi, dans le modèle produit de la
Pour un modèle source/décodeur selon la
Les procédés de décodage robuste pour codes arithmétiques sont basés sur les modèles de dépendances décrits précédemment.Robust decoding methods for arithmetic codes are based on the dependency models described above.
Une première réalisation du procédé de décodage robuste est illustrée par la
Il est fait référence à l'annexe 1 pour ce qui concerne le développement mathématique associé.Reference is made to Annex 1 for the associated mathematical development.
Le décodeur reçoit en entrée le train de bits à décoder. Le modèle de source, la variable N représentant le nombre de bits reçus à décoder et la probabilité P(Un/Yn) d'avoir émis un premier bit (ou premier élément binaire) Un sachant le second bit (ou second élément binaire) Yn observé sont des données que le décodeur a pour entrée, c'est à dire que, à titre d'exemple seulement, ces données peuvent être reçues en entrée avec le train de bits à décoder ou peuvent être lues dans une mémoire accessible par le décodeur. La probabilité P(Un/Yn) peut être obtenue à partir des propriétés du canal.The decoder receives as input the bitstream to be decoded. The source model, the variable N representing the number of received bits to be decoded and the probability P (U n / Y n ) of having transmitted a first bit (or first bit) U n knowing the second bit (or second element binary) Y n observed are data that the decoder has for input, that is to say that, by way of example only, this data can be received as input with the bitstream to be decoded or can be read in a memory accessible by the decoder. The probability P (U n / Y n ) can be obtained from the properties of the channel.
Le critère du MAP (Maximum A Posteriori) correspond à l'estimation bayésienne optimale d'un processus X à partir des observations disponibles Y comme indiqué par l'équation (3) annexe 1. L'optimisation est effectuée pour toutes les "séquences" possibles. Dans cette première réalisation, ce critère est appliqué à l'estimation des états cachés des processus (X,N), qui peuvent être considérés comme des processus à horloge symbole, et des processus (X,K), qui peuvent être considérés comme des processus à horloge bit, étant données les séquences de bits observées. L'estimation peut être faite soit à horloge bit, soit à horloge symbole. Pour des raisons de simplicité de mise en oeuvre, l'estimation à horloge bit est privilégiée.The MAP (Maximum A Posteriori) criterion corresponds to the optimal Bayesian estimation of an X process from the available observations Y as indicated by equation (3),
Dans ce cas, l'estimation de l'ensemble des états cachés (X,K)=(X1,K1) ... (XN,KN) est équivalente à l'estimation de la séquence de symboles décodés correspondante S = S1 ... SKn ...SKN, sachant les observations Y1 N à la sortie du canal. La meilleure séquence (X,K) peut être obtenue à partir des probabilités locales sur les paires (Xn,Kn) grâce à l'équation (4).In this case, the estimation of the set of hidden states (X, K) = (X 1 , K 1 ) ... (X N , K N ) is equivalent to the estimation of the corresponding decoded symbol sequence S = S 1 ... S Kn ... S KN , knowing the observations Y 1 N at the output of the channel. The best sequence (X, K) can be obtained from the local probabilities on the pairs (X n , K n ) thanks to the equation (4).
Le calcul de P(Xn,Kn|Y) peut être effectué à partir de l'équation de décomposition (5) où α désigne un facteur de normalisation. Les dépendances de la chaîne de Markov permettent un calcul récursif des deux termes de la partie droite de cette équation, basé sur l'algorithme BCJR décrit dans l'ouvrage
- [7]
L.R. Bahl, J. Cocke, F. Jelinek, and J.Raviv. Optimal decoding of linear codes for minimizing symbol error rate. IEEE trans. on information theory, 02:284-287, March 1974
- [7]
LR Bahl, J. Cocke, F. Jelinek, and J.Raviv. Optimal decoding of linear codes for minimizing symbol error rate. IEEE trans. on information theory, 02: 284-287, March 1974
Ainsi, à l'étape 300, le treillis est tout d'abord construit en utilisant le modèle source/décodeur de la
A l'étape 302, la passe arrière permet d'obtenir le terme P(YN n+1|Xn=xn,Kn=kn) de la décomposition pour tout état possible (xn,kn) à chaque instant bit n consécutivement de N à 1. Ce terme est calculé comme la somme du produit de trois probabilités conditionnelles (équation (7)): la probabilité récursive initialisée pour tous les "derniers états" possibles (XN,KN), la probabilité de transition entre les états (Xn+1, Kn+1) et (Xn, Kn) donnée par le modèle produit et la probabilité d'avoir émis le bit Un+1 déclenchant la transition entre les états (Xn+1, Kn+1) et (Xn, Kn) sachant le second élément binaire Yn+1. Comme précédemment, cette dernière probabilité est obtenue à partir du modèle de canal. Ainsi, cette passe arrière permet de calculer les probabilités P(YN n+1|Xn=xN,Kn=kn), successives et pour chaque instant n de N à 1, d'observer des bits du flux de seconds éléments binaires Y1 n connaissant un état donné (Xn,Kn).In
Lorsque le nombre de symboles K est connu, une contrainte de terminaison peut être rajoutée lors de la passe arrière à l'étape 302. Ainsi, tous les chemins dans le treillis qui ne conduisent pas au bon nombre de symboles KN=K sont supprimés. Ainsi, la passe arrière comprend la suppression successive des états du diagramme d'états produit, depuis l'état final à l'état d'origine, pour lesquels le nombre attendu de symboles pour un nombre donné de bits du flux de seconds éléments binaires est différent d'un nombre connu maximal de symboles. Ainsi, la première passe de l'étape 300 démarre à l'état initial du treillis et construit successivement les différentes sections du treillis. Au cours de cette passe avant, il n'est pas possible de savoir quels sont les chemins qui ne respectent pas la contrainte de terminaison. Une fois la passe avant terminée, les états de la dernière section (n=N) du treillis qui ne respectent pas la contrainte sont supprimés. La passe arrière permet alors de supprimer toutes les branches qui n'aboutissent pas.When the number of symbols K is known, a termination constraint can be added during the backward pass in
A l'étape 304, les probabilités obtenues des passes avant et arrière sont combinées sous la forme d'un produit pour chaque valeur de n variant de 1 à N pour obtenir les probabilités P(Xn,Kn|Y) pour chaque état n. De cette manière sont estimées les probabilités liées aux transitions du treillis construit.In
A l'étape 306, le produit de l'équation (4) est effectué sur les probabilités P(Xn,Kn|Y1 n) avec n variant de 1 à N. Ce produit est effectué pour les différentes combinaisons possibles de ces probabilités. Ainsi, la probabilité P(X,K|Y) la plus grande est retenue et les probabilités P(Xn,Kn|Y) constituant ce produit permettent de déterminer le chemin le plus vraisemblable dans le treillis. A partir du treillis et de la table correspondante du modèle produit source/décodeur, il est possible de déterminer les symboles correspondant à ce chemin et de reconstituer une séquence de symboles S1 K.In
Dans une autre réalisation possible, le treillis sur lequel l'estimation est effectuée peut être pré-calculé et mémorisé à partir du modèle produit source/décodeur et de la longueur N de la séquence de bits observée. Ainsi, en référence à la
Pour un train de bits reçus comprenant N=6 bits, pour un nombre connu de symboles à trouver K=7 et pour un modèle de source/décodeur illustré en
A chaque arrivée de train de bits (ayant le même modèle, les mêmes valeurs de K et N que le treillis), une passe avant et une passe arrière sont effectuées sur le train de bits aux étapes 404 et 406, par exemple de façon parallèle. Les probabilités P(Xn,Kn|Y1 n) et P(Yn+1 N | Xn,Kn) sont calculées comme indiqué aux équations (6) et (7). Le produit de ces probabilités est effectué à l'étape 408 pour chaque valeur de n et correspond à chaque transition du treillis. Il est ensuite procédé au calcul du produit des probabilités pour n variant de 1 à N à l'étape 410 comme indiqué en (4) pour obtenir des probabilités P(X,K|Y). Il est gardé le maximum parmi ces probabilités P(X,K|Y) pour déterminer le chemin le plus vraisemblable sur le treillis et la séquence de symboles correspondante.At each arrival of bitstream (having the same model, the same values of K and N as the trellis), a forward pass and a backward pass are made on the bit stream at
Selon l'exemple de la
Il a été présenté un procédé de décodage optimal de codes quasi-arithmétiques. Ce procédé nécessite la création et la manipulation d'un treillis d'estimation, comme par exemple celui de la
Un procédé d'estimation applicable au codage arithmétique et au codage quasi-arithmétique est maintenant décrit quelle que soit la précision T choisie, c'est-à-dire quelque soit l'efficacité en compression choisie.An estimation method applicable to arithmetic coding and quasi-arithmetic coding is now described regardless of the precision T selected, that is to say whatever the compression efficiency chosen.
Ce procédé s'appuie sur les même modèles de source, de codeur et de décodeur que ceux vus précédemment. Le nombre d'états des modèles de codeur et de décodeur étant trop important pour que ceux-ci puissent être être pré-calculés, le treillis d'estimation correspondant ne peut pas non plus être construit. Le procédé d'estimation proposé ci-après est donc basé sur l'exploration d'un sous-ensemble du treillis d'estimation, qui est considéré comme un arbre. Ce procédé est appelé procédé d'estimation séquentiel. Il peut s'appliquer à partir des modèles source/codeur et effectuer les calculs séquentiels en utilisant "l'horloge symbole", c'est-à-dire un compteur incrémenté selon le nombre de symboles à trouver. Il peut également s'appliquer à partir des modèles source/décodeur et effectuer les calculs séquentiels en utilisant "l'horloge bit", c'est-à-dire un compteur incrémenté selon le nombre de bits à décoder. Ce deuxième procédé d'estimation est présenté pour une source binaire à titre d'exemple uniquement. Il peut également s'appliquer à une source M-aire (M>2).This process relies on the same source, encoder and decoder models as those previously seen. Since the number of states of the encoder and decoder models is too large for them to be pre-calculated, the corresponding estimation lattice can not be built either. The estimation method proposed below is therefore based on the exploration of a subset of the estimation mesh, which is considered as a tree. This process is called a sequential estimation method. It can be applied from the source / encoder models and perform the sequential calculations using the "symbol clock", that is to say a counter incremented according to the number of symbols to be found. It can also be applied from the source / decoder models and perform the sequential calculations using "bit clock", that is to say a counter incremented according to the number of bits to be decoded. This second estimation method is presented for a binary source by way of example only. It can also apply to an M-ary source (M> 2).
La
A l'étape 500, la probabilité de décoder une séquence de symboles (de 1 à k) connaissant des bits du flux de seconds éléments binaires P(S1 k/Y1 Nk) pour chaque instant symbole k peut être calculée en une passe avant unique grâce à la décomposition de l'équation (9) où Nk est le nombre total de bits émis lorsqu'on est dans l'état Xk. En tenant compte du modèle de source binaire défini à l'équation(1) et en considérant un canal sans mémoire, la probabilité d'observer les seconds éléments binaires correspondant à un état du modèle ne dépend que des premiers éléments binaires pour cet état, cette probabilité peut être réécrite comme indiqué à l'équation (10).In
Le calcul est initialisé comme indiqué en (11) avec S1 = s1 pouvant prendre deux valeurs possibles 0 ou 1 dans le cas d'une source binaire, et M valeurs possibles dans le cas d'une source M-aire. C1 est l'état de départ du modèle de source. Pour un canal considéré sans mémoire, le second terme de cette équation modélisant le bruit introduit par ce canal est donné à l'équation (12) comme le produit, pour un état Xk donné du modèle source/codeur, des probabilités d'observer un second élément binaire Yn pour un premier élément binaire transmis Un. Partant de cette initialisation, l'équation (10) est utilisée pour calculer P(S1 k/Y1 Nk) pour chaque instant symbole k consécutif.The calculation is initialized as indicated in (11) with S 1 = s 1 being able to take two
Toutes les séquences de symboles possibles étant considérées, la taille du treillis d'estimation croît exponentiellement avec le nombre de symboles K. Ainsi, l'étape 502 autorise le calcul des probabilités P(S1 k/Y1 Nk) pour un nombre de symboles k variant de 1 à x1. Pour les symboles à partir de cette valeur x1, un élagage intervient à l'étape 504 pour maintenir une complexité du treillis d'estimation à un niveau désiré, x1 est un entier inférieur ou égal au nombre de symboles K.Since all the possible symbol sequences are considered, the size of the estimation mesh grows exponentially with the number of symbols K. Thus,
L'élagage de l'étape 504 peut comporter différentes réalisations. A titre d'exemple, deux réalisations sont présentées ci-après. Les réalisations peuvent être combinées ou employées séparément.The pruning of
Ainsi, dans une première réalisation de l'élagage de l'étape 504, seuls les W noeuds les plus vraisemblables d'un état (Xk, Nk) sont sélectionnés et ceci à partir d'un nombre k = x1 pour garantir la significativité des probabilités calculées (appelées vraisemblances). La valeur de W dépend des ressources de mémoire disponibles. Ainsi, pour chaque état (Xk, Nk), seules les W probabilités les plus grandes parmi les probabilités calculées de décoder une séquence de symboles (de 1 à k) connaissant des bits du flux de seconds éléments binaires P(S1 k/Y1 Nk) sont sélectionnées et mémorisées. Dans une variante, il est possible de garantir une terminaison correcte de l'estimation en raffinant cette contrainte. Ainsi, seuls les w noeuds les plus vraisemblables seront sélectionnés et conservés pour chaque valeur possible de Nk (correspondant à l'horloge symbole). Nk est le nombre de bits émis pour k symboles codés lors du codage. La relation entre W et w est donnée en (19) avec Nkmax et Nkmin dépendant respectivement de la probabilité de la séquence S1 k la plus et la moins vraisemblable.Thus, in a first embodiment of the pruning of
Dans une deuxième réalisation de l'élagage de l'étape 504, le critère d'élagage est basé sur un seuil appliqué sur la vraisemblance des chemins. La vraisemblance d'un chemin est donnée par l'équation (8) (horloge symbole). Dans cette équation, les termes P(Y|U) sont liés au modèle de canal comme indiqué dans l'équation (12). P(Yn=yn|Un=un) représente la probabilité qu'un bit yn soit observé sachant qu'un bit un a été transmis ou la probabilité de recevoir un bit yn sachant q'un bit un a été émis, ce qui équivaut à la probabilité que le bit observé soit erroné. Soit p la probabilité d'erreur binaire moyenne qui est fixée arbitrairement comme tolérable sur le canal durant l'estimation. L'élagage consiste à supprimer tous les chemins pour lesquels la probabilité d'erreur binaire moyenne à la sortie du canal est supérieure à p. Ainsi, à chaque instant symbole Nk, le critère d'élagage comprend un seuil p comparé aux probabilités P(YNk|UNk) de manière à ce que tous les chemins du treillis d'estimation pour lesquels est vérifié P(YNk|UNk) < (1-p)Nk, soient supprimés. Seules sont mémorisées les probabilités de décoder une séquence de symboles (de 1 à k) connaissant des bits du flux de seconds éléments binaires P(S1 k/Y1 Nk), calculées à partir des probabilités P(YNk|UNk) plus grandes que le seuil minimal p.In a second embodiment of the pruning of
Après incrémentation de la valeur k d'une unité, la probabilité P(S1 k/Y1 Nk) pour le nombre de symboles Nk (avec k>x) est calculée à l'étape 506. L'élagage réalisé à l'étape 504 est réitéré pour ce nouvel instant symbole Nk. Les étapes 504 et 506 sont effectuées pour une valeur k incrémentée jusqu'à la valeur K. A l'étape 510, une fois la valeur K atteinte, les probabilités P(S1 K/Y1 NK) marginales a posteriori sont connues pour toutes les séquences s1 K possibles. La séquence s1 K la plus vraisemblable est choisie, c'est-à-dire la séquence pour laquelle la probabilité P(S1 K/Y1 NK) est la plus grande parmi les séquences possibles du treillis d'estimation obtenu.After incrementing the value k by one unit, the probability P (S 1 k / Y 1 Nk ) for the number of symbols Nk (with k> x) is calculated at
Lorsque le nombre de bits N est connu, il peut constituer une contrainte sur la terminaison du treillis d'estimation et les chemins qui ne respectent pas la contrainte N ne sont pas considérés.When the number of bits N is known, it can constitute a constraint on the termination of the estimation lattice and the paths which do not respect the constraint N are not considered.
La
A l'étape 600, la probabilité de décoder une séquence de Kn symboles connaissant les bits du flux de seconds éléments binaires P(S1 Kn/Y1 n) pour chaque bit n (défini ultérieurement) peut être calculée en une passe avant unique grâce à la décomposition de l'équation (13) où Kn est le nombre total de symboles décodés à la réception du bit n dans l'état Xn. En tenant compte du modèle de source binaire qui définit en (2) les probabilités de transition entre états (Xn,Kn) et (Xn+1,Kn+1), la probabilité P(S1 Kn) d'obtenir une séquence de symbole S1 Kn s'exprime de manière récurrente selon l'équation (14) en utilisant l'équation (15). En considérant un canal sans mémoire, c'est-à-dire que la probabilité d'observer les seconds éléments binaires correspondant à un état du modèle ne dépend que des premiers éléments binaires transmis pour cet état, la probabilité P(Y1 n/U1 n) peut être réécrite et permet d'obtenir la probabilité P(S1 Kn/Y1 n) comme indiqué en (16).In
Comme dans le cas de la
Toutes les séquences de symboles possibles étant considérées, la taille du treillis d'estimation croît exponentiellement avec le nombre de symboles K pouvant être estimé. Ainsi, l'étape 602 autorise le calcul des probabilités P(S1 Kn/Y1 n) à l'étape 600 pour un nombre de bits n variant de 1 à x2, x2 étant un entier désignant un nombre seuil de bits. Pour les bits à partir de cette valeur x2, un élagage intervient à l'étape 604 pour maintenir une complexité du treillis d'estimation à un niveau désiré.Since all possible symbol sequences are considered, the size of the estimation mesh grows exponentially with the number of K symbols that can be estimated. Thus,
L'élagage de l'étape 604 peut comporter différentes réalisations correspondant aux réalisations de l'étape 504 de la
Ainsi, dans une première réalisation de l'élagage de l'étape 604, seuls les W noeuds les plus vraisemblables d'un état (Xn, Kn) sont gardés et ceci à partir d'un nombre n = x2 pour garantir la significativité des probabilités calculées (appelées vraisemblances). Ainsi, pour chaque état (Xn, Kn), seules les W probabilités les plus grandes parmi les probabilités calculées de décoder une séquence de Kn symboles connaissant des bits du flux de seconds éléments binaires P(S1 k/Y1 Nk) sont mémorisées.Thus, in a first embodiment of the pruning of
Dans une variante, il est possible de conserver seuls les w noeuds les plus vraisemblables pour chaque valeur possible de Kn (correspondant à l'horloge bit). Kn est le nombre de symboles émis pour n bits reçus lors du décodage. La relation entre W et w est donnée en (20) avec Knmax et Knmin dépendant respectivement de la probabilité de la séquence S1 k la plus et la moins vraisemblable.In a variant, it is possible to keep only the most likely nodes w for each possible value of K n (corresponding to the bit clock). K n is the number of symbols transmitted for n bits received during decoding. The relation between W and w is given in (20) with K nmax and K nmin depending respectively on the probability of the most and least likely sequence S 1 k .
Dans une deuxième réalisation de l'élagage de l'étape 604, le critère d'élagage est basé sur un seuil appliqué sur la vraisemblance des chemins. La vraisemblance d'un chemin est donnée par l'équation (13) (horloge bit). Dans cette équation, les termes P(Y|U) sont liés au modèle de canal comme indiqué dans l'équation (16). Comme proposé pour la
Après incrémentation de la valeur n d'une unité, la probabilité P(S1 Kn/Y1 n) pour le nombre de bits n (avec n>x2) est calculée à l'étape 606. L'élagage réalisé à l'étape 604 estréitéré pour ce nouvel instant bit Kn. Les étape 604 et 606 sont effectuées pour une valeur n incrémentée jusqu'à la valeur N. A l'étape 610, une fois la valeur N atteinte, la séquence S1 N la plus vraisemblable est choisie, c'est-à-dire la séquence pour laquelle la probabilité P(S1 K/Y1 N) est la plus grande parmi les séquences possibles du treillis d'estimation obtenu.After incrementing the value n by one unit, the probability P (S 1 Kn / Y 1 n ) for the number of bits n (with n> x 2) is calculated in
A la fin de l'estimation, les probabilité P(S1 K/Y1 N) marginales a posteriori sont connues pour toutes les séquences s1 K restant après élagage.At the end of the estimation, the posterior marginal P (S 1 K / Y 1 N ) probabilities are known for all the K 1 sequences remaining after pruning.
Les contraintes de terminaison mentionnées peuvent être vues comme un moyen de forcer la synchronisation à la fin de la séquence de symboles. En effet, elles contraignent le décodeur à obtenir la bonne correspondance entre le nombre de symboles décodés et le nombre de bits observés. Cependant, ces contraintes n'ont pas d'effet de synchronisation sur le milieu de la séquence.The termination constraints mentioned can be seen as a means of forcing the synchronization at the end of the symbol sequence. Indeed, they force the decoder to obtain the correct correspondence between the number of decoded symbols and the number of bits observed. However, these constraints have no synchronization effect on the middle of the sequence.
L'addition à la séquence de symboles d'information complémentaire permet de favoriser la re-synchronisation sur l'ensemble de la séquence. Ainsi, des symboles supplémentaires, ou marqueurs, sont introduits à des positions connues dans la séquence de symboles. Le choix de ces symboles est arbitraire, et se base sur le principe des techniques décrites dans (2, 4, 11, 5, 14). A titre d'exemple uniquement, un des symboles dans l'alphabet peut être choisi ou le dernier symbole codé peut être répété. Ces marqueurs sont insérés à position connue suivant l'horloge symbole. Par conséquent, la position des bits supplémentaires correspondants dans le train binaire dépend de la séquence de symboles codée, et est aléatoire.The addition to the complementary information symbol sequence makes it possible to promote re-synchronization over the entire sequence. Thus, additional symbols, or markers, are introduced at known positions in the symbol sequence. The choice of these symbols is arbitrary, and is based on the principle of the techniques described in (2, 4, 11, 5, 14). By way of example only, one of the symbols in the alphabet may be chosen or the last coded symbol may be repeated. These markers are inserted at known position according to the symbol clock. Therefore, the position of the corresponding additional bits in the bitstream depends on the coded symbol sequence, and is random.
Bien évidemment, les procédés développés précédemment doivent tenir compte de cette information supplémentaire. Cette connaissance à priori peut être exploitée par les procédés d'estimation. La variable Kn (k à horloge symbole) indique quand un marqueur est attendu. Les probabilités de transition correspondantes dans le treillis d'estimation sont mises à jour en conséquence. Une probabilité nulle est affectée à toutes les transitions qui n'émettent pas les marqueurs attendus, alors qu'une probabilité de 1 est affectée aux autres. Par conséquent, certains chemins dans le treillis peuvent être supprimés, ce qui amène une réduction du nombre d'états et une meilleure capacité de re-synchronisation.Of course, the previously developed methods must take into account this additional information. This prior knowledge can be exploited by estimation methods. The variable K n (k with symbol clock) indicates when a marker is expected. The corresponding transition probabilities in the estimation lattice are updated accordingly. A zero probability is assigned to all transitions that do not emit the expected markers, while a probability of 1 is assigned to the others. As a result, some paths in the trellis may be removed, resulting in a reduction in the number of states and a better ability to re-synchronize.
Des exemples de procédés de décodage robuste sont décrits ci-dessus à titre d'exemple. D'autres variantes peuvent être envisagées. De plus, d'autres critères d'élagage peuvent être prévues et combinés avec les procédés de l'invention. La conversion M-aire/binaire n'est pas indispensable, mais permet d'utiliser de petites valeurs de T. Les procédés de décodage présentés ci-dessus pour des sources binaires peuvent également fonctionner pour des sources M-aires.Examples of robust decoding methods are described above by way of example. Other variants can be envisaged. In addition, other pruning criteria may be provided and combined with the methods of the invention. M-ary / binary conversion is not required, but allows the use of small T values. The decoding methods presented above for binary sources can also work for M-ary sources.
Comme développé dans la description ci-dessus, l'invention propose un procédé de décodage robuste de codes arithmétiques basé sur l'utilisation de codes de type codes arithmétiques comprenant les codes arithmétiques à précision réduite, appelés codes quasi-arithmétiques. La précision de ces codes quasi-arithmétiques est un paramètre ajustable en fonction de l'effet recherché. Une précision très élevée permet d'atteindre des performances en compression identiques aux codes arithmétiques. Une précision plus faible permet d'accroître la robustesse, au prix d'une perte raisonnable en compression.As developed in the above description, the invention provides a method for robust decoding of arithmetic codes based on the use of arithmetic code type codes including reduced precision arithmetic codes, referred to as quasi-arithmetic codes. The precision of these quasi-arithmetic codes is an adjustable parameter depending on the desired effect. Very high accuracy achieves compression performance identical to arithmetic codes. Lower accuracy increases robustness at the cost of a reasonable loss of compression.
Comparée à un décodage dit "instantané" classique, l'invention permet de réduire fortement le phénomène de désynchronisation du décodeur. Comparée à d'autres méthodes classiques de décodage dite "séquentielles" ou sur structures d'arbres, l'invention offre une plus grande souplesse pour ajuster un compromis entre l'efficacité de compression/la robustesse/la complexité du décodage. En effet, l'invention comprend un ensemble de procédés pouvant être choisis selon la complexité permise par le terminal, selon le taux d'erreur observé sur le canal. Un procédé de décodage séquentiel comprend un mécanisme de synchronisation couplé à une technique d'élagage qui permet de contrôler la complexité du processus de décodage. Un procédé de décodage sur treillis avec paramétrisation du compromis complexité/robustesse/compression permet d'utiliser le procédé de manière couplée avec un décodeur de canal (décodeur de codes convolutifs), utilisation difficile avec les procédés séquentiels traditionnels.Compared to a so-called "instantaneous" conventional decoding, the invention makes it possible to greatly reduce the desynchronization phenomenon of the decoder. Compared to other conventional methods of so-called "sequential" decoding or on tree structures, the invention offers a greater flexibility to adjust a compromise between compression efficiency / robustness / complexity of decoding. Indeed, the invention comprises a set of methods that can be chosen according to the complexity allowed by the terminal, according to the error rate observed on the channel. A sequential decoding method includes a synchronization mechanism coupled with a pruning technique that controls the complexity of the decoding process. A trellis decoding method with parameterization of the complexity / robustness / compression compromise makes it possible to use the method in a manner coupled with a channel decoder (convolutional code decoder), which is difficult to use with traditional sequential methods.
Dans l'invention proposée, il doit être clair que les éléments d'ordre mathématique décrits n'ont pas d'intérêt en eux-mêmes, mais seulement dans la mesure où ils concernent des flux d'informations (par exemple signal sonore, vidéo), soumis à des contraintes matérielles.In the proposed invention, it must be clear that the mathematical elements described are not of interest in themselves, but only insofar as they concern information flows (for example, sound signal, video ), subject to material constraints.
Claims (20)
- Decoding method, in an arithmetic or almost-arithmetic decoder, binary elements received from a channel in x-ary symbols comprising the following steps:- receive from said channel a stream of N second binary elements Yi corresponding to N first binary elements Ui transmitted, by means of said channel, from an arithmetic or almost-arithmetic coder to said decoder with i between 1 and N, said coder coding a source of symbols;- decode said N second binary elements Yi into a stream of K x-ary symbols Sj with j between 1 and K;characterised in that the decoding step comprises:a. calculate (306, 410) probabilities of resulting in product states knowing bits of the stream of second binary elements Yi,
from a model of said channel,
from a model of said source and
from a product model defining a correspondence between said x-ary symbols Sj and said first binary elements Ui, from product states in a 'product' states diagram, a product state comprising a source state and a state of a model of said coder or of said arithmetic or almost-arithmetic decoder,b. determine the most probable stream (308. 412, 510, 610) of x-ary symbols from probabilities calculated in step a. - Method according to claim 1, characterised in that each product state comprises a source state (Ck) and a state of said model of said arithmetic or almost-arithmetic coder, said state of said model of said coder comprising: a low limit value (lowSk) of an interval resulting from successive subdivisions of an interval corresponding to the coding of a sequence of k x-ary symbols, an upper limit value of said interval (upSk) and a counter (Nk) representing the number of first binary elements associated with said k first x-ary symbols.
- Method according to claim 1, characterised in that said product state comprises a source state and a state of said model of said arithmetic or almost-arithmetic decoder, said state of said model of said decoder comprising: a value of a low limit (lowUn) of a first segment of an interval defined by the reception of a sequence of n second binary elements, a value of an upper limit (upUn) of said first segment, a value of a low limit (lowSKn) of a second segment of said interval obtained when a sequence of x-ary symbols is determined from said n second binary elements, a value of an upper limit (upSKn) of said second interval and a counter (Kn) representing the number of determined x-ary symbols associated with said n second binary elements received.
- Method according to claim 1, characterised in that it comprises a determination step of a stream of m-ary symbols from the stream of determined x-ary symbols,
m being greater than or equal to x and the source model comprising transitions associated with a correspondence between source m-ary symbols (Ak) and target x-ary symbols (Sk). - Method according to one of the aforementioned claims, characterised in that the product and coder or decoder models are of arithmetic type.
- Method according to one of the aforementioned claims, characterised in that step a. comprises the calculations, by steps, of decoder products an x-ary symbol knowing stream bits of second binary elements.
- Method according to claim 6, characterised in that step a. comprises the generation of a tree constituted by states linked by transitions, each state corresponding to a probability calculation step and each transition, to the start of a state, corresponding to one of these calculated probabilities.
- Method according to claims 1 and 7, characterised in that step b. comprises the calculation of the product of the probabilities corresponding to successive transitions in the tree and the selection of the largest product corresponding to the most probable successive transitions and to the most probable stream of x-ary symbols.
- Method according to claims 6 and 8, characterised in that step a. comprises the calculation, for a given number of successive x-ary symbols to decode, of the probabilities of decoding a sequence of x-ary symbols knowing bits from the stream of second binary elements.
- Method according to claims 6 and 8, characterised in that step a. comprises the calculation, for a given number of successive bits of the stream of second binary elements, of the probabilities of decoding a sequence of x-ary symbols knowing bits from the stream of second binary elements.
- Method according to one of claims 1 to 5, characterised in that from the product model establishing said correspondence, step a. comprisesc1. the successive construction of states linked by transitions of a diagram of states produced from an original state to a final state, each state defining an expected number of x-ary symbols decoded for a given number of bits of the stream of second binary elements from the original state.
- Method according to claim 11, characterised in that the construction of step a. comprisesc2. the successive deletion of states of the diagram of states produced, from the final state to the original state, for which the expected number of x-ary symbols for a given number of bits of the stream of second binary elements is different from a maximum known number of x-ary symbols.
- Method according to one of claims 11 to 12, characterised in that step a. comprisesc1. the calculation, after each state constructed, of the first successive probabilities to result in a given state knowing past bits of the stream of second binary elements,c2. the calculation, for each state from the final state to the original state, of the second successive probabilities to observe the next bits of the stream of second binary elements knowing this given state.
- Method according to one of claims 11 to 12, characterised in that step a. comprisesc3. the calculation, for each state of the diagram from the original state to the final state, of the first successive probabilities to result in this given state knowing the past bits of the stream of second binary elements, and, for each state from the final state to the original state, of the second successive probabilities to observe the next bits of the stream of second binary elements knowing a given status.
- Method according to one of claims 11 to 14, characterised in that step a. comprises the calculation of the probability to result in this given state knowing the bits of the stream of second binary elements by obtaining the product of the first and second probabilities for each state.
- Method according to claims 1 and 15, characterised in that step b. comprises the calculation of the products of probabilities of the different successive states possible then the selection of the maximum product.
- Method according to claims 11 and 16, characterised in that, the correspondence defined by the product model being established in the form of a table, the step b. comprises the establishment of the stream of x-ary symbols corresponding to these successive states by reading said table.
- Arithmetic or almost-arithmetic decoding device of binary elements received from a channel in x-ary symbols comprising,
means for receiving from said channel a stream of N second binary elements Yi corresponding to N first binary elements Ui transmitted, by means of said channel, from an arithmetic or almost-arithmetic coder to said decoder with i between 1 and N, said coder coding a source of symbols;
means for decoding said N second binary elements Yi into a stream of K x-ary symbols Sj with j between 1 and K;
characterised in that it comprises means for calculating probabilities of resulting in product states knowing bits of the stream of second binary elements Y, from a model of said channel,
from a model of said source and
from a product model defining a correspondence between said x-ary symbols Sj and said first binary elements Ui, according to product states in
a diagram of 'product' states, a product state comprising a source state and a state of a model of said coder or said arithmetic or almost-arithmetic decoder, and
means to determine the most probable stream of x-ary symbols from calculated probabilities. - Device according to claim 18, characterised in that each product state comprises a source state (Ck) and a state of said model of said arithmetic or almost-arithmetic coder, said coder model state comprising: a low limit value (lowSk) of an interval resulting from successive subdivisions of an interval corresponding to the coding of a sequence of k x-ary symbols, an upper limit value of said interval (upSk) and a counter (Nk) representing the number of first binary elements associated with the k first x-ary symbols.
- Device according to claim 18, characterised in that said product state comprises a source state and a state of said model of said arithmetic or almost-arithmetic decoder, said state of said model of said decoder comprising: a value of a low limit (lowUn) of a first segment of an interval defined by the reception of a sequence of n second binary elements, a value of an upper limit (upUn) of said first segment, a value of a low limit (lowSKn) of a second segment of said interval obtained when a sequence of x-ary symbols is determined from said n second binary elements, a value of an upper limit (upSKn) of said second interval and a counter (Kn) representing the number of determined x-ary symbols associated with said n second binary elements received.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0209287A FR2842670B1 (en) | 2002-07-22 | 2002-07-22 | IMPROVED COMPRESSION OF DIGITAL DATA |
FR0209287 | 2002-07-22 | ||
FR0303288A FR2842672B1 (en) | 2002-07-22 | 2003-03-18 | DEVICE AND METHOD FOR ROBUST DECODING OF ARITHMETIC CODES |
FR0303288 | 2003-03-18 | ||
PCT/FR2003/002246 WO2004012340A2 (en) | 2002-07-22 | 2003-07-16 | Device and method for robust decoding of arithmetic codes |
Publications (2)
Publication Number | Publication Date |
---|---|
EP1527521A2 EP1527521A2 (en) | 2005-05-04 |
EP1527521B1 true EP1527521B1 (en) | 2018-03-21 |
Family
ID=30001936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP03755610.7A Expired - Lifetime EP1527521B1 (en) | 2002-07-22 | 2003-07-16 | Device and method for robust decoding of arithmetic codes |
Country Status (5)
Country | Link |
---|---|
US (1) | US7215265B2 (en) |
EP (1) | EP1527521B1 (en) |
JP (1) | JP4169738B2 (en) |
FR (1) | FR2842672B1 (en) |
WO (1) | WO2004012340A2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2398191B (en) * | 2004-03-10 | 2004-12-22 | David Asher Jaffa | Adaptive quantiser |
EP1775957A1 (en) | 2005-10-14 | 2007-04-18 | Inria Institut National de Recherche en Informatique et en Automatique | Improved multi-resolution image processing |
US8108833B2 (en) * | 2007-04-20 | 2012-01-31 | National Instruments Corporation | Automatically generating a graphical data flow program from a statechart |
EP2169535A1 (en) * | 2008-09-22 | 2010-03-31 | Thomson Licensing | Method, apparatus and computer program support for regular recoding of a positive integer |
CN102045558B (en) * | 2009-10-22 | 2012-09-19 | 鸿富锦精密工业(深圳)有限公司 | Entropy decoding method |
GB2495106B (en) | 2011-09-28 | 2020-09-09 | Metaswitch Networks Ltd | Searching and storing data in a database |
US8976474B1 (en) * | 2013-10-03 | 2015-03-10 | Seagate Technology Llc | Universal modulation coding for a data channel |
US11362681B2 (en) | 2020-08-21 | 2022-06-14 | Seagate Technology Llc | One-shot state transition probability encoder and decoder |
CN115996104B (en) * | 2021-10-18 | 2024-05-17 | 华为技术有限公司 | Self-learning joint source channel iterative decoding method of arithmetic code and related equipment |
FR3139212B1 (en) * | 2022-08-29 | 2024-10-04 | Commissariat A Lenergie Atomique Et Aux Energies Alternatives | System and method for constructing adaptive streaming data partitioning structures |
US12095485B2 (en) * | 2022-10-26 | 2024-09-17 | Radu Mircea Secareanu | Binary data compression / decompression method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3302210B2 (en) * | 1995-02-10 | 2002-07-15 | 富士通株式会社 | Data encoding / decoding method and apparatus |
JP3276860B2 (en) * | 1996-09-02 | 2002-04-22 | 富士通株式会社 | Data compression / decompression method |
-
2003
- 2003-03-18 FR FR0303288A patent/FR2842672B1/en not_active Expired - Fee Related
- 2003-07-16 EP EP03755610.7A patent/EP1527521B1/en not_active Expired - Lifetime
- 2003-07-16 WO PCT/FR2003/002246 patent/WO2004012340A2/en active Application Filing
- 2003-07-16 JP JP2004523851A patent/JP4169738B2/en not_active Expired - Fee Related
- 2003-07-16 US US10/521,962 patent/US7215265B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1527521A2 (en) | 2005-05-04 |
JP4169738B2 (en) | 2008-10-22 |
WO2004012340A3 (en) | 2004-04-08 |
FR2842672B1 (en) | 2005-01-28 |
WO2004012340A2 (en) | 2004-02-05 |
US20060106901A1 (en) | 2006-05-18 |
US7215265B2 (en) | 2007-05-08 |
JP2005534241A (en) | 2005-11-10 |
FR2842672A1 (en) | 2004-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0511139B1 (en) | Decoding process for a maximum likelihood convolutional code and weighting of the decisions, and decoder therefor | |
Guyader et al. | Joint source-channel turbo decoding of entropy-coded sources | |
EP0827285B1 (en) | Information bits transmission process with error correction coding, and coder and decoder therefor | |
EP0827284B1 (en) | Information bits transmission process with error correction coding, and coder and decoder therefor | |
Guionnet et al. | Soft decoding and synchronization of arithmetic codes: Application to image transmission over noisy channels | |
FR2815199A1 (en) | Cyclic turbo coding scheme improves minimum Hamming distance | |
FR2747255A1 (en) | METHOD AND DEVICE FOR CONVOLUTIVE CODING OF DATA BLOCKS, AND CORRESPONDING DECODING METHOD AND DEVICE | |
EP1527521B1 (en) | Device and method for robust decoding of arithmetic codes | |
US20070216545A1 (en) | Distributed source coding with context | |
FR2785743A1 (en) | DEVICE AND METHOD FOR ADAPTING TURBOCODERS AND DECODERS ASSOCIATED WITH VARIABLE LENGTH SEQUENCES | |
EP2661814B1 (en) | Decoding method and decoder | |
EP1230736B1 (en) | Method for decoding data coded with an entropic code, corresponding decoding device and transmission system | |
WO2005101668A1 (en) | Joint source-channel decoding method and associated joint source-channel decoder | |
FR2790621A1 (en) | Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period | |
WO2007003855A2 (en) | Method and system for encoding a data sequence | |
CA2823570C (en) | Method for correcting messages containing bit stuffing | |
EP1525663B1 (en) | Digital data compression robust relative to transmission noise | |
FR2828359A1 (en) | TRANSMITTER, RECEIVER, METHODS, PROGRAM AND SIGNAL SUITABLE FOR MODULATIONS WITH A LARGE NUMBER OF STATES | |
WO2006108768A1 (en) | Method and device for decoding a variable length code taking into account an a priori probability information | |
FR2981526A1 (en) | METHOD AND DEVICE FOR DECODING ENCODED DATA USING AN ERROR CORRECTING CODE, ENCODING METHOD AND DEVICE, AND CORRESPONDING COMPUTER PROGRAM | |
FR2972878A1 (en) | ERROR CORRECTING ENCODING METHOD, DECODING METHOD AND ASSOCIATED DEVICES | |
EP1471647A2 (en) | Encoding and decoding of trellis codes comprising trellis sections constructed on block codes with good distance. | |
EP0982866A1 (en) | Method for convolutional coding and transmission of a stream of packets of digital data, and a method and apparatus for corresponding decoding | |
FR2842670A1 (en) | Device and method for an improved compression of digital data, comprises input of two data flows and coding of symbols by use of table and by selecting redundant words | |
Guionnet et al. | Joint source-channel decoding of quasiarithmetic codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20050119 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK |
|
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: THOMSON LICENSING |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: THOMSON LICENSING |
|
17Q | First examination report despatched |
Effective date: 20110216 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
INTG | Intention to grant announced |
Effective date: 20171011 |
|
GRAJ | Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR1 |
|
GRAL | Information related to payment of fee for publishing/printing deleted |
Free format text: ORIGINAL CODE: EPIDOSDIGR3 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAR | Information related to intention to grant a patent recorded |
Free format text: ORIGINAL CODE: EPIDOSNIGR71 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 60351060 Country of ref document: DE Owner name: INTERDIGITAL VC HOLDINGS, INC., WILMINGTON, US Free format text: FORMER OWNER: INRIA INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE, LE CHESNAY, FR |
|
INTG | Intention to grant announced |
Effective date: 20180208 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D Free format text: NOT ENGLISH |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 982150 Country of ref document: AT Kind code of ref document: T Effective date: 20180415 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D Free format text: LANGUAGE OF EP DOCUMENT: FRENCH |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 60351060 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 16 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20180321 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 982150 Country of ref document: AT Kind code of ref document: T Effective date: 20180321 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180622 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180621 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180723 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 60351060 Country of ref document: DE |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
26N | No opposition filed |
Effective date: 20190102 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20180716 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180716 Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20180731 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180716 Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180716 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 60351060 Country of ref document: DE Owner name: INTERDIGITAL VC HOLDINGS, INC., WILMINGTON, US Free format text: FORMER OWNER: THOMSON LICENSING, ISSY-LES-MOULINEAUX, FR |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20190725 Year of fee payment: 17 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20190930 Year of fee payment: 17 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180321 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20030716 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 60351060 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210202 |