WO1999033185A1 - Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant - Google Patents

Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant Download PDF

Info

Publication number
WO1999033185A1
WO1999033185A1 PCT/FR1998/002565 FR9802565W WO9933185A1 WO 1999033185 A1 WO1999033185 A1 WO 1999033185A1 FR 9802565 W FR9802565 W FR 9802565W WO 9933185 A1 WO9933185 A1 WO 9933185A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
vectors
rank
variable
leader
Prior art date
Application number
PCT/FR1998/002565
Other languages
English (en)
Inventor
Patrick Rault
Christine Guillemot
Original Assignee
France Telecom S.A.
Telediffusion De France S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom S.A., Telediffusion De France S.A. filed Critical France Telecom S.A.
Publication of WO1999033185A1 publication Critical patent/WO1999033185A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding

Definitions

  • the present invention relates to a method of coding a vector of a network representative of a quantized signal.
  • a vector is for example obtained by a vector quantization operation on a network. It can also be delivered by a vector or block data transmission system.
  • a method of vector quantization on a network is known and is generally used in systems for compressing audio, video and multimedia signals in the broad sense.
  • Lattice vector quantization is the multidimensional extension of uniform scalar quantization. The latter consists in separately quantifying a sign, for example representative of each pixel of an image, in 2 ⁇ levels where N is the number of bits allocated to the quantizer.
  • vector quantization on a network it is associated with a regular network and makes it possible to determine a quantization vector, or quantized vector, belonging to the network in question whose components are representative of the values taken by the signals to be coded.
  • the quantification operation therefore consists in determining, from an original vector of which each of the components is representative of the value taken by a signal to be coded and therefore belongs to a non-countable set, such as the set of real numbers R, a quantized vector x each of whose components belongs to a countable set such as the set of relative numbers Z
  • a non-countable set such as the set of real numbers R
  • a quantized vector x each of whose components belongs to a countable set such as the set of relative numbers Z
  • a network is a set of vectors of a space of dimension n forming an additive group, in the mathematical sense of the term. More details on networks can be found in a book written by CO ⁇ WAY JH and SLOA ⁇ E NJA entitled "Sphere Packings, Lattices and groups" published in 1993 by Springer Verlag (New York, NY).
  • the networks for which the present invention finds an optimal application satisfy the following condition: if a vector v, with n components, belongs to the network considered, then all the vectors u obtained by permutations carried out on the components of the vector v also belong to the network . For example, if the vector ⁇ 1, 2, 1, 0 ⁇ belongs to the network then the vector ⁇ 2, 1, 0, 1 ⁇ too.
  • the various conventional types of networks satisfying this present condition are those known in the literature under the names of network Z n , A ,,, D n , the face-centered cubic network (D 3 ), and the network E 8 , or the Gosset network, which is described by T. GOSSET in an article entitled “On the regular and semi-regular figures in space of n dimensions” published in Messenger Math., Vol 29, 1900.
  • indexing operation also called numbering or labeling of vectors, a code.
  • This operation of indexing a vector consists, from this one, in searching for its index in a dictionary.
  • the reverse operation is carried out which is therefore done from an index and which makes it possible to find the vector considered in the same dictionary. Because in general the signals thus processed have particular statistical properties and, in order to reduce the costs of searching the dictionary which is generally large, special indexing methods are used.
  • angle in dimension n 2.
  • leader vector It is described by LAMBLIN and ADOUL in an article entitled "Spherical vector quantization algorithm from the Gosset network of order 8" published in the Annals of Telecommunications, vol. 43, n ° 3-4 of 1988.
  • this method starting from each vector of the network, we consider the set of vectors which are obtained by permutations of the components of said vector. Among these vectors, we define a representative which is then called the leading vector and which is noted /. We can show that this set of vectors is an equivalence class, in the mathematical sense of the term.
  • the vector leader / chosen to represent the other vectors is the one whose n components are ordered in decreasing order such as 1 (0) ⁇ l (l) ⁇ ... l (n-l).
  • FIG. 1 a diagram illustrating a quantification and coding process.
  • the actual quantization operation is carried out, on the basis of a signal to be coded s, by a quantization unit 10 which delivers the quantized vector x.
  • a quantization unit 10 which delivers the quantized vector x.
  • This is the subject, on the one hand, of a search for the vector leader / representative of the set of vectors which have the same components as said vector quantized x by the unit 20 and, on the other hand, of a calculation of the rank t of this quantized vector x in this set by the unit 30.
  • the unit 40 determines the index / of the leading vector / found by the unit 20 and the unit 50 determine, on the basis of this index / of the leader vector and of the rank t of the quantified vector x in the class generated by the leader vector /, the code c of the quantized vector x.
  • FIG. 2 a diagram illustrating a decoding process.
  • the unit 60 determines from the code c received, on the one hand, the leader vector / and, on the other hand, the rank t of the vector to be recovered in the equivalence class defined by said leader vector /. From the leader vector / and rank t, the unit 70 determines the quantized vector x. Then the unit 80 reconstructs the signal s which had been coded at 10.
  • the aim of the present invention is to propose a coding method which makes it possible to find, from a quantified vector, its rank in the equivalence class represented by its leading vector.
  • This method is implemented in a unit 30 such as that shown in FIG. 1.
  • the object of the invention is also to propose a decoding method which makes it possible to recover, from a leader vector and from a rank, the quantified vector having said rank in the equivalence class of said leader vector.
  • This method is implemented in a unit 70 such as that shown in FIG. 2.
  • a method of coding a quantized vector representative of a vectorally quantized signal on a network is characterized in that said coding method consists in determining a vector, called the leading vector, representing the set of vectors which have the same components as said quantized vector and which are, in said set, ordered in a predetermined manner, to determine the order level or rank of said quantized vector in said set of vectors, and to form a code from , on the one hand, of a representative of said leader vector thus determined and, on the other hand, of said rank.
  • all the vectors belonging to a set of vectors represented by the same leading vector are previously ordered by considering for i successively taking the values from 2 to n, n being the dimension of the network, the vectors x, of dimension i, in ordering said vectors x, so that the first vectors are those whose component equal to l (ni) is in position 0, with the respected order of vectors x,.;, then the vectors whose component equal to l (ni) is in position 1 with the respected order of the vectors x,.; and so on to the vectors whose component equal to l (ni) is in position i-1 always with the respected order of the vectors X, and finally to assign to each of the vectors belonging to said set of vectors a rank in said set corresponding to its level of order in the ordering of vectors x sacrificeof dimension n.
  • a new rank is not assigned to a vector which is already at a lower rank.
  • the rank of the quantified vector in the set of vectors represented by the same leader vector in order to determine the rank of the quantified vector in the set of vectors represented by the same leader vector, it consists in determining the position or the positions in the quantified vector of each of the components of the leader vector.
  • the rank of the quantified vector in the set of vectors represented by the same leading vector it consists in, for a variable p successively taking all the values between 0 and n-2, ( n being the dimension of the network), determine the position of the th component of the leading vector in a vector of dimension np, called partial quantized vector, the components of which are, on the one hand, identical to those of a vector, said partial vector leader, also of dimension np whose components are the last np components of the vector leader and, on the other hand, in the order of the same components in the quantified vector, and to multiply the value of the rank calculated for the previous one value/? by the number of distinct vectors having the same components as said partial leader vector, which it is possible
  • the rank of the quantified vector in the set of vectors represented by the same leading vector it consists of, for a variable? successively taking all the values between 0 and q-2, q being the number of distinct elements in the leader vector, and for a variable m initialized to the dimension of the network n, determine the position or positions of the p th element of the vector leader in a vector of dimension m, called partial quantized vector, whose components are, on the one hand, identical to those of a vector, called partial leader vector, also of dimension m whose components are the last m components of the vector leader and, on the other hand, arranged in the order of the same components in the quantized vector, to multiply the value of the rank calculated for the previous value of p by the number of distinct vectors having the same components as said partial leader vector that 'it is possible to build by permutation of said components, and add to said value obtained the value of a variable, called position variable, which is a function of the position or positions of the
  • the present invention also relates to a method for decoding a code formed from, on the one hand, an index representative of a vector, called the leading vector, representing all the vectors which have the same components as said leader vector and which are, in said set, ordered in a predetermined manner, and, on the other hand, of a rank corresponding to the order level of the vector to be recovered in the ordered set of vectors of which said leader vector is the representative , said decoding method consisting in determining from the rank contained in said code and from said leader vector said quantized vector to be recovered.
  • all the vectors belonging to a set of vectors represented by the same leading vector are previously ordered by considering for i successively taking the values from 2 to n, n being the dimension of the network, the vectors Xi of dimension i, by ordering said vectors x, so that the first vectors are those whose component equal to l (ni) is in position 0, with the respected order of vectors x; - ⁇ , then the vectors whose component equal to l (ni) is in position 1 with the respected order of the vectors x ,. / and so on up to the vectors whose component equal to l (ni) is in position there always with the respected order of the vectors x,.
  • the invention relates to a decoding method as just described and which is also characterized in that it consists in determining from the rank deduced from said code, the position in the quantized vector to be recovered from each component of the leading vector deduced from said code, then, from said positions, reconstruct said quantized vector to be recovered.
  • to determine the position in the quantized vector to be recovered from all the components of the leading vector deduced from said code it consists in calculating, for each value taken by a variable m successively between 1 and n, the remainder of the division of a rank variable previously calculated for the value of the variable m, by said variable m, said remainder then representing the position of the (nm) , th component of the leading vector in a vector of dimension m, called vector partial quantified, whose components are identical to those of a vector, called partial leader vector, whose components are the m last components of said leader vector, said rank variable then calculated being equal to the dividend of said division, said rank variable having its value initialized to that of the rank deduced from said transmitted code.
  • it consists, in successive stages where a variable p takes respectively the values between q-2 and
  • the method of coding a quantified vector which has been previously described is characterized in that it consists in forming a code representative of an index which is the algebraic sum of the affected index said leader vector and of the rank of the quantified vector in the set of vectors represented by said leader vector.
  • the method of coding a quantified vector which has been previously described is characterized in that it consists in forming a code representative of an index with two components, the first of which is a number d order assigned to said leading vector representing the set of vectors to which said quantized vector belongs and the other the rank of said quantized vector in this set.
  • the method of coding a quantified vector which has been previously described is characterized in that it consists in forming a code representative of an index with three components, two of which are representative of the leading vector representing the set of vectors to which said quantified vector belongs and the third the rank of the quantified vector in this equivalence class.
  • the two components representative of said leader vector are respectively the standard and the phase of said vector.
  • the two components representative of said leader vector are respectively the norm of said leader vector and an index which discriminates said leader vector from other leader vectors having the same standard.
  • said leader vector when said leader vector is the only one which has a given standard, it consists in not considering the phase of said leader vector.
  • said method of coding a vector consists in forming a code which includes a component representative of the type of the quantified vector.
  • FIG. 1 is a diagram illustrating a quantification and coding method
  • FIG. 2 is a diagram illustrating a decoding method
  • FIG. 3 shows a table in which are listed with their respective ranks all the vectors which have the same components, and this, according to a first ordering mode
  • FIG. 4 is a flowchart illustrating a coding method according to a first embodiment of the present invention
  • FIG. 5 is a table which shows the different values taken by the variables of the coding method illustrated in FIG. 4 during its unfolding
  • FIG. 6 is a flow diagram illustrating a decoding method corresponding to the coding method according to a first embodiment of the present invention
  • FIG. 7 is a table which shows the different values taken by the variables of the decoding process illustrated in FIG. 6 during its unfolding
  • FIG. 8 shows a table in which are listed with their respective rows all the vectors which have the same components and, according to a second ordering mode
  • FIG. 9 is a flowchart illustrating a coding method according to a second embodiment of the present invention
  • FIG. 10 is a table which shows the different values taken by the variables of the coding method illustrated in FIG. 9 during its unfolding
  • FIG. 10 is a table which shows the different values taken by the variables of the coding method illustrated in FIG. 9 during its unfolding
  • FIG. 1a is a flowchart illustrating a decoding method corresponding to the coding method according to a second embodiment of the present invention
  • FIG. 11b is also a flowchart which illustrates in more detail part of the flowchart shown in FIG. 1a
  • FIG. 12 is a table which shows the different values taken by the variables of the decoding process illustrated in Figs. 1 la and 1 lb during their unwinding.
  • the present invention uses the concept of leader vector not restricted to the definition given in the preamble to this description.
  • the vectors which have the same components (but in a different order) and which thus define an equivalence class are ordered in the manner described below.
  • the position of a component is called its position with respect to the first component (the one on the left), which is assigned the position 0.
  • the vector representing the set, or equivalence class, vectors with the same components hereinafter called the leader vector /, the vector whose components are (1 (0), 1 (1), ..., l (nl) ⁇ , where n is the dimension of the lattice of quantification.
  • the vectors x_ ⁇ are then arranged so that the equal component l (n-3) is first in position 0 with the vectors x 2 formed by the remaining components in the order as defined during their arrangement, then the component l (n-3) in position 1 always with the vectors x 2 in their order and, finally, the component l (n-3) in position 2 always with the vectors x 2 in their order.
  • the component equal to l (n-i) can take one of the positions 0, 1, .... i-1.
  • the vectors x are arranged so that the component equal to l (ni) is first in position 0 with the vectors Xi.i in their order, then the component equal to l (ni) in position 1 with the vectors always x,.; in their order and so on until the component equal to l (n-i) is in position i-1 always with the vectors x, .y in their order.
  • n a vector of dimension n, x sacrifice.
  • n a vector of dimension n, x sacrifice.
  • the set of vectors x sacrifice is arranged so that the component equal to 1 (0) is first in position 0 with the vectors x connector _; in their order, then component 1 (0) in position 1 with always the vectors x till. ⁇ in their order and so on until component 1 (0) is in position n- ⁇ always with the vectors x mecanic. ⁇ in their order.
  • the coding operation of a vector x practise will then consist in assigning to this vector an index giving directly, by reading a dictionary, the leading vector / of the equivalence class defined by this vector and, the rank t of this vector x whatsoeverin this equivalence class.
  • a table is shown in FIG. 3 giving the set of vectors of dimension 4 of an equivalence class having for vector leader the vector ⁇ a, b, c, d ⁇ , a, b, c and d being representative of relative numbers.
  • the rank t is also mentioned before each vector.
  • Fig. 4 the flow diagram of a method according to a first embodiment of the invention is shown.
  • a partial quantized vector will be called, the vector x m also of dimension m whose m components are identical to those of the partial leading vector l m but which are arranged in the order of the same components of the quantized vector.
  • the leader vector / is for example the vector ⁇ 4,3,1,0 ⁇ .
  • the partial leader vector h of dimension 3 is the vector ⁇ 3,1,0 ⁇ and the partial quantized vector x- ⁇ of dimension is the vector ⁇ 0,1,3 ⁇ .
  • step 10 a variable m is initiated to the dimension n of the network while the variable t which will represent the rank of the quantized vector x is initialized to 0.
  • the variable m is decremented by one unit and then in 70, it is compared to 1. If it is greater than 1, the process starts again in 20, otherwise the variable t carries the value of the rank of the quantified vector x corresponding to its order among the set (or equivalence class) of the vectors having the same components as it and represented by the vector leader /. This order is the one given above.
  • This dictionary is necessarily more limited than an exhaustive dictionary covering all the vectors of the network considered. It can be shown that with the scheduling as described above, the size of the dictionary compared to that of an exhaustive dictionary is divided by 9 for a network D 4 and by 1120 for a network E 8 . We note that the difference is all the more accentuated as the dimension n of the network is important. Thus, compared to a conventional method using an exhaustive dictionary, the gain in terms of dictionary size, and therefore of memory, is very significant.
  • This decoding operation consists in recovering the quantized vector x knowing, on the one hand, the leading vector / which is deduced from the transmitted index and, on the other hand, the rank t of the quantized vector x such that this rank has been transmitted. For example, if the vector leader / is ⁇ 4,3,1,0 ⁇ and the rank t transmitted is 5, the decoding will make it possible to determine the quantized vector x which, in this case, is the vector ⁇ 4, 0 , 1, 3 ⁇ .
  • FIG. 6 There is shown in FIG. 6 the flowchart corresponding to a decoding method when the coding has been carried out according to the first mode of implementation described above.
  • partial quantized vectors x m of dimension m will be considered, with m which will successively take the values 1 to n, n being the dimension of the network.
  • the quantified vector x pertainis precisely the quantified vector sought.
  • the first step 90 consists in incrementing the variable m by one. Then, a position variable ⁇ m is calculated whose value is representative of the position of the (nm) lth component l (nm) of the leader vector / in the partial vector x m . This position variable ⁇ TO is equal to the rest of the division by the variable m of a rank variable t calculated in the previous step for the previous value of the variable m. So we have :
  • int is the function which corresponds to a variable x that matches the integer directly less than x.
  • a new value of the variable rank t is calculated as being equal to the dividend of said division, that is:
  • variable rank t initially has the value taken by the transmitted rank.
  • the value of the position variable m previously calculated gives the position in the partial vector X m of dimension m of the (n-) th component l (nm) of the vector /.
  • the other components of this partial vector x m of dimension m they are in the same order as the same components in the partial vector x m _ / of dimension m-1 but in a position offset or not to allow insertion in the partial vector x m of this (nm) th component.
  • the partial vector x m is calculated.
  • a new variable value rank t is calculated which is then equal to 10.
  • the vectors of the network whose components have equal values. It can be for example the vector ⁇ 1,0,1,2 ⁇ in a network D 4 where the components of respective positions 0 and 2 are both equal to 1.
  • the vectors of this type in the storage proposed in FIG. 3 are found several times in the dictionary of leading vectors.
  • the vector ⁇ 2, 1, 1, 0 ⁇ is found twice in the set of vectors which have elements 2, 1, 0, with two components equal to 1.
  • the leading vectors have their identical components which are ordered according to a lexicographic order.
  • FIG. 9 the flow diagram of this embodiment of the invention.
  • a variable is initialized to the dimension of the network, ie n, the calculation variable /? is initialized at 0 and the variable rank t which will represent, at the end of the calculation, the rank t of the quantized vector x is initialized at 0.
  • a vector l m of dimension m called partial leader vector
  • a vector x m also of dimension m, called partial quantized vector.
  • step 130 The actual calculation starts at step 130.
  • a w is determined repetition variable (p) depending on the calculating step and p representing the number of repetitions of Lap th component x m (p) of the quantised vector partial x m of dimension.
  • a new value of the variable rank t is also calculated as being equal to the product of this same variable t previously calculated for the previous value of the calculation variable p by the number of distinct vectors with the same components as said partial leader vector l m which it is possible to construct by permutation of the said components, ie the combination C ⁇ p '.
  • step 140 the value of a position variable ⁇ m representing the position in the partial quantized vector x m of dimension m of the component l m (0) of position 0 of the partial leader vector l m is calculated.
  • x m ( ⁇ L) l m (0).
  • step 150 are determined, on the one hand, the partial leading vector l m . ⁇ of dimension m-1 and, on the other hand, the partial quantized vector x m - ⁇ also of dimension m-1.
  • step 150 the value of the repetition variable w (p) is compared to 1.
  • a variable ⁇ m is calculated as being equal to the position variable ⁇ m which, as we recall, represents the position in the partial quantized vector x m of the component l m (0) which is in position zero in the vector partial leader l m .
  • the variable m is decremented by one unit while the variable p is incremented by one.
  • the value of the calculation variable /? is compared to q - 2, q being the number of different components in the quantized vector x or in the leader vector /. If the variable /? is greater than q - 2, the process starts again in 20, otherwise the variable t carries the value of the rank of the quantified vector x in its own equivalence class.
  • the value of the repetition variable w (p) is, in step 151, greater than 1, this means that the p , cme component x m (p) of the partial quantified vector x m is found several times in this vector x m .
  • the variable A m is calculated as being equal to:
  • step 154 the variable m is decremented by one while a calculation variable / ' is equal to 1.
  • a new value of the position variable ⁇ m corresponding to another position in the vector partial quantized x m of the component l m (0) in zero position of the partial leader vector l m is calculated.
  • the vectors of dimension m-1 are determined respectively partial leader l m - ⁇ and partial quantized x m _ ,.
  • step 157 the variable A m is calculated as now being equal to:
  • step 158 the calculation variable / is incremented by one while the variable m is decremented by one.
  • step 159 the variable is compared to w (p) - 1. If there is equality, the process continues in 160. It continues in 155, otherwise.
  • Fig. 10 the different values taken by the calculation variable p, the repetition variable w (p), the variable m, the position variable ⁇ m, the variable A m and the variable rank t have been represented during the course of the process of the invention according to the second embodiment, the flow diagram of which is shown in FIG. 9, for a quantified vector ⁇ 1,0,1,2 ⁇ whose leader vector is ⁇ 2,1,1,0 ⁇ .
  • the partial leader vectors l m and the quantized vectors x m of dimension m have also been shown.
  • the leader vector 1 is known and, consequently, the repetition variables w (/?) Representing the number of repetitions of the p th distinct component l (p) of the leader vector /, /? being a variable whose value is between 0 and q-1, q representing the number of distinct components in the vector leader /.
  • the repetition variables w (/?) Representing the number of repetitions of the p th distinct component l (p) of the leader vector /, /? being a variable whose value is between 0 and q-1, q representing the number of distinct components in the vector leader /.
  • m is a variable representative of the sequence number of the iteration considered, iteration during which the (nm) is studied , th component of the vector leader /.
  • m is a variable representative of the sequence number of the iteration considered, iteration during which the (nm) is studied , th component of the vector leader /.
  • p represents the sequence number of the analyzed component of the leader vector /.
  • the first step 210 consists in finding the number of repetitions w (p) of the analyzed component of the leader vector / and in increasing by this value the variable m. Then, during step 220, a position variable is calculated as being the remainder of the division of the variable of rank t by the number of distinct vectors which it is possible to construct by permutation of the components of a partial leader vector l m of dimension m. This number is given by the combination y p '. This position variable is therefore given by the following relation:
  • t is the rank variable as it was calculated for the previous value of the calculation variable / ?, int being the function which corresponds to an integer variable x less than x.
  • a new value of the variable rank t is calculated, for the following steps, as being the dividend of the previous division. It is then equal to:
  • Step 230 consists in successively searching for the values of the position variables ⁇ m .; of (n-m + i) , th components of the leader vector / in the respective partial quantized vectors x m - i varying from 0 to w (p) -1. Recall that w (p) represents the number of repetitions of the component of the leader vector / identified by the calculation variable / ?.
  • step 240 knowing the values of the position variables ⁇ k for k varying from m to mw (p) + l, the partial quantized vectors x m to x m -w ⁇ P ) + ⁇ are calculated, one after the other other.
  • the calculation variable /? is decremented by one and then compared to zero.
  • the process continues by restarting at step 210 otherwise it is interrupted.
  • the partial quantized vector of dimension nx goes.
  • the quantified vector sought is the quantified vector sought.
  • step 231 the position variable ⁇ m is initialized to zero, two calculation variables ⁇ and ⁇ s are respectively initiated at C m and at 0.
  • step 232 a loop is made as long as the variable A ⁇ n is greater than or equal to ⁇ . This loop 232 consists in equalizing the calculation variables ⁇ s to ⁇ , then in incrementing the position variable ⁇ m by one and finally in adding to the calculation variable ⁇ the value of C [_ ⁇ .
  • variable A m is initialized to the value of ⁇ s , then for any value of i varying from 1 to w (p) - 1, ⁇ m -i is incremented by one, ⁇ is initiated at C m _ _ ⁇ _g and ⁇ s at zero.
  • a loop is performed as long as to which we have subtracted ⁇ m-i + i is greater than or equal to ⁇ . This loop consists in equalizing ⁇ s to ⁇ , then in incrementing by a unit ⁇ m-i and in adding to ⁇ the value of. For each value of i, ⁇ m -i is recalculated as being equal to ⁇ m-i + i + ⁇ s .
  • step 220 we calculate the variable of position ⁇ 2 whose value is then:
  • the position variable ⁇ 2 is less than ⁇ and the loop is not executed .
  • the position variable ⁇ 3 it is initialized to zero.
  • the variable / ' is equal to 1 and the position variable ⁇ 2 is initialized to the value of the position variable ⁇ 3 , that is to say 0.
  • a calculation variable ⁇ is initialized to C ⁇ , that is one and the calculation variable ⁇ s is initialized to zero.
  • the loop of step 234 is executed since ⁇ 2 - ⁇ 3 which is equal to 1 is greater than the calculation variable ⁇ s . Consequently, the calculation variable ⁇ s is initialized to one, and the position variable ⁇ 2 is incremented by one and the calculation variable ⁇ is recalculated as being equal to ⁇ + or two.
  • the loop is interrupted because ⁇ 2 - ⁇ 3 then becomes greater than ⁇ .
  • step 220 the position variable ⁇ is calculated, the value of which is then:
  • the new rank t is calculated as being equal to:
  • the position variable ⁇ 4 is greater than ⁇ and the loop is then executed.
  • the position variable ⁇ is always greater than ⁇ and the loop is executed again.
  • the calculation variable ⁇ s is equal to 2, the position variable ⁇ is again incremented by one and becomes equal to 2.
  • the calculation variable ⁇ becomes equal to 3.
  • the position variable ⁇ is now equal to the calculation variable ⁇ and the loop is still executed.
  • the calculation variable ⁇ s is equal to 3, the position variable ⁇ is again incremented by one and becomes equal to 3. Finally, the calculation variable ⁇ becomes equal to 4 so that the position variable ⁇ is now less than the calculation variable ⁇ . The loop is therefore no longer executed.
  • This vector is precisely that which is sought, that is to say the quantified vector.
  • the computation is finished and the quantified vector sought is therefore the vector ⁇ 1, 0, 1, 2 ⁇ .
  • the values of the combinations CJ will be calculated in advance for all the values that the quantities i and j can take for the network considered and these values will not, for example, be stored in memory.
  • the advantage of the method of the invention lies essentially in the fact that it only needs a dictionary of leading vectors, therefore of reduced size. Compared to a conventional process using an exhaustive dictionary, the gain in terms of dictionary size, and therefore of memory, is very significant. It is all the more so since the size of the network is important.
  • the methods according to the invention are economical in terms of numbers of calculation operations.
  • the maximum number of multiplications to code the rank of a vector with 4 components is 3 and no division operation is necessary.
  • the method of the invention requires only a maximum of three divisions for a vector with 4 components and no multiplication.
  • the method of the invention offers as an advantage over other methods which also use coding by leading vector, a significant reduction in computation costs, whether at coding or at decoding. Furthermore, since the calculation costs of the method of the invention are similar to coding and decoding, it follows that the computing power of a coding / decoding machine can therefore be optimal both for coding and for the decoding of the rank.
  • is the index assigned to the leader vector / .
  • a leader vector of order i is assigned an index cc ⁇ (i) which is equal to the index ⁇ (il) assigned to the preceding leader vector, therefore of order (i -1), increased by cardinal K () of the equivalence class generated by the leader vector considered.
  • the decoding will consist of the transmitted code representative of the index ⁇ x to be determined, on the one hand, the index of the leader vector /, in order to then be able to recover the leader vector / and, on the other hand, the rank t of the original quantized vector.
  • the leader vector index is the one that checks the following inequalities:
  • the quantized vector to be recovered is then determined by one of the decoding methods described above, depending on the method of arranging the vectors of the equivalence classes.
  • the index is one-component.
  • a two-component indexing mode is also proposed, the first being the order number of the leading vector representing the equivalence class considered and the other the rank of the quantified vector in this equivalence class.
  • the transmitted index is therefore of the form (oti, /). Note that, for any leading vector, the index is of the form ( ⁇ , 0). In this mode, the two components of the index are transmitted to the decoder.
  • the decoding is then immediate.
  • the rank t can take only one value, that is to say when the equivalence class generated by the vector leader / has only one element, the rank t n 'at. no need to be transmitted.
  • the component ⁇ X ⁇ allows to immediately find the vector leader /. It is then possible to know the cardinal of its equivalence class and if the latter is 1, we can consider that tria has not been transmitted.
  • the index is of the form (p, ⁇ , ⁇ ).
  • the component p is conventionally relative to the norm of the quantified vector
  • is relative to the phase
  • is the type of vector considered.
  • French patent n ° 95 09 902 where the type is defined as being equal to the number of equal components in a vector.
  • the index of any leading vector / is of the form (p, ⁇ , 0) and that of any vector x of rank t in the equivalence class of this leading vector / of the form (p, ⁇ , t).
  • the decoding is then immediate.
  • the rank t can take only one value, it does not need to be transmitted.
  • the transmitted index (p, ⁇ ) makes it possible to find the vector leader / and, consequently, to determine the cardinal of its equivalence class. If the latter is equal at 1, we can consider that rank t has not been transmitted.
  • the fact of coding the norm p and the phase ⁇ separately allows a partition of the dictionary of vectors according to their norm p, which makes it possible to speed up the procedure of searching for the code of the leading vector 1.
  • knowing the norm of this vector we only search for its ⁇ phase in only part of the dictionary.
  • this coding makes it possible to exploit the statistics of a signal which gives non-isotropic vectors in norm, for example a preponderance of vectors of weak norm transmitted. This is typically the case in image processing.
  • the speed necessary for transmission is also reduced.
  • the separate coding of rank t on an additional component also goes in this direction of reducing the transmission rate. Indeed, it exploits the non-isotropic distribution in phase of the vectors and more particularly the so-called autocorrelation properties of a signal.
  • the coding efficiency can be increased by using words of variable length by using a code of the Huffman type, of the UVLC type, or equivalent.
  • this type of coding for coding the p standard, in particular in codes with several components.
  • the 3-component codings give a compression efficiency which is better than for the other types of coding proposed by the state of the prior art.
  • indexing of the three-component type allows a simple construction of the dictionary of leading vectors and an easy decoding of the rank of a vector belonging to the equivalence class of a leading vector, compared to the indexing methods of prior art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Ce procédé de codage est caractérisé en ce qu'il consiste à déterminer un vecteur, dit vecteur leader, qui comporte les mêmes composantes que ledit vecteur quantifié mais dans un ordre prédéterminé, puis à déterminer le niveau d'ordre ou rang dudit vecteur quantifié dans ledit ensemble formé des vecteurs qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et à former un code à partir, d'une part, d'un indice représentatif dudit vecteur leader ainsi déterminé et, d'autre part, dudit rang. La présente invention concerne également un procédé de décodage.

Description

Procédé de codage d'un vecteur d'un réseau représentatif d'un signal quantifié et procédé de décodage correspondant
La présente invention concerne un procédé de codage d'un vecteur d'un réseau représentatif d'un signal quantifié. Un tel vecteur est par exemple obtenu par une opération de quantification vectorielle sur réseau. Il peut également être délivré par un système de transmission de vecteurs ou de blocs de données. Un procédé de quantification vectorielle sur réseau est connu et est généralement utilisé dans des systèmes de compression de signaux audio, vidéo et multimédia au sens large. La quantification vectorielle sur réseau est l'extension multidimensionnelle de la quantification scalaire uniforme. Cette dernière consiste à quantifier séparément un sign , par exemple représentatif de chaque pixel d'une image, en 2^ niveaux où N est le nombre de bits alloués au quantificateur. Quant à la quantification vectorielle sur réseau, elle est associée à un réseau régulier et permet de déterminer un vecteur de quantification, ou vecteur quantifié, appartenant au réseau en question dont les composantes sont représentatives des valeurs prises par les signaux à coder.
Plus précisément, l'opération de quantification consiste donc à déterminer, à partir d'un vecteur originel dont chacune des composantes est représentative de la valeur prise par un signal à coder et appartient de ce fait à un ensemble non dénombrable, tel que l'ensemble des nombres réels R, un vecteur quantifié x dont chacune des composantes appartient à un ensemble dénombrable tel que l'ensemble des nombres relatifs Z. Un tel procédé est par exemple décrit par CONWAY J.H et SLOANE NIA. dans un article intitulé "Fast quantizing and decoding algorithms for lattice quantizers and codes" paru dans IEEE Transaction on Information Theory de mars 1982. Par exemple, si le vecteur originel est le vecteur (1.3, 2.6, -3.2}, le vecteur quantifié sur un réseau D3 est le vecteur x = {1, 2, -3}.
Un réseau est un ensemble de vecteurs d'un espace de dimension n formant un groupe additif, au sens mathématique du terme. On trouvera de plus amples détails sur les réseaux dans un livre écrit par COΝWAY J.H et SLOAΝE N.J.A. intitulé "Sphère Packings, Lattices and groups" paru en 1993 aux éditions Springer Verlag (New- York, NY). Les réseaux pour lesquels la présente invention trouve une application optimale vérifient la condition suivante : si un vecteur v, à n composantes, appartient au réseau considéré, alors tous les vecteurs u obtenus par des permutations réalisées sur les composantes du vecteur v appartiennent également au réseau. Par exemple, si le vecteur {1, 2, 1, 0} appartient au réseau alors le vecteur {2, 1, 0, 1} aussi. Par exemple, les différents types classiques de réseaux vérifiant cette présente condition, sont ceux connus dans la littérature sous les noms de réseau Zn, A,,, Dn, le réseau cubique à face centré (D3), et le réseau E8, ou le réseau de Gosset, qui est décrit par T. GOSSET dans un article intitulé "On the regular and semi-regular figures in space of n dimensions" paru dans Messenger Math., vol 29, 1900.
Une fois le vecteur quantifié x obtenu, il reste à lui affecter, généralement par une opération d'indexation, encore appelée numérotage ou étiquetage de vecteurs, un code. Cette opération d'indexation d'un vecteur consiste, à partir de celui-ci, à chercher son index dans un dictionnaire. Pour le décodage, on effectue l'opération inverse qui se fait donc à partir d'un index et qui permet de retrouver dans le même dictionnaire le vecteur considéré. Du fait qu'en général les signaux ainsi traités ont des propriétés statistiques particulières et, afin de diminuer les coûts de recherche dans le dictionnaire qui est en général de grande taille, on utilise des procédés d'indexation particuliers.
Un procédé connu sous le nom de procédé de codage produit à deux composantes, de codage polaire, ou de quantification vectorielle sphérique consiste à transmettre un code à deux composantes : l'une est relative à la norme du vecteur quantifié tandis que l'autre est relative à sa phase, appelée angle en dimension n = 2. On associe donc à tout vecteur quantifié x un code produit de la forme
Figure imgf000005_0001
. Si cette méthode permet d'obtenir un gain en terme de temps de calcul de la procédure de recherche du code et en terme de débit nécessaire à la transmission de ce code, il n'en reste pas moins qu'il est nécessaire d'avoir un dictionnaire comprenant tous les vecteurs susceptibles d'être utilisés par l'application.
On connaît également une méthode qui utilise la notion de vecteur dit leader. Elle est décrite par LAMBLIN et ADOUL dans un article intitulé "Algorithme de quantification vectorielle sphérique à partir du réseau de Gosset d'ordre 8" paru dans les Annales des Télécommunications, vol. 43, n° 3-4 de 1988. Selon cette méthode, en partant de chaque vecteur du réseau, on considère l'ensemble des vecteurs qui sont obtenus par permutations des composantes dudit vecteur. Parmi ces vecteurs, on définit un représentant qui est alors nommé vecteur leader et qui est noté /. On peut montrer que cet ensemble de vecteurs est une classe d'équivalence, au sens mathématique du terme. Généralement, le vecteur leader / choisi pour représenter les autres vecteurs est celui dont les n compos.antes sont ordonnées de manière décroissante telles que 1(0) ≥l(l) ≥... l(n-l).
Dans la suite de la description, on désignera un ensemble dont les vecteurs qui le constituent ont des composantes identiques mais dans un ordre différent par le terme de classe d'équivalence. Pour permettre le codage, les vecteurs qui appartiennent à la même classe d'équivalence sont ordonnés. En d'autres termes, on attribue à chacun d'eux un rang dans la classe d'équivalence à laquelle ils appartiennent. En conséquence, l'opération de codage va consister en l'attribution à un vecteur, d'une part, d'un indice représentatif du vecteur leader de la classe d'équivalence concernée et, d'autre part, d'une étiquette représentative du rang. Ce procédé de codage permet de réduire la taille du dictionnaire de vecteurs tout en gardant un coût de calcul des étiquettes inférieur à l'art antérieur.
On a représenté à la Fig. 1 un diagramme illustrant un procédé de quantification et codage. L'opération de quantification proprement dite est réalisée, à partir d'un signal à coder s, par une unité de quantification 10 qui délivre le vecteur quantifié x. Celui-ci fait l'objet, d'une part, d'une recherche du vecteur leader / représentant de l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur quantifié x par l'unité 20 et, d'autre part, d'un calcul du rang t de ce vecteur quantifié x dans cet ensemble par l'unité 30. L'unité 40 détermine l'indice / du vecteur leader / trouvé par l'unité 20 et l'unité 50 détermine, à partir de cet indice / du vecteur leader et du rang t du vecteur quantifié x dans la classe engendrée par le vecteur leader /, le code c du vecteur quantifié x.
On a représenté à la Fig. 2 un diagramme illustrant un procédé de décodage. L'unité 60 détermine à partir du code c reçu, d'une part, le vecteur leader / et, d'autre part, le rang t du vecteur à recouvrer dans la classe d'équivalence définie par ledit vecteur leader /. A partir du vecteur leader / et du rang t, l'unité 70 détermine le vecteur quantifié x. Ensuite l'unité 80 reconstitue le signal s qui avait été codé en 10.
Le but de la présente invention est de proposer un procédé de codage qui permette de trouver, à partir d'un vecteur quantifié, son rang dans la classe d'équivalence représentée par son vecteur leader. Ce procédé est mis en œuvre dans une unité 30 telle que celle qui est représentée à la Fig. 1. Le but de l'invention est également de proposer un procédé de décodage qui permette de recouvrer, à partir d'un vecteur leader et d'un rang, le vecteur quantifié ayant ledit rang dans la classe d'équivalence dudit vecteur leader. Ce procédé est mis en œuvre dans une unité 70 telle que celle qui est représentée à la Fig. 2.
A cet effet, un procédé de codage d'un vecteur quantifié représentatif d'un signal quantifié vectoriellement sur un réseau selon l'invention est caractérisé en ce que ledit procédé de codage consiste à déterminer un vecteur, dit vecteur leader, représentant de l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur quantifié et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, à déterminer le niveau d'ordre ou rang dudit vecteur quantifié dans ledit ensemble de vecteurs, et à former un code à partir, d'une part, d'un représentatif dudit vecteur leader ainsi déterminé et, d'autre part, dudit rang. Avantageusement, tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de m.anière que les premiers vecteurs sont ceux dont la composante égale à l(n-i) est en position 0, avec l'ordre respecté des vecteurs x,.;, puis les vecteurs dont la composante égale à l(n-i) est en position 1 avec l'ordre respecté des vecteurs x,.; et ainsi de suite jusqu'aux vecteurs dont la composante égale à l(n-i) est en position i-1 toujours avec l'ordre respecté des vecteurs X , et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x„ de dimension n.
Selon un mode de réalisation avantageux, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur.
Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à déterminer la position ou les positions dans le vecteur quantifié de chacune des composantes du vecteur leader. Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et n-2, (n étant la dimension du réseau), déterminer la position de la p' me composante du vecteur leader dans un vecteur de dimension n-p, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension n-p dont les composantes sont les n-p dernières composantes du vecteur leader et, d'autre part, dans l'ordre des mêmes composantes dans le vecteur quantifié, et à multiplier la valeur du rang calculée pour la précédente valeur de/? par le nombre de vecteurs distincts ayant les mêmes composantes que ledit vecteur leader partiel, qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur de ladite position, ledit procédé commençant avec la valeur du rang initialisée à zéro.
Selon une autre caractéristique de l'invention, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable ? prenant successivement toutes les valeurs entre 0 et q-2, q étant le nombre d'éléments distincts dans le vecteur leader, et pour une variable m initialisée à la dimension du réseau n, déterminer la ou les positions du p'eme élément du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension m dont les composantes sont les m dernières composantes du vecteur leader et, d'autre part, rangées dans l'ordre des mêmes composantes dans le vecteur quantifié, à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts ayant les mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur d'une variable, dite variable de position, qui est fonction de la position ou des positions du p'ème élément dans ledit vecteur quantifié, la valeur de la variable m étant diminuée à chaque nouvelle valeur de p du nombre de répétitions du p'eme élément dans le vecteur quantifié ou le vecteur leader, ledit procédé commençant avec la valeur du rang initialisée à zéro.
La présente invention concerne également un procédé de décodage d'un code formé à partir, d'une part, d'un indice représentatif d'un vecteur, dit vecteur leader, représentant de l'ensemble des vecteurs qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer. Selon une caractéristique principale du procédé de décodage selon l'invention, tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs Xi de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à l(n-i) est en position 0, avec l'ordre respecté des vecteurs x;-ι, puis les vecteurs dont la composante égale à l(n-i) est en position 1 avec l'ordre respecté des vecteurs x,./ et ainsi de suite jusqu'aux vecteurs dont la composante égale à l(n-i) est en position i-l toujours avec l'ordre respecté des vecteurs x,./, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x„ de dimension n, et en ce que pour recouvrer ledit vecteur quantifié, il consiste à rechercher le vecteur qui, dans ledit ensemble des vecteurs représentés par ledit vecteur leader tel qu'il est déduit dudit code, celui dont le rang dans ledit ensemble correspond au rang déduit dudit code. Avantageusement, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur.
L'invention concerne un procédé de décodage tel qu'il vient d'être décrit et qui est également caractérisé en ce qu'il consiste à déterminer à partir du rang déduit dudit code, la position dans le vecteur quantifié à recouvrer de chaque composante du vecteur leader déduit dudit code, puis, à partir desdites positions, reconstruire ledit vecteur quantifié à recouvrer.
Selon une autre caractéristique de l'invention, pour déterminer la position dans le vecteur quantifié à recouvrer de toutes les composantes du vecteur leader déduit dudit code, il consiste à calculer, pour chaque valeur prise par une variable m successivement entre 1 et n, le reste de la division d'une variable rang calculée précédemment pour la valeur de la variable m, par ladite variable m, ledit reste représentant alors la position de la (n-m),ème composante du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles d'un vecteur, dit vecteur leader partiel, dont les composantes sont les m dernières composantes dudit vecteur leader, ladite variable rang alors calculée étant égale au dividende de ladite division, ladite variable rang ayant sa valeur initialisée à celle du rang déduit dudit code transmis. Selon une autre caractéristique de l'invention, il consiste, dans des étapes successives où une variable p prend respectivement les valeurs comprises entre q-2 et
0, q étant le nombre d'éléments distincts dans le vecteur leader, à calculer le reste de la division d'une variable rang calculée à l'étape précédente par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur, dit vecteur leader partiel, de dimension m dont les composantes sont les m dernières composantes dudit vecteur leader, m étant une variable cumulant à chaque étape le nombre d'éléments analysés, et déduire de la valeur dudit reste les positions respectives dudit pιeme élément dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles dudit vecteur leader partiel, à calculer la nouvelle variable rang comme étant le dividende de ladite division, à reconstruire, à partir desdites positions, ledit vecteur quantifié partiel, le vecteur quantifié partiel ainsi reconstruit pour la valeur de la variable p égale à zéro étant le vecteur quantifié à recouvrer. Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index qui est la somme algébrique de l'index affecté audit vecteur leader et du rang du vecteur quantifié dans l'ensemble des vecteurs représentés par ledit vecteur leader. Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index à deux composantes dont la première est un numéro d'ordre affecté audit vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et l'autre le rang dudit vecteur quantifié dans cet ensemble.
Selon une autre caractéristique de l'invention, le procédé de codage d'un vecteur quantifié qui a été précédemment décrit est caractérisé en ce qu'il consiste à former un code représentatif d'un index à trois composantes dont deux sont représentatives du vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et la troisième le rang du vecteur quantifié dans cette classe d'équivalence.
Avantageusement, les deux composantes représentatives dudit vecteur leader sont respectivement la norme et la phase dudit vecteur. Par exemple, les deux composantes représentatives dudit vecteur leader sont respectivement la norme dudit vecteur leader et un index qui discrimine ledit vecteur leader des autres vecteurs leaders ayant même norme.
Avantageusement, lorsque ledit vecteur leader est le seul qui présente une norme donnée, il consiste à ne pas considérer la phase dudit vecteur leader.
Selon une autre caractéristique de l'invention, ledit procédé de codage d'un vecteur consiste à former un code qui inclut une composante représentative du type du vecteur quantifié.
Selon une autre caractéristique de l'invention, lorsque la classe d'équivalence considérée ne comporte qu'un seul vecteur, il consiste à ne pas considérer le rang dudit vecteur quantifié dans cette classe d'équivalence. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation faite en relation avec les dessins joints parmi lesquels : la Fig. 1 est un diagramme illustrant un procédé de quantification et codage, la Fig.2 est un diagramme illustrant un procédé de décodage, la Fig. 3 montre une table dans laquelle sont répertoriés avec leurs rangs respectifs tous les vecteurs qui ont mêmes composantes, et ce, selon un premier mode d'ordonnancement, la Fig. 4 est un organigramme illustrant un procédé de codage selon un premier mode de mise en œuvre de la présente invention, la Fig. 5 est une table qui montre les différentes valeurs prises par les variables du procédé de codage illustré à la Fig. 4 lors de son déroulement, la Fig. 6 est un organigramme illustrant un procédé de décodage correspondant au procédé de codage selon un premier mode de mise en œuvre de la présente invention, la Fig. 7 est une table qui montre les différentes valeurs prises par les variables du procédé de décodage illustré à la Fig. 6 lors de son déroulement, la Fig. 8 montre une table dans laquelle sont répertoriés avec leurs rangs respectifs tous les vecteurs qui ont les mêmes composantes et, ce, selon un second mode d'ordonnancement, la Fig. 9 est un organigr.amme illustrant un procédé de codage selon un second mode de mise en œuvre de la présente invention, la Fig. 10 est une table qui montre les différentes valeurs prises par les variables du procédé de codage illustré à la Fig. 9 lors de son déroulement, la Fig. 1 la est un organigramme illustrant un procédé de décodage correspondant au procédé de codage selon un second mode de mise en œuvre de la présente invention, la Fig. 11b est également un organigramme qui illustre avec plus de détails une partie de l'organigramme représenté à la Fig. 1 la, et la Fig. 12 est une table qui montre les différentes valeurs prises par les variables du procédé de décodage illustré aux Figs. 1 la et 1 lb lors de leur déroulement.
La présente invention utilise la notion de vecteur leader non restreinte à la définition donnée en préambule de la présente description. Cependant, les vecteurs qui ont les mêmes composantes (mais dans un ordre différent) et qui définissent ainsi une classe d'équivalence, sont ordonnés de la manière décrite ci-après.
Préliminairement, on appelle position d'une composante, sa position par rapport à la première composante (celle de gauche) qui, elle, est affectée de la position 0. On considère le vecteur représentant de l'ensemble, ou classe d'équivalence, des vecteurs ayant les mêmes composantes, ci-après appelé vecteur leader /, le vecteur dont les composantes sont (1(0), 1(1), ..., l(n-l)}, où n est la dimension du réseau de quantification.
A partir des composantes l(n-l) et l(n-2), on va, dans un premier temps, considérer les vecteurs x2 de dimension 2 dont les composantes ont précisément les valeurs l(«-2) et l(n-l). On peut constater que ces vecteurs x2 sont au nombre de deux, la composante égale à l(n-l) pouvant être soit en position 0, soit en position 1. Le premier de ces vecteurs est le vecteur (l(n-2), l(n-l)} et le second est obtenu par permutation des composantes du premier. Il s'agit donc du vecteur (l(n-l), l(n-2)}. Ces vecteurs x2 sont .alors rangés de manière que celui dont la composante égale à l(n-2) est en position 0 soit le premier, l'autre le second.
On va maintenant considérer les vecteurs x3 de dimension 3 dont les composâtes sont ég es à l(n-3), l(n-2) et l(n-l). La composante égale à l(n-3) peut se trouver d.ans le vecteur xj en position 0, en position 1 ou en position 2. Quant aux deux composantes restantes de valeurs l(n-2) et l(n-l), elles sont celles d'un des vecteurs x2 dont on a déjà donné l'ordre ci-dessus.
Les vecteurs x_ι sont alors rangés de manière que la composante égale l(n-3) soit d'abord en position 0 avec les vecteurs x2 formés par les composantes restantes dans l'ordre tel que défini lors de leur r.angement, puis la composante l(n-3) en position 1 toujours avec les vecteurs x2 dans leur ordre et, enfin, la composante l(n-3) en position 2 toujours avec les vecteurs x2 dans leur ordre.
De manière générale, on considère les vecteurs x, de dimension i. La composante égale à l(n-i) peut prendre l'une des positions 0, 1, .... i-1. Les vecteurs x, sont rangés de manière que la composante égale à l(n-i) soit d'abord en position 0 avec les vecteurs Xi.i dans leur ordre, puis la composante égale à l(n-i) en position 1 avec toujours les vecteurs x,.; dans leur ordre et ainsi de suite jusqu'à ce que la composante égale à l(n-i) soit en position i-1 toujours avec les vecteurs x,.y dans leur ordre.
Enfin, un vecteur de dimension n, x„, a sa composante qui est égale à 1(0) d.ans l'une des n positions 0 à n-l. L'ensemble des vecteurs x„ est r.angé de manière que la composante égale à 1(0) soit d'abord en position 0 avec les vecteurs x„_; dans leur ordre, puis la composante 1(0) en position 1 avec toujours les vecteurs x„.ι dans leur ordre et ainsi de suite jusqu'à ce que la composante 1(0) soit en position n-\ toujours avec les vecteurs x„.ι dans leur ordre.
On peut constater que c'est cet ensemble de vecteurs x„ qui constitue ce que l'on a nommé la classe d'équivalence représenté par le vecteur leader de composantes {1(0), 1(1), ...,l(n-l)}. De plus, chaque vecteur x„ est ordonné dans cette classe d'équivalence de la manière qui vient d'être décrite. Il est donc possible d'attribuer à chaque vecteur appartenant à l'ensemble des vecteurs qui ont mêmes composantes que lui un rang t correspondant à son ordre dans la classe d'équivalence définie par le vecteur leader /. L'opération de codage d'un vecteur x„ va alors consister à attribuer à ce vecteur un indice donnant directement, par lecture d'un dictionnaire, le vecteur leader / de la classe d'équivalence définie par ce vecteur et, le rang t de ce vecteur x„ dans cette classe d'équivalence. Pour illustrer le mécanisme d'ordonnancement des vecteurs d'une même classe d'équivalence représentée par un vecteur leader /, on a représenté une table à la Fig. 3 donnant l'ensemble des vecteurs de dimension 4 d'une classe d'équivalence ayant pour vecteur leader le vecteur {a,b,c,d}, a, b, c et d étant représentatifs de nombres relatifs. Le rang t est également mentionné devant chaque vecteur. A la Fig. 4, l'organigramme d'un procédé selon un premier mode de mise en œuvre de l'invention est représenté.
Dans la suite de la description, on appellera vecteur leader partiel, le vecteur lm de dimension m dont les m composantes sont les m dernières composantes du leader /. On a donc lm = {l(n-m), l(n-m-l), ..., l(n-l)}. De même, on appellera vecteur quantifié partiel, le vecteur xm également de dimension m dont les m composantes sont identiques à celles du vecteur leader partiel lm mais qui sont rangées dans l'ordre des mêmes composantes du vecteur quantifié.
Par exemple, on considère un vecteur quantifié x égal à {4,0,1,3}. Le vecteur leader / est par exemple le vecteur {4,3,1,0}. Le vecteur leader partiel h de dimension 3 est le vecteur {3,1,0} et le vecteur quantifié partiel x-ι de dimension est le vecteur {0,1,3}.
A l'étape 10, une variable m est initi isée à la dimension n du réseau alors que la variable t qui représentera le rang du vecteur quantifié x est initialisée à 0. On peut constater que le vecteur leader partiel lm est initialement égal au vecteur leader /„ = / et que le vecteur quantifié partiel xm est initialement égal au vecteur quantifié x = x„.
Le calcul proprement dit commence à l'étape 20. Là, une nouvelle valeur de la variable rang t est calculée comme étant le produit de m et de t tels qu'ils ont été précédemment calculés. En 30, est calculée la valeur d'une variable de position δm qui représente la position dans le vecteur quantifié partiel xm de la composante en position 0 lm(0) du vecteur leader partiel lm. On a donc xmm) = lm(0). Puis à l'étape 40, sont déterminés les vecteurs leader et quantifié partiels /„./ et xm-ι. A l'étape 50, une nouvelle valeur de la variable rang t est calculée comme étant la somme de l'ancienne valeur de la variable rang t et de la variable de position δm, soit t = t + δm. A l'étape 60, la variable m est décrémentée d'une unité puis en 70, elle est comparée à 1. Si elle est supérieure à 1, le processus recommence en 20, sinon la variable t porte la valeur du rang du vecteur quantifié x correspondant à son ordre parmi l'ensemble (ou classe d'équivalence) des vecteurs ayant les mêmes composantes que lui et représentés par le vecteur leader /. Cet ordre est celui qui est donné ci-dessus. A la Fig. 5, on a représenté les différentes valeurs prises par la variable m, la variable de position δm et par la variable rang t, ainsi que les vecteurs partiels leaders lm et quantifiés x„ correspondants lors du déroulement du procédé de l'invention, et ce pour un vecteur quantifié x égal à {4,0,1,3}. Le vecteur leader / représentant de la classe d'équivalence à laquelle appartient ledit vecteur quantifié x égal à {4,3,1,0}. L'avantage du procédé de la présente invention réside dans le fait que, pour sa mise en œuvre, on n'a besoin que d'un dictionnaire répertoriant les seuls vecteurs leaders représentant chacun un ensemble de vecteurs qui ont les mêmes composantes, c'est-à-dire représentant chacun une classe d'équivalence. Ce dictionnaire est nécessairement plus limité qu'un dictionnaire exhaustif portant sur l'ensemble des vecteurs du réseau considéré. On peut montrer qu'avec l'ordonnancement tel qu'il est décrit ci-dessus, la taille du dictionnaire comparée à celle d'un dictionnaire exhaustif est divisée par 9 pour un réseau D4 et par 1120 pour un réseau E8. On constate que la différence est d'autant plus accentuée que la dimension n du réseau est importante. Ainsi, par rapport à un procédé classique utilisant un dictionnaire exhaustif, le gain en terme de taille de dictionnaire, et donc de mémoire, est très significatif.
Ce qui va être transmis est un code constitué, d'une part, de l'indice affecté audit vecteur leader / et, d'autre part, du rang t dudit vecteur quantifié x dans la classe d'équivalence dont ce vecteur leader / est le représentant. La formation du code est décrite en détail ci-après. Après la transmission, il est nécessaire de décoder afin de pouvoir recouvrer le signal initialement codé.
Cette opération de décodage consiste à recouver le vecteur quantifié x connaissant, d'une part, le vecteur leader / qui est déduit de l'indice transmis et, d'autre part, le rang t du vecteur quantifié x tel que ce rang t a été transmis. Par exemple, si le vecteur leader / est {4,3,1,0} et le rang t transmis est 5, le décodage va permettre de déterminer le vecteur quantifié x qui, en l'occurrence, est le vecteur {4, 0, 1, 3} .
On a représenté à la Fig. 6 l'organigramme correspondant à un procédé de décodage lorsque le codage a été effectué selon le premier mode de mise en œuvre décrit ci-dessus. Selon ce procédé, on va considérer des vecteurs quantifiés partiels xm de dimension m, avec m qui va prendre successivement les valeurs 1 à n, n étant la dimension du réseau. On notera que le vecteur quantifié x„ est précisément le vecteur quantifié recherché. On initialise encore le procédé de l'invention en posant m = 1. On notera que m est une variable représentative du numéro d'ordre de l'itération considérée, itération pendant laquelle est étudiée la (n-m),eme composite l(n-m) du vecteur leader 1.
Le vecteur quantifié partiel de dimension m = 1 est tel que xι(0) = l(n-l), où n est la dimension du réseau considéré, / est le vecteur leader correspondant au vecteur quantifié à recouvrer et l(n-l) est la dernière composante du vecteur leader /.
La première étape 90 consiste à incrémenter d'une unité la variable m. Puis, est calculée une variable de position δm dont la valeur est représentative de la position de la (n-m)lème composante l(n-m) du vecteur leader / dans le vecteur partiel xm. Cette variable de position δTO est ég.ale au reste de la division par la variable m d'une variable rang t calculée à l'étape précédente pour la valeur précédente de la variable m. On a donc :
Figure imgf000015_0001
où int est la fonction qui à une variable x fait correspondre l'entier directement inférieur à x.
Une nouvelle valeur de la variable rang t est calculée comme étant égale au dividende de ladite division, soit :
^ int( .)
On notera que la variable rang t a initialement la valeur prise par le rang transmis.
La valeur de la variable de position m précédemment calculée donne la position dans le vecteur partiel Xm de dimension m de la (n- )ιeme composante l(n-m) du vecteur /. Quant aux autres composantes de ce vecteur partiel xm de dimension m, elles se trouvent dans le même ordre que les mêmes composantes dans le vecteur partiel xm_/ de dimension m-1 mais dans une position décalée ou non pour permettre l'insertion dans le vecteur partiel xm de cette (n-m)ιeme composante. Ainsi, en 110, est calculé le vecteur partiel xm. Une comparaison de la variable m avec n permet au calcul d'être fait pour toutes les valeurs de m variant de m = 2 jusqu'à m = n, la dimension du réseau. Le vecteur partiel xm calculé lorsque m = n est le vecteur quantifié recherché, c'est-à-dire le vecteur quantifié x. A titre d'exemple, on va considérer, en relation avec la FigJ, le décodage effectué pour un vecteur leader / déduit du code transmis égal à {4,3,1,0} et un rang également déduit du code transmis égal à 20.
On initialise le procédé de décodage de l'invention en posant m = 1. On l'initialise donc en posant xι(0) = l(n-l) = 1(3) = 0. La variable rang t est donc 20. En 90, la variable prend la valeur 2. En 100, est calculée la valeur de la variable de position δ2 qui est alors égale à :
<% = 20 - int 2 ,0Q/ x 2 = 0
Une nouvelle valeur de variable rang t est calculée qui est alors égale à 10.
La valeur de la variable de position δ2 = 0 donne la position dans le vecteur partiel x2 de la 2,ème composante 1(2) du vecteur leader 1, ici égale à 1. On a alors x2 = {l,0}.
Pour une nouvelle valeur de la variable m = 3, la valeur de la variable de position δ3 est égale à 1 et celle de la variable rang t devient égale à 3. On a alors Xj = {1,3,0}. On remarquera que la composante d'ordre n-m = 4 - 3 = 1, soit 1(1) = 3, est en position 1 dans le vecteur partiel x_ι alors que les deux composantes du vecteur partiel x2, soit 1 et 0, sont dans le même ordre que dans le vecteur partiel x2.
Pour m = 4, la variable de position δ4 est égale à 3 et celle de la variable rang / devient égale à 0 On a alors le vecteur partiel x4 = {1,3,0,4}. Ce vecteur partiel X4 - {1, , 0, } est le vecteur quantifié x recherché.
On a cherché à diminuer encore la taille du dictionnaire en tenant compte des vecteurs du réseau dont des composantes ont des valeurs égales. Il peut s'agir par exemple du vecteur { 1,0,1,2} dans un réseau D4 où les composantes de positions respectives 0 et 2 sont toutes les deux égales à 1. En effet, on remarquera que les vecteurs de ce type dans le rangement proposé à la Fig. 3 se retrouvent plusieurs fois dans le dictionnaire de vecteurs leaders. Par exemple, le vecteur {2, 1, 1, 0} se retrouve deux fois dans l'ensemble des vecteurs qui ont pour éléments les éléments 2, 1, 0, avec deux composantes égales à 1. On notera que dans le mode de réalisation maintenant décrit, les vecteurs leaders ont leurs composantes identiques qui sont ordonnées suivant un ordre lexicographique.
Par exemple, pourraient être vecteurs leaders de la classe d'équivalence à laquelle le vecteur { 1,0,1,2} appartiendrait, uniquement les vecteurs {2, 0, 1, 1}, {2, 1, 1, 0}, {0, 2, 1, 1}, {1, 1, 2, 0}, {1, 1, 2, 0} et {2, 1, 1, 0}.
Pour ranger les vecteurs d'une classe d'équivalence dont au moins deux composantes sont égales, on pratiquera de manière identique à celle précédemment décrite mais on n'attribuera pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur. Pour illustrer ce principe, on a représenté à la Fig. 8 l'ensemble des vecteurs constituant la classe d'équivalence dont le représentant est le vecteur {a,b,b,c} et leurs rangs respectifs.
On a représenté à la Fig. 9, l'organigramme de ce mode de mise en œuvre de l'invention.
A l'étape 120, une variable est initi-alisée à la dimension du réseau soit n, la variable de calcul/? est initialisée à 0 et la variable rang t qui représentera, à la fin du calcul, le rang t du vecteur quantifié x est initialisée à 0. Par ailleurs, comme dans le précédent mode de mise en œuvre, on considère un vecteur lm de dimension m, appelé vecteur leader partiel, et un vecteur xm ég ement de dimension m, appelé vecteur quantifié partiel. Ces deux vecteurs sont respectivement égaux, au commencement du procédé, au vecteur leader / ≈ /„ et au vecteur quantifié x = x„. On rappelle que n est la dimension du réseau considéré.
Le calcul proprement dit commence à l'étape 130. Là, est déterminée une variable de répétition w(p) dépendant de l'étape de calcul p et représentant le nombre de répétitions de lap'eme composante xm(p) du vecteur quantifié partiel xm de dimension . A l'étape 130, est également calculée une nouvelle valeur de la variable rang t comme étant égale au produit de cette même variable t précédemment calculée pour la précédente valeur de la variable de calcul p par le nombre de vecteurs distincts aux mêmes composantes que ledit vecteur leader partiel lm qu'il est possible de construire par permutation desdites composantes, soit la combinaison C ^p' . A l'étape 140, est calculée la valeur d'une variable de position δm représentant la position dans le vecteur quantifié partiel xm de dimension m de la composante lm(0) de position 0 du vecteur leader partiel lm. On a donc xm(δL) = lm(0). Puis à l'étape 150, sont déterminés, d'une part, le vecteur leader partiel lm.ι de dimension m-1 et, d'autre part, le vecteur quantifié partiel xm-ι également de dimension m-1. En 151, la valeur de la variable de répétition w(p) est comparée à 1.
Si elle est égale à 1, cela signifie que la p,eme composante xm(p) du vecteur quantifié partiel xm n'est présente qu'une seule fois dans ce vecteur xm. Dans ce cas, en
152, une variable Δm est calculée comme étant égale à la variable de position δm qui, on le rappelle, représente la position dans le vecteur quantifié partiel xm de la composante lm(0) qui se trouve en position zéro dans le vecteur leader partiel lm. A l'étape 160, est calculée la nouvelle valeur de la variable rang t comme étant égale à la somme de la valeur qu'elle avait précédemment et de la valeur de la variable Am , soit t = t + Δm. A l'étape 170, la variable m est décrémentée d'une unité alors que la variable p est incrémentée d'une unité. A l'étape 180, la valeur de la variable de calcul/? est comparée à q - 2, q étant le nombre de composantes différentes dans le vecteur quantifié x ou dans le vecteur leader /. Si la variable/? est supérieure à q - 2, le processus recommence en 20, sinon la variable t porte la valeur du rang du vecteur quantifié x dans sa propre classe d'équivalence.
Si la valeur de la variable de répétition w(p) est, à l'étape 151, supérieure à 1, cela signifie que la p,cme composante xm(p) du vecteur queintifié partiel xm se retrouve plusieurs fois dans ce vecteur xm. Alors en 153, la variable Am est calculée comme étant égale à :
Figure imgf000018_0001
A l'étape 154, la variable m est décrémentée d'une unité alors qu'une variable de calcul /' est égalée à 1. En 155, une nouvelle valeur de la variable de position δm correspondant à une autre position dans le vecteur quantifié partiel xm de la composante lm(0) en position zéro du vecteur leader partiel lm est calculée. En 156, sont déterminés les vecteurs de dimension m-1 respectivement leader partiel lm-ι et quantifié partiel xm_,. A l'étape 157, la variable Am est calculée comme étant maintenant égale à :
Figure imgf000019_0001
A l'étape 158, la variable de calcul / est incrémentée d'une unité alors que la variable m est décrémentée d'une unité. Enfin en 159, la variable est comparée à w(p) - 1. S'il y a égalité, le processus se poursuit en 160. Il se poursuit en 155, dans le cas contraire.
A la Fig. 10, on a représenté les différentes valeurs prises par la variable de calcul p, la variable de répétition w(p), la variable m, la variable de position δm, la variable Am et la variable rang t lors du déroulement du procédé de l'invention selon le second mode de mise en oeuvre dont l'organigramme est représenté à la Fig. 9, pour un vecteur quantifié {1,0,1,2} dont le vecteur leader est {2,1,1,0}. On a également représenté les vecteurs leaders partiels lm et les vecteurs quantifiés xm de dimension m.
Pour le décodage, lorsque le rangement des vecteurs est celui qui correspond au second mode de mise en œuvre, on procédera conformément au procédé dont l'organigramme est représenté à la Fig. 1 la.
Au moment du décodage, on connaît le vecteur leader 1 et, par voie de conséquence, les variables de répétition w(/?) représentant le nombre de répétitions de la plème composante distincte l(p) du vecteur leader /, /? étant une variable dont la valeur est comprise entre 0 et q-1, q représentant le nombre de composantes distinctes dans le vecteur leader /. A titre d'exemple, si l'on considère le vecteur leader {2,1,1,0}, on a : nombre de répétitions de la composante 2 = w(0) = 1, nombre de répétitions de la composante 1 = w(l) = 2, nombre de répétitions de la composante 0 = w(2) - 1. A l'étape 200, on initialise le procédé de l'invention en égalant une variable m au nombre de répétitions du dernier élément distinct du vecteur leader /, soit m = w(q-l). On initialise par ailleurs chaque composante d'un vecteur quantifié partiel xm de dimension m = w(q-l) à la valeur prise par la dernière composante l(n-l) du vecteur leader /. On a donc xW(q.i) = l(n-l), où n est la dimension du réseau considéré, / est le vecteur leader correspondant au vecteur quantifié à recouvrer et l(n-l) est la dernière composante du vecteur leader /.
On rappelle que m est une variable représentative du numéro d'ordre de l'itération considérée, itération pendant laquelle est étudiée la (n-m),eme composante du vecteur leader /. Toujours à l'étape 200, on initialise encore une variable/? à la valeur de (q-1) -1 - q - 2. Cette variable p représente le numéro d'ordre de la composante analysée du vecteur leader /.
La première étape 210 consiste à rechercher le nombre de répétitions w(p) de la composante analysée du vecteur leader / et à augmenter de cette valeur la variable m. Puis, durant l'étape 220, est calculée une variable de position
Figure imgf000020_0001
comme étant le reste de la division de la variable de rang t par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur leader partiel lm de dimension m. Ce nombre est donné par la combinaison yp' . Cette variable de position
Figure imgf000020_0002
est donc donnée par la relation suivante :
Δw- W(P)+l = t -(>n< yrW(p))) x C P) y ^m
où t est la variable rang telle qu'elle a été calculée pour la valeur précédente de la variable de calcul/?, int étant la fonction qui à une variable x fait correspondre l'entier directement inférieur à x.
Une nouvelle valeur de la variable rang t est calculée, pour les étapes suivantes, comme étant le dividende de la division précédente. Elle est alors égale à :
t = int( / {p)) y ^m
L'étape 230 consiste à rechercher successivement les valeurs des variables de position δm.; des (n-m+i),emes composantes du vecteur leader / dans les vecteurs quantifiés partiels respectifs xm- i variant de 0 à w(p) -1. On rappelle que w(p) représente le nombre de répétitions de la composante du vecteur leader / identifié par la variable de calcul/?.
A l'étape 240, connaissant les valeurs des variables de position δk pour k variant de m à m-w(p)+l, les vecteurs quantifiés partiels xm à xm-w<P)+ι sont calculés, les uns après les autres. La variable de calcul/? est décrémentée d'une unité puis elle est comparée à zéro.
Si elle est supérieure, le processus se poursuit en recommençant à l'étape 210 sinon il est interrompu. Ainsi, le calcul est fait pour toutes les valeurs de m variant de m = 2 jusqu'à m = n, la dimension du réseau. Le vecteur quantifié partiel de dimension n x„ .ainsi calculé est le vecteur quantifié recherché.
Pour la détermination des valeurs des variables δk pour k variant de m à m-w( ?)+l, on procède tel que cela est représenté dans l'organigramme de la Fig. 11b. A l'étape 231, la variable de position δm est initialisée à zéro, deux variables de calcul σ et σs sont respectivement initi isées à Cm et à 0. A l'étape 232, une boucle est réalisée tant que la variable A^^ n est supérieure ou égale à σ. Cette boucle 232 consiste à égaler les variables de calcul σs à σ, puis à incrémenter d'une unité la variable de position δm et enfin à ajouter à la variable de calcul σ la valeur de C [_δ . Pour le calcul des autres valeurs des variables de position δm, en 233, la variable Am est initialisée à la valeur de σs, puis pour toute valeur de i variant de 1 à w(p) - 1, δm-i est incrémenté d'une unité, σ est initi-alisé à Cm_ _ι_g et σs à zéro. A l'étape 234, une boucle est réalisée tant que
Figure imgf000021_0001
auquel on a retranché Δm-i+i est supérieur ou égal à σ. Cette boucle consiste à égaler σs à σ, puis à incrémenter d'une unité δm-i et à ajouter à σ la valeur de . Pour chaque valeur de i, Δm-i est
Figure imgf000021_0002
recalculé comme étant égal à Δm-i+i + σs.
A la Fig. 12, on a représenté les différentes valeurs prises par la variable m, la variable de rang t, la variable de position Δm et les variables de position δm ainsi que les vecteurs quantifiés partiels xm lors du déroulement du procédé de décodage de l'invention selon son second mode de mise en oeuvre pour un vecteur leader égal à {2, 1, 1, 0} et un rang reçu t égal à 10. On a pour commencer m = w(q- 1 ) = w(2) = 1.
On initialise le procédé avec x; = l(n-\) = 0. On initialise encore une variable/? à la valeur de q - 2 = 1. A l'étape 210, la variable m est augmentée de w(l) = 2 et devient alors égale à 1 + 2 = 3. A l'étape 220, on calcule la variable de position Δ2 dont la valeur est alors :
Δ2 = 10- (int(^2)) x C3 2 = 10 - 9 = 1
Le nouveau rang t est calculé comme étant égal à t = int(^2) = 3
A l'étape 231, la variable de position δ3 est initialisée à zéro, la variable de calcul σ est égale à 2 et σs = 0. La variable de position Δ2 est inférieure à σ et la boucle n'est pas exécutée. Quant à la variable de position Δ3, elle est initialisée à zéro.
La variable /' est égale à 1 et la variable de position δ2 est initialisée à la valeur de la variable de position δ3, soit 0. Une variable de calcul σ est initialisée à C\ , soit un et la variable de calcul σs est initialisée à zéro. La boucle de l'étape 234 est exécutée puisque Δ2 - Δ3 qui est égal à 1 est supérieur à la variable de calcul σs. En conséquence, la variable de calcul σs est initialisée à un, et la variable de position δ2 est incrémentée d'une unité et la variable de calcul σ est recalculée comme étant égal à σ + soit deux. La boucle est interrompue car Δ2 - Δ3 devient alors supérieur à σ.
A l'étape 240, on connaît les valeurs des variables de position δ3 = 0 et δ2 = 1. On en déduit que le vecteur quantifié partiel de dimension m = 3 x3 est égal à {1,0,1}. Le processus recommence pour/? = 0.
A l'étape 210, la variable m est augmentée de w(0) = 1 et devient alors égale à 4. A l'étape 220, on calcule la variable de position Δ dont la valeur est alors :
Figure imgf000022_0001
Le nouveau rang t est calculé comme étant égal à :
Figure imgf000022_0002
A l'étape 231 , la variable de position δ est initialisée à zéro, la variable de calcul σ est égale C3 , soit 1 et la variable de calcul σs = 0. La variable de position Δ4 est supérieure à σ et la boucle est alors exécutée. La variable de calcul σs est égalée à 1, la variable de position δ est incrémentée d'une unité et la variable de calcul σ devient égale à 1 + 1 = 2. La variable de position Δ est toujours supérieure à σ et la boucle est de nouveau exécutée. La variable de calcul σs est égalée à 2, la variable de position δ est de nouveau incrémentée d'une unité et devient égale à 2. La variable de calcul σ devient égale à 3. La variable de position Δ est maintenant égale à la variable de calcul σ et la boucle est encore exécutée. La variable de calcul σs est égalée à 3, la variable de position δ est de nouveau incrémentée d'une unité et devient égale à 3. Enfin, la variable de calcul σ devient égale à 4 si bien que la variable de position Δ est maintenant inférieure à la variable de calcul σ. La boucle n'est donc plus exécutée.
Les autres étapes ne sont pas exécutées. A l'étape 240, on connaît donc la valeur de la variable de position δ qui est égale à 3 et on en déduit que le vecteur quantifié partiel de dimension m = 4 x4 est égale à {1,0,1,2}. Ce vecteur est précisément celui qui est recherché, c'est-à-dire le vecteur quantifié. Ainsi, le calcul est terminé et le vecteur quantifié recherché est donc le vecteur {1, 0, 1, 2} .
Pour le calcul à l'étape 40 du procédé de décodage selon une première mise en œuvre de l'invention ou à l'étape 240 du procédé de décodage selon une seconde mise en œuvre de l'invention, on pratique de la manière suivante. On effectue une boucle pour toutes les valeurs d'une variable j comprises entre 0 et m-1 qui consiste à comparer la variable de position δm et j, puis : si j<δm, la j,eme composante du vecteur quantifié partiel de dimension m est égalée à la jιerae composante du vecteur quantifié partiel de dimension m-1; soit xm(j) = xm-ι(i), si j>δm> la j,eme composante du vecteur quantifié partiel de dimension m est égalée à la (j-l)leme composante du vecteur quantifié partiel de dimension m-1; soit xm(j) = xm. ι(j-l) z\ si j= δm, , la jιeme composante du vecteur quantifié partiel de dimension m est égalée la valeur de (n-m)ιcme composante du vecteur leader /, soit xm(j) = l(n-m).
Pour une mise en œuvre optimisée en termes de temps de calcul des derniers procédés de codage et de décodage selon l'invention décrits, on calculera à l'avance les valeurs des combinaisons CJ pour toutes les valeurs que les quantités i et j peuvent prendre pour le réseau considéré et ces valeurs seront pas exemple stockées en mémoire.
Comme cela a déjà été mentionné ci-dessus, l'avantage du procédé de l'invention réside essentiellement dans le fait qu'il n'a besoin que d'un dictionnaire de vecteurs leaders, donc de dimension réduite. Par rapport à un procédé classique utilisant un dictionnaire exhaustif, le gain en terme de taille de dictionnaire, et donc de mémoire, est très significatif. Il l'est d'autant plus que la dimension du réseau est importante.
On notera que si l'on effectue le calcul des combinaisons à l'avance, les procédés selon l'invention sont économiques en terme de nombres d'opérations de calcul. En reprenant l'exemple du codage du rang du vecteur {1, 0, 1, 2}, on peut en effet constater qu'une seule multiplication est nécessaire. De manière générale, le nombre maximal de multiplications pour coder le rang d'un vecteur à 4 composantes est de 3 et aucune opération de division est nécessaire. Au décodage, le procédé de l'invention ne demande qu'un maximum de trois divisions pour un vecteur à 4 composantes et aucune multiplication.
Ainsi, le procédé de l'invention offre comme avantage sur d'autres procédés qui utilisent également le codage par vecteur leader, une réduction significative des coûts de calcul, que ce soit au codage ou au décodage. Par ailleurs, du fait que les coûts de calculs du procédé de l'invention sont similaires au codage et au décodage, il en résulte que la puissance de calcul d'une machine de codage/décodage pourra donc être optimale à la fois pour le codage et pour le décodage du rang.
On notera qu'il est toujours possible d'employer un procédé utilisant un dictionnaire exhaustif pour l'opération de codage ou celle de décodage plutôt qu'un procédé selon l'invention et ce, indépendamment du choix qui est fait respectivement au décodeur ou au codeur. Ainsi, il est possible de coder selon le procédé de l'invention et de décoder selon un procédé utilisant un dictionnaire exhaustif. De même, il est possible de coder au moyen d'un procédé à dictionnaire exhaustif et de décoder au moyen d'un procédé selon l'invention. Ainsi, il est possible d'avoir le meilleur compromis coût de calcul et coût de stockage en adéquation avec la machine utilisée.
Comme cela est visible à la Fig. 1, pour réaliser l'opération d'indexation qui est effectuée à l'étape 50, on dispose donc du vecteur leader / représentant de la classe d'équivalence à laquelle appartient le vecteur quantifié x et du rang t de ce vecteur quantifié x et, afin que l'indexation résultante permette au décodage de retrouver le vecteur quantifié x originel, on ordonne chacun des vecteurs leaders / du réseau et on leur affecte également un index ind.
Selon un premier mode de mise en œuvre, un vecteur quelconque x de rang t appartenant à la classe d'équivalence d'un vecteur leader / aura comme index αx = ai + /, où αι est l'index affecté au vecteur leader /. On transmet alors une représentation codée de cet index αx. En conséquence, on affecte à un vecteur leader d'ordre i un index ccι(i) qui est égal à l'index αι(i-l) affecté au vecteur leader précédent, donc d'ordre (i -1), augmenté du cardinal K( ) de la classe d'équivalence engendrée par le vecteur leader considéré. On peut montrer que, si on appelle n la dimension du réseau considéré, w, le nombre de répétitions de l'élément ai, et q le nombre d'éléments distincts (ao,...,a<,-ι) formant les n composantes du vecteur leader /, le cardinal K(l) est donné par la relation :
Figure imgf000025_0001
Par exemple, le premier vecteur leader / porte l'indice α^O) = 0.
Le décodage va consister à partir du code transmis représentatif de l'index αx à déterminer, d'une part, l'index du vecteur leader /, pour pouvoir recouvrer ensuite le vecteur leader / et, d'autre part, le rang t du vecteur quantifié originel. L'index du vecteur leader est celui qui vérifie les inégalités suivantes :
Figure imgf000025_0002
Une fois l'index cti déterminé, on restaure t tel que,
Le vecteur quantifié à recouvrer est ensuite déterminé par l'un des procédés de décodage décrits ci-dessus, dépendant de la méthode de rangement des vecteurs des classes d'équivalence.
Dans le précédent mode d'indexation, l'index est à une composante. On propose également un mode d'indexation à deux composantes, la première étant le numéro d'ordre du vecteur leader représentant de la classe d'équivalence considérée et l'autre le rang du vecteur quantifié dans cette classe d'équivalence. L'index transmis est donc de la forme (oti,/). On notera que, pour tout vecteur leader, l'index est de la forme (α, 0). Dans ce mode, les deux composantes de l'index sont transmises au décodeur.
Le décodage est alors immédiat. A des fins de compression, lorsque le rang t ne peut prendre qu'une seule valeur, c'est-à-dire lorsque la classe d'équivalence engendrée par le vecteur leader / ne comporte qu'un seul élément, le rang t n'a. pas besoin d'être transmis. Au décodage, la composante <X\ permet de retrouver immédiatement le vecteur leader /. Il est alors possible de connaître le cardinal de sa classe d'équivalence et si ce dernier est 1, on pourra considérer que tria pas été transmis. On propose également deux modes d'indexation où l'index comporte trois composantes. Les trois composantes sont transmises au décodeur. L'index est de la forme (p,τ,α). La composante p est classiquement relative à la norme du vecteur quantifié, α est relatif à la phase et τ est le type de vecteur considéré. Pour un exemple de type de vecteurs, on se reportera au brevet français n° 95 09 902 où le type est défini comme étant égal au nombre de composantes égales dans un vecteur.
Si (p,τ,α) est l'index à 3 composantes d'un vecteur leader 1, alors l'index du vecteur leader suivant lf sera:
1) (p^O) si l'on ne change que la première composante p. On prendra avantageusement pf = p + 1. Quant au type τf, il se déduit du vecteur leader lf II peut- être du même type que le vecteur leader 1 et dans ce cas, on a τ = τ.
2) (p,τff) si le vecteur change de type. Le type τf du vecteur lf est alors différent du type τ du vecteur leader /. La phase αf du vecteur 1 est égale à la phase du précédent vecteur leader / dans la table de même type et de même norme, augmentée du cardinal de la classe d'équivalence de ce vecteur /. On notera que si le vecteur leader suivant lf est le premier de son type et de sa norme, alors on pourra prendre αf = 0.
3) (p,τ,αf + K(l)) si le vecteur leader suivant lf a même type et même norme que le vecteur /. On attribuera au vecteur quantifié x de rang t dans la classe d'équivalence du vecteur leader / un index qui sera de la forme (p,τ,α + t). Le décodage du vecteur leader 1 de la classe d'équivalence d'un vecteur x de code (pxxx) est fait en prenant α de manière qu'il vérifie les relations suivantes : τx = τ, px = p α < αx < α + K(l) t = αx - α
Selon un autre mode d'indexation, l'index de tout vecteur leader / est de la forme (p,α,0) et celui de tout vecteur x de rang t dans la classe d'équivalence de ce vecteur leader / de la forme (p,α,t). Le décodage est alors immédiat. A des fins de compression, lorsque, dans une classe d'équivalence d'un vecteur leader, le rang t ne peut prendre qu'une seule valeur, celui-ci n'a pas besoin d'être transmis. Dans ce cas, au décodage, l'index transmis (p,α) permet de retrouver le vecteur leader / et, par conséquent de déterminer le cardinal de sa classe d'équivalence. Si ce dernier est égal à 1, on pourra considérer que le rang t n'a pas été transmis. C'est typiquement le cas d'un vecteur ayant toutes ses composantes égales, tel que le vecteur (1, 1, 1, 1). De plus, s'il n'y a qu'un seul vecteur leader ayant pour norme la valeur de p, il n'est pas nécessaire de transmettre α. La seule composante p permettra, au décodage, de discriminer ce vecteur duquel on en déduira que la composante suivante transmise est soit le rang t, si le cardinal de la classe d'équivalence engendré par ce vecteur leader est supérieur à 1, sinon l'index d'un autre vecteur, le rang t «'ét.ant alors pas transmis. C'est typiquement le cas du vecteur nul, (0, . . ., 0), où la composante transmise est p = 0. L'avantage qui résulte des différentes méthodes d'indexation proposées réside dans la réduction de débit qu'elles offrent. De plus, le fait de coder la norme p et la phase α séparément permet une partition du dictionnaire de vecteurs suivant leur norme p, ce qui permet d'accélérer la procédure de recherche du code du vecteur leader 1. En effet, connaissant la norme de ce vecteur, on ne recherche sa phase α que dans une partie seulement du dictionnaire. Par ailleurs, ce codage permet d'exploiter la statistique d'un signal qui donne des vecteurs non isotropes en norme, par exemple une prépondérance de vecteurs de norme faible transmis. C'est typiquement le cas en traitement d'image. Ainsi, en réduisant le nombre de valeurs possibles de la phase α pour une norme p donnée, on réduit aussi le débit nécessaire à la transmission.
Le codage séparé du rang t sur une composante supplémentaire va également dans ce sens de réduction du débit de transmission. En effet, il exploite la répartition non isotrope en phase des vecteurs et plus particulièrement les propriétés dites d'autocorrélation d'un signal.
L'efficacité de codage peut-être accrue en utilisant des mots de longueur variable en utilisant un code du type Huffman, du type UVLC, ou équivalent. Dans le cas particulier du codage de signaux d'image, il est avantageux d'utiliser ce type de codage pour le codage de la norme p, notamment dans les codes à plusieurs composantes. Dans le cadre du traitement d'image ou de tout autre signal qui offre une relativement forte auto-corrélation, les codages à 3 composantes donnent une efficacité de compression qui est meilleure que pour les autres types de codage proposés par l'état de l'art antérieur. De plus, l'indexation du type à trois composantes permet une construction simple du dictionnaire de vecteurs leaders et un décodage aisé du rang d'un vecteur appartenant à la classe d'équivalence d'un vecteur leader, comparé aux procédés d'indexation de l'art antérieur.

Claims

REVENDICATIONS
1) Procédé de codage d'un vecteur, dit vecteur quantifié, représentatif d'un signal quantifié vectoriellement sur un réseau, caractérisé en ce que ledit procédé de codage consiste à déterminer un vecteur, dit vecteur leader, qui comporte les mêmes composantes que ledit vecteur quantifié mais dans un ordre prédéterminé, puis à déterminer le niveau d'ordre ou rang dudit vecteur quantifié dans ledit ensemble formé des vecteurs qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et à former un code à partir, d'une part, d'un indice représentatif dudit vecteur leader ainsi déterminé et, d'autre part, dudit rang.
2) Procédé de codage selon la revendication 1, caractérisé en ce que tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à l(n-i) est en position 0, avec l'ordre respecté des vecteurs x,.;, puis les vecteurs dont la composante égale à l(n-i) est en position / avec l'ordre respecté des vecteurs Xi-t et .ainsi de suite jusqu'aux vecteurs dont la composante égale à l(n-i) est en position i-1 toujours avec l'ordre respecté des vecteurs x,.,-, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x„ de dimension n.
3) Procédé selon la revendication 2, caractérisé en ce que, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur.
4) Procédé selon la revendication 1, caractérisé en ce que, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs par un même vecteur leader, il consiste à déterminer la position ou les positions dans le vecteur quantifié de chacune des composantes du vecteur leader. 5) Procédé selon la revendication 4, caractérisé en ce que, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et n-2, déterminer la position de la p'eme composante du vecteur leader dans un vecteur de dimension n-p, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension n-p dont les composantes sont les n-p dernières composantes du vecteur leader et, d'autre part, dans l'ordre des mêmes composantes dans le vecteur quantifié, et à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts aux mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur de ladite position, ledit procédé commençant avec la valeur du rang initialisée à zéro.
6) Procédé selon la revendication 4, caractérisé en ce que, pour déterminer le rang du vecteur quantifié dans l'ensemble des vecteurs représentés par un même vecteur leader, il consiste à, pour une variable p prenant successivement toutes les valeurs entre 0 et q-2, q étant le nombre d'éléments distincts dans le vecteur leader, ainsi qu'une variable m initialisée à la dimension du réseau n, déterminer la ou les positions du p'eme élément du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont, d'une part, identiques à celles d'un vecteur, dit vecteur leader partiel, également de dimension m dont les composantes sont les m dernières composantes du vecteur leader et, d'autre part, rangées dans l'ordre des mêmes composantes dans le vecteur quantifié, à multiplier la valeur du rang calculée pour la précédente valeur de p par le nombre de vecteurs distincts aux mêmes composantes que ledit vecteur leader partiel qu'il est possible de construire par permutation desdites composantes, et ajouter à ladite valeur obtenue la valeur d'une variable, dite variable de position, qui est fonction de la position ou des positions du p,ème £i£ment ^ans jjjt vecteur quantifié, la valeur de la variable m étant diminuée à chaque nouvelle valeur de p du nombre de répétitions du p'eme élément dans le vecteur quantifié ou le vecteur leader, ledit procédé commençant avec la valeur du rang initialisée à zéro.
7) Procédé selon la revendication 6, caractérisé en ce que : si le p'eme élément n'est pas répété dans ledit vecteur quantifié partiel, la valeur de ladite variable de position est égale à la position dudit p,eme élément dans ledit vecteur quantifié, sinon, sa valeur est initialisée à : Am = _*_ J ." — lCm- J , w(p) étant le nombre de répétitions dudit p'eme élément dans ledit vecteur quantifié, la variable m est décrémentée d'une unité, puis pour toute valeur de i prise successivement entre 1 et w(p)-l , la variable de position Δm est calculée comme suit:
•m ^m+\ + > ." rw(p)-i-l
puis m est décrémentée d'une unité. 8) Procédé de décodage d'un code à des fins de recouvrer un vecteur quantifié représentatif d'un signal qui a été quantifié sur un réseau, ledit code étant formé à partir, d'une part, d'un indice normalement représentatif d'un vecteur dudit réseau, dit vecteur leader, représentant de l'ensemble des vecteurs dudit réseau qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer, caractérisé en ce que tous les vecteurs appartenant à un ensemble de vecteurs représentés par un même vecteur leader, sont préalablement ordonnés en considérant pour i prenant successivement les valeurs de 2 à n, n étant la dimension du réseau, les vecteurs x, de dimension i, en ordonnant lesdits vecteurs x, de manière que les premiers vecteurs sont ceux dont la composante égale à l(n-i) est en position 0, avec l'ordre respecté des vecteurs x,.y, puis les vecteurs dont la composante égale à l(n-i) est en position 1 avec l'ordre respecté des vecteurs x,,/ et ainsi de suite jusqu'aux vecteurs dont la composante égale à l(n-i) est en position i-1 toujours avec l'ordre respecté des vecteurs x,./, et enfin à attribuer à chacun des vecteurs appartenant audit ensemble de vecteurs un rang dans ledit ensemble correspondant à son niveau d'ordre dans l'ordonnancement des vecteurs x„ de dimension n, et en ce que pour recouvrer ledit vecteur quantifié, il consiste à rechercher le vecteur qui, dans ledit ensemble des vecteurs représentés par ledit vecteur leader tel qu'il est déduit dudit code, celui dont le rang dans ledit ensemble correspond au rang déduit dudit code. 9) Procédé selon la revendication 8, caractérisé en ce que, lors de l'ordonnancement des vecteurs d'une classe d'équivalence, on n'attribue pas un nouveau rang à un vecteur qui se trouve déjà à un rang inférieur.
10) Procédé de décodage d'un code à des fins de recouvrer un vecteur quantifié représentatif d'un signal qui a été quantifié sur un réseau, ledit code étant formé à partir, d'une part, d'un indice normalement représentatif d'un vecteur dudit réseau, dit vecteur leader, représentant de l'ensemble des vecteurs dudit réseau qui ont les mêmes composantes que ledit vecteur leader et qui sont, dans ledit ensemble, ordonnés de manière prédéterminée, et, d'autre part, d'un rang correspondant au niveau d'ordre du vecteur à recouvrer dans l'ensemble ordonné des vecteurs dont ledit vecteur leader est le représentant, ledit procédé de décodage consistant à déterminer à partir du rang contenu dans ledit code et dudit vecteur leader ledit vecteur quantifié à recouvrer, caractérisé en ce qu'il consiste à déterminer à partir du rang déduit dudit code, la position dans le vecteur quantifié à recouvrer de chaque élément du vecteur leader déduit dudit code, puis, à partir desdites positions, reconstruire ledit vecteur quantifié à recouvrer.
11) Procédé selon la revendication 10, caractérisé en ce que, pour déterminer la position dans le vecteur quantifié à recouvrer de tous les éléments du vecteur leader déduit dudit code, il consiste à calculer, pour chaque valeur prise par une variable m successivement entre 1 et n, le reste de la division d'une variable rang calculée précédemment pour la valeur de la variable m précédente par ladite variable m, ledit reste représentant alors la position du (n-m)'eme composante du vecteur leader dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles d'un vecteur, dit vecteur leader partiel, dont les composantes sont les m dernières composantes dudit vecteur leader, ladite variable rang alors calculée étant égale au dividende de ladite division, ladite variable rang ayant sa valeur initialisée à celle du rang déduit dudit code transmis.
12) Procédé selon la revendication 10, caractérisé en ce qu'il consiste, dans des étapes successives où une variable p prend respectivement les valeurs comprises entre q-2 et 0, q étant le nombre d'éléments distincts dans le vecteur leader, à calculer le reste de la division d'une variable rang calculée à l'étape précédente par le nombre de vecteurs distincts qu'il est possible de construire par permutation des composantes d'un vecteur, dit vecteur leader partiel, de dimension m dont les composantes sont les m'emes dernières composantes dudit vecteur leader, m étant une variable cumulant à chaque étape le nombre d'éléments analysés, et déduire de la valeur dudit reste les positions respectives dudit p'eme élément dans un vecteur de dimension m, dit vecteur quantifié partiel, dont les composantes sont identiques à celles dudit vecteur leader partiel, à calculer la nouvelle variable rang comme étant le dividende de ladite division, à reconstruire, à partir desdites positions, ledit vecteur quantifié partiel, le vecteur quantifié partiel ainsi reconstruit pour la valeur de la variable p égale à zéro étant le vecteur quantifié à recouvrer. 13) Procédé selon la revendication 12, caractérisé en ce que, à chaque étape, pour déterminer les positions respectives dudit p'ème élément dans ledit vecteur quantifié partiel (ό pour k variant de m à m-w(p)+l), il consiste à initialiser à zéro, deux variables de calcul σ et σs, à CmL\ et à 0, effectuer une boucle tant que
Figure imgf000032_0001
est supérieur ou égal à σ, ladite boucle consistant à égaler σs à σ, puis à incrémenter d'une unité δm et enfin à ajouter à σ la valeur de
Figure imgf000032_0002
initialiser de nouveau Δm à la valeur de σs, puis, pour toute valeur de i variant de 1 à w-1, incrémenter δm.i d'une unité, initialiser σ est à C f ~ ~ δ' et σs à zéro effectuer une boucle tant que
Figure imgf000032_0003
auquel on a retranché Δm-i+1 est supérieur ou ég.al à σ, ladite boucle consistant à égaler σs à σ, puis à incrémenter d'une unité δm.i et à ajouter à σ la valeur de C j_Λ_j_δ , pour chaque valeur de i, Δm-i étant recalculé comme étant égal à Δm.i+ι + σs.
14) Procédé de décodage selon la revendication 13, caractérisé en ce que, pour déterminer le vecteur partiel de dimension m connaissant la valeur de la variable de position δm ainsi que le vecteur partiel de dimension m-1 et le vecteur leader /, on effectue une boucle pour toutes les valeurs d'une variable j comprises entre 0 et m-1 qui consiste à comparer la variable de position δm et j, puis : si j<δm, la jlème composante du vecteur quantifié partiel de dimension m est égalée à la jιeme composante du vecteur quantifié partiel de dimension m-1; soit xm(j) = xm-ιQ), si j>δm, la j,eme composante du vecteur quantifié partiel de dimension m est égalée à la (j-l)ιeme composante du vecteur quantifié partiel de dimension m-1; soit Xm(j) = xm- ι(j-l) t\ si j= δm, , la j!eme composante du vecteur quantifié partiel de dimension m est égalée la valeur de (n-m) me composante du vecteur leader /, soit xm(j) = l(n-m).
15) Procédé de codage d'un vecteur selon une des revendications 1 à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index qui est la somme algébrique de l'index affecté audit vecteur leader et du rang du vecteur quantifié dans l'ensemble des vecteurs représentés par ledit vecteur leader.
16) Procédé de codage d'un vecteur selon une des revendications 1 à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index à deux composantes dont la première est un numéro d'ordre affecté audit vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et l'autre le rang dudit vecteur quantifié dans cet ensemble.
17) Procédé de codage d'un vecteur selon une des revendications 1 à 7, caractérisé en ce qu'il consiste à former un code représentatif d'un index à trois composantes dont deux sont représentatives du vecteur leader représentant de l'ensemble des vecteurs auquel appartient ledit vecteur quantifié et la troisième le rang du vecteur quantifié dans cette classe d'équivalence.
18) Procédé de codage d'un vecteur selon la revendication 17, caractérisé en ce que les deux composantes représentatives dudit vecteur leader sont respectivement la norme et la phase dudit vecteur. 19) Procédé de codage d'un vecteur selon la revendication 17, caractérisé en ce que les deux composantes représentatives dudit vecteur leader sont respectivement la norme dudit vecteur leader et un index qui discrimine ledit vecteur leader des autres vecteurs leaders ayant même norme.
20) Procédé de codage d'un vecteur selon la revendication 19, caractérisé en ce que, lorsque ledit vecteur leader est le seul qui présente une norme donnée, il consiste à ne pas considérer l'index dudit vecteur leader.
21) Procédé de codage d'un vecteur selon une des revendications 15 à 20, caractérisé en ce qu'il consiste à former un code qui inclut une composante représentative du type du vecteur quantifié. 22) Procédé de codage d'un vecteur selon une des revendications 15 à 21, caractérisé en ce que, lorsque la classe d'équivalence considérée ne comporte qu'un seul vecteur, il consiste à ne pas considérer le rang dudit vecteur quantifié dans cette classe d'équivalence.
PCT/FR1998/002565 1997-12-22 1998-11-30 Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant WO1999033185A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9716602A FR2773022B1 (fr) 1997-12-22 1997-12-22 Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant
FR97/16602 1997-12-22

Publications (1)

Publication Number Publication Date
WO1999033185A1 true WO1999033185A1 (fr) 1999-07-01

Family

ID=9515215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1998/002565 WO1999033185A1 (fr) 1997-12-22 1998-11-30 Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant

Country Status (2)

Country Link
FR (1) FR2773022B1 (fr)
WO (1) WO1999033185A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2931964A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
US8660187B2 (en) 2008-06-02 2014-02-25 Centre National De La Recherche Scientifique (Cnrs) Method for treating digital data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939555A (en) * 1987-05-13 1990-07-03 At&T Bell Laboratories Trellis coding arrangement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939555A (en) * 1987-05-13 1990-07-03 At&T Bell Laboratories Trellis coding arrangement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADOUL ET AL.: "Nearest neighbor algorithm for spherical codes from the Leech lattice", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 34, no. 5II, September 1988 (1988-09-01), NY US, pages 1188 - 1202, XP000008914 *
LAMBLIN ET AL.: "Algorithme de quantification vectorielle sphérique à partir du réseau de Gosset d'ordre 8", ANNALES DES TÉLÉCOMMUNICATIONS, vol. 43, no. 3-41, 1988, Paris, F, pages 172 - 186, XP000572495 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2931964A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
WO2009156606A2 (fr) * 2008-06-02 2009-12-30 Centre National De La Recherche Scientifique- Cnrs Procédé de dénombrement des vecteurs dans les réseaux réguliers de points
WO2009156606A3 (fr) * 2008-06-02 2010-10-07 Centre National De La Recherche Scientifique- Cnrs Procédé de dénombrement des vecteurs dans les réseaux réguliers de points
CN102084595A (zh) * 2008-06-02 2011-06-01 国立科学研究中心 用于对规则点网中的矢量进行计数的方法
US8660187B2 (en) 2008-06-02 2014-02-25 Centre National De La Recherche Scientifique (Cnrs) Method for treating digital data
US8745110B2 (en) 2008-06-02 2014-06-03 Centre National De La Recherche Scientifique (Cnrs) Method for counting vectors in regular point networks
CN102084595B (zh) * 2008-06-02 2014-11-12 国立科学研究中心 用于对规则点网中的矢量进行计数的方法
KR101577848B1 (ko) 2008-06-02 2015-12-15 유니버시테 드 나이스 소피아 안티폴리스 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법

Also Published As

Publication number Publication date
FR2773022B1 (fr) 2000-01-28
FR2773022A1 (fr) 1999-06-25

Similar Documents

Publication Publication Date Title
EP0436251B1 (fr) Système de codage de signaux numériques destinés à être transmis et/ou stockés et système de décodage correspondant
EP0654910B1 (fr) Procédé de décodage itératif de codes en blocs concaténés
EP0827285B1 (fr) Procédé de transmission de bits d&#39;information avec codage correcteur d&#39;erreurs, codeur et décodeur pour la mise en oeuvre de ce procédé
EP0827284B1 (fr) Procédé de transmission de bits d&#39;information avec codage correcteur d&#39;erreurs, codeur et décodeur pour la mise en oeuvre de ce procédé
EP3443678B1 (fr) Methode de décodage d&#39;un code polaire avec inversion de bits peu fiables
EP0484259A1 (fr) Procédé de codage binaire à taux de basculement des éléments binaires sensiblement uniforme, et procédés d&#39;incrémentation et de décrémentation correspondants
EP2002546B1 (fr) Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
EP2183851A1 (fr) Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
EP0024243B1 (fr) Dispositif pour réduire le débit numérique d&#39;un signal MIC
EP2289171B1 (fr) Procède de traitement de donnees numeriques
WO2005066936A1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
EP0053064B1 (fr) Système de transmission numérique à codage adaptatif d&#39;informations analogiques échantillonnées et transformées par transformation orthogonale
WO1999033185A1 (fr) Procede de codage d&#39;un vecteur d&#39;un reseau representatif d&#39;un signal quantifie et procede de decodage correspondant
EP2289172B1 (fr) Procédé de dénombrement des vecteurs dans les réseaux réguliers de points
EP1525663B1 (fr) Compression de donnees numeriques robuste au bruit de transmission
FR2524740A1 (fr) Procede de compression d&#39;une image numerisee
WO2018073523A1 (fr) Procédé de codage et de décodage de paramètres d&#39;image, dispositif de codage et de décodage de paramètres d&#39;image et programmes d&#39;ordinateur correspondants
EP2364552B1 (fr) Dispositif d&#39;encodage d&#39;un flux d&#39;images numeriques et dispositif de decodage correspondant avec approximation du voisinage d&#39;un bloc par le voisinage élargi du bloc
WO1999033186A1 (fr) Procede de codage d&#39;un vecteur d&#39;un reseau representatif d&#39;un signal quantifie et procede de decodage correspondant
WO1999035748A1 (fr) Procede de codage d&#39;un vecteur d&#39;un reseau representatif d&#39;un signal quantifie et procede de decodage correspondant
EP0982866A1 (fr) Procédé de codage convolutif et de transmission par paquets d&#39;un flux série de données numériques, procédé et dispositif de décodage correspondants
EP0723341A1 (fr) Système de compression de données
EP0762658B1 (fr) Procédé de codage de données numériques représentées par des vecteurs et procédé de décodage des données codées selon ledit procédé de codage
EP3456045B1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un flux de donnees representatif d&#39;au moins une image
FR3013924A1 (fr) Procede et dispositif de codage de paquets de donnees numeriques, et procede et dispositif de correction d&#39;effacements

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase