EP1709743A1 - Dimensional vector and variable resolution quantisation - Google Patents

Dimensional vector and variable resolution quantisation

Info

Publication number
EP1709743A1
EP1709743A1 EP04706703A EP04706703A EP1709743A1 EP 1709743 A1 EP1709743 A1 EP 1709743A1 EP 04706703 A EP04706703 A EP 04706703A EP 04706703 A EP04706703 A EP 04706703A EP 1709743 A1 EP1709743 A1 EP 1709743A1
Authority
EP
European Patent Office
Prior art keywords
dimension
dictionary
vector
resolution
dictionaries
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP04706703A
Other languages
German (de)
French (fr)
Inventor
Claude Lamblin
David Virette
Balazs Kovesi
Dominique Massaloux
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP1709743A1 publication Critical patent/EP1709743A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/097Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters using prototype waveform decomposition or prototype waveform interpolative [PWI] coders

Definitions

  • the present invention relates to the coding and / or decoding in compression of digital signals such as audio, video signals, and more generally multimedia signals for their storage and / or their transmission.
  • Vector quantization consists in representing an input vector by a vector of the same dimension chosen from a finite set.
  • providing a quantifier at M levels (or code vectors) amounts to creating a non-bijective application of the set of input vectors (generally the real Euclidean space with dimensions R n , or even a subset of R n ) in a finite subset Y of R n .
  • the subset Y then has M distinct elements:
  • Y is called the reproduction alphabet, or dictionary, or even directory.
  • the elements of Y are called “vector-codes”, “code words”, “exit points”, or even “representatives”.
  • n n samples are treated as a vector of dimension n.
  • the vector is coded by choosing a vector-code, in a dictionary of M vector-codes, the one that "resembles" it the most.
  • an exhaustive search is made among all the elements of the dictionary to select the element of the dictionary which minimizes a measurement of distance between it and the input vector.
  • vector quantization can also exploit the properties of the source to be coded, for example non-linear and / or linear dependencies, or even the form of the probability distribution.
  • vector quantifier dictionaries are designed using statistical methods such as the generalized Lloyd algorithm (noted GLA for "Generalized Lloyd Algori thm"). This well-known algorithm is based on the necessary conditions of optimality of a vector quantization. From a training sequence representative of the • source to be coded and an initial dictionary, the dictionary is constructed iteratively. Each iteration has two stages: construction of the quantification regions by quantification of the training sequence according to the nearest neighbor rule, and - improvement of the dictionary by replacing the old code vectors with the region centroids (according to the centroid rule).
  • Scalar quantization which quantifies samples individually, is not as efficient as vector quantization because it can only exploit the form of the probability distribution of the source and the linear dependence.
  • scalar quantization is less costly in computation and in memory than vector quantization.
  • quantification scalar associated with entropy coding can achieve good performance even at moderate resolutions.
  • This type of vector quantization is also called “spherical” vector quantization or “polar” vector quantization, - the vector quantizer "code with permutation”, whose vector-codes are obtained by permutations of the components of a vector-leader and its generalization to the composite (or union) of permutation codes.
  • algebraic vector quantization which uses highly structured dictionaries, derived from regular networks of points or error correcting codes. Thanks to the algebraic properties of their dictionaries, algebraic vector quantizers are simple to implement and do not have to be stored in memory. Exploiting the regular structure of these dictionaries allows the development of optimal and fast search algorithms and mechanisms for associating in particular an index (or "index") with a corresponding vector code (for example by a formula ). Vector quantifiers algebraic are less complex to implement and require less memory. However, they are only optimal for a uniform distribution of the source (either in space or on the surface of a hyper-sphere).
  • the algebraic vector quantizer is more difficult to adjust to the distribution of the source by the technique called "companding". It is also recalled that the indexing (or numbering) of the vector codes and the reverse operation (decoding) require more calculations than in the case of statistical vector quantizers, for which these operations are performed by simple table readings.
  • variable dimension vectors are crucial for the design of many multimedia encoders such as speech or audio encoders ("MBE" encoder, harmonic encoder, sinusoidal encoder, transform encoder, shape interpolation encoder). wave prototypes).
  • MBE speech or audio encoders
  • harmonic encoder harmonic encoder
  • sinusoidal encoder transform encoder
  • shape interpolation encoder shape interpolation encoder
  • the number of sinusoids extracted depends on the number of sinusoidal peaks detected in the signal, a number which varies over time depending on the nature of the audio signal.
  • the number of prototypes is variable, so the number of gains, REW and SEW is also variable, as well as the size of the REW and SEW waveforms.
  • coders such as transform audio coders
  • the number of transform coefficients obtained over fixed length frame lengths is imposed but it is usual to group these coefficients into frequency bands to quantify them. Conventionally, this cutting is carried out in bands of unequal widths to exploit the psychoacoustic properties of human hearing by following the critical bands of the ear.
  • the range of variation of the dimension of these vectors of transform coefficients typically varies from 3 (for the bands of lower frequencies) to 15 (for the bands of high frequencies), in an encoder in wide band (50Hz-7000Hz), and even up to 24 in an FM band encoder (covering the audible range 20Hz - 16000Hz).
  • the design of each dictionary requires a training sequence long enough to correctly represent the statistics of the input vectors.
  • storing all the dictionaries proves to be impractical or very costly in memory. We see therefore, in the case of variable dimensions, it is difficult to take advantage of the advantages of vector quantization while respecting memory storage constraints and also training sequences.
  • the variability of the input signal is not only reflected by the variation in the number of parameters to be coded but also by the variation in the quantity of binary information to be transmitted for a given quality.
  • voiced sounds and unvoiced sounds do not require the same bit rate for the same quality.
  • Unpredictable attacks require a higher bit rate than more stable voices and whose stationarity can be taken advantage of by "predictors” which reduce the bit rate.
  • unvoiced sounds do not require high coding accuracy and therefore require little bit rate.
  • variable rate coders are particularly suitable for communications over networks, in packets, such as the Internet, ATM, or others.
  • Packet switching makes it possible to manipulate and process information bits more flexibly and therefore increase the capacity of the channel by reducing the average flow.
  • the use of variable rate encoders is also an effective way to combat system congestion and / or adapt to the diversity of access conditions.
  • variable bit rate quantifiers also make it possible to optimize the bit rate distribution between: source and channel encodings: as in the concept of AMR ("Adaptive Multi Rate"), the bit rate can be switched at each 20 ms frame to be dynamically adapted to channel and traffic error conditions.
  • AMR Adaptive Multi Rate
  • the overall quality of the speech is thus improved by ensuring good protection against errors, while reducing the bit rate for coding the source if the channel degrades; the different types of media signals (such as voice and video in video conferencing applications);
  • transform audio coders for example, it is usual to dynamically distribute the bits between the spectral envelope and the different bands of coefficients.
  • entropy coding of the envelope is first performed and aims to exploit the non-uniform distribution of code words by assigning variable length codes to code words, the most likely having a length shorter than least likely, which minimizes the average length of code words.
  • the remaining (variable) flow is dynamically allocated to the frequency bands of the coefficients according to - their perceptual importance.
  • New multimedia coding applications (such as audio and video) require highly flexible quantifications in both size and bitrate.
  • the range of bit rates must in addition allow reaching a high quality, these multidimensional and multi-resolution quantifiers must aim for high resolutions.
  • the complexity barrier posed by these vector quantifiers remains, in itself, a performance to be achieved, despite the increase in processing power and memory capacity of new technologies.
  • TDAC High Quality Audio Transform Coding at 64 kbit / s
  • JP Petit in IEEE Trans. Common, Vol. 42, No 11, pp. 3010-3019, November 1994.
  • the "IMBE" coder uses a complicated coding scheme with variable binary allocations and scalar / vector hybrid quantization.
  • variable dimension vector quantization consists in considering each input vector of variable dimension L as formed by a subset of components of an "underlying" vector. "of dimension K (L ⁇ K) and to design and use only one" universal "dictionary of fixed dimension K which however covers the whole range of dimensions of the input vectors, the correspondence between the vector of input being effected by a selector.
  • this "universal" dictionary encompassing all the other dictionaries of smaller dimensions does not seem optimal for the smaller dimensions.
  • the maximum resolution r max per dimension is limited by the storage constraint and by the throughput per vector of parameters.
  • a vector of dimension L (L ⁇ K) could have a resolution (or a bit rate per dimension) K / L times greater , and this, for a volume of information to be stored K / L times smaller.
  • variable resolution vector quantization As for known variable resolution vector quantization, a simple solution consists in, as in the case of variable dimension vector quantization, using scalar quantization, as for example in the first versions of TDAC transform coder.
  • Vector quantization overcomes this constraint of the number of whole levels per sample and allows fine granularity of the available resolutions.
  • the complexity of vector quantization often limits the number of bit rates available.
  • the AMR-NB multi-rate speech coder based on the well-known ACELP technique, has eight fixed bit rates ranging from 12.2 kbit / s to 4.75 kbit / s, each with a different level of protection against errors thanks to a different distribution of the bit rate between the source and channel codings.
  • LSP parameters of the ACELP encoder
  • bit rates available for each of these parameters is limited by the storage complexity of non-algebraic vector quantizers.
  • the variation of bit rates is essentially ensured by the algebraic excitation dictionaries which do not require storage.
  • variable rate quantifiers can indeed be based on constrained vector quantizers such as the already mentioned multistage quantizers, with Cartesian products, but also the tree vector quantizers.
  • the use of these tree vector quantizers for variable rate coding has been the subject of numerous studies.
  • the vector quantizer in binary tree was the first introduced. It naturally derives from the LBG algorithm for designing a vector quantizer by successive spli tting of the centroids from the "root" node, barycenter of the training sequence.
  • Variants of tree vector quantifiers have been proposed by pruning ("pruning" method) or on the contrary by branching certain nodes of the tree according to their attributes such as their distortion, their population leading to vector quantizers in non binary tree and / or unbalanced.
  • FIG. 1a and 1b represent vector quantizers structured in a tree. More particularly, FIG. 1a represents a balanced binary tree, while FIG. 1b represents a non-binary and unbalanced tree.
  • the distribution of the input vectors must be uniform. Adapting the distribution of the source to this constraint is a very difficult task.
  • the design of algebraic quantifiers from regular networks also poses the problem of truncating and adjusting the regions of the different regular networks to obtain the different desired resolutions and this for the different dimensions.
  • the present invention improves the situation.
  • One of the aims of the present invention is, in general, to propose an efficient and economical solution (in particular in storage memory) to the problem of variable-rate quantization of vectors of variable dimension.
  • Another object of the present invention is, without limitation, to propose a vector quantization advantageously adapting to the coding and decoding of digital signals using a quantification of the spectral amplitudes of the harmonic coders and / or of the transform coefficients of the frequency coders, in particular speech and / or audio signals.
  • a dictionary comprising code vectors of variable dimension and intended to be used in a coding and / or decoding device in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution, the dictionary comprising:
  • a first set made up of vector-codes constructed by inserting, into code vectors of dictionaries of lower dimension, elements taken from a finite set of real numbers according to a finite set of predetermined insertion rules,
  • the set of insertion rules is developed from elementary rules consisting in inserting a single element from the finite set of real numbers as a component at a given position of a vector.
  • Each elementary rule is preferably defined by a pair of two positive integers representative: of a rank of the element in said finished set, and of an insertion position. It will be understood that the insertion rules thus characterized are read and deduced directly from the very structure of the dictionary within the meaning of the invention.
  • suppression rules consisting in deleting one or more elements from a finite set of given dimension N "to reach a lower dimension N (N ⁇ N " ).
  • the present invention also relates to a method for forming a dictionary according to the invention, in which, for a given dimension: a) a first set of code vectors formed is constructed by inserting / deleting into code vectors of dimension dictionaries lower / upper elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, b) a first intermediate dictionary is constructed for said given dimension, comprising at least said first set, c ) and, in order to adapt said dictionary to use with at least one given resolution, a second dictionary, final, is constructed from the intermediate dictionary, by nesting / simplifying dictionaries of increasing / decreasing resolutions, the dictionaries of increasing resolutions being nested within each other from the lowest resolution dictionary down to the d larger dictionary resolution.
  • the terms “nesting of a set A into a set S” mean that the set A is included in the set B.
  • steps a) and b), on the one hand, and step c), on the other hand can be substantially reversed to adapt said dictionary to use with a given dimension N code vectors.
  • step c) we build, from an initial dictionary of resolution r n and of dimension N ', a first dictionary, intermediate, always of dimension N "but of resolution r N higher / lower, by nesting / simplification of dictionaries of increasing / decreasing resolutions, to substantially reach the resolution r N of said first dictionary,
  • a first set of code vectors formed is constructed by inserting / deleting, in code vectors of the first dictionary of dimension N 1 less than / greater than said given dimension N, elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, and, in step b), following a possible step of final adaptation to the resolution r N , we built, for said given dimension N, a second dictionary, definitive, comprising at least said first set.
  • Step a) can be implemented by successive increasing dimensions.
  • steps a1 to a3) and steps a'1) to a'3) preferably from an initial dictionary of dimension n (n ⁇ N) and by the repeated implementation of steps a1 to a3) for the dimensions n + 1 to N, and by the repeated implementation of steps a'1) to a'3) for the dimensions n-1 at 1.
  • the finished set and the set of insert / delete rules used to build dictionaries of successive dimensions can be defined: - a priori, before building the dictionary, by analysis of a source to be quantified, - or a posteriori, after the construction of dictionaries, preferably by nesting / simplification of dictionaries of successive resolutions, this construction then being followed by a statistical analysis of these dictionaries thus constructed.
  • the source to be quantified is preferably odelized by a learning sequence and the definition "a priori" of the finite set and of the set of insertion / deletion rules is preferably carried out by a statistical analysis of the source.
  • the aforementioned finite set is preferably chosen by estimating a one-dimensional probability density of the source to be quantified.
  • At least part of said first set and / or of said first set of insertion / deletion rules is updated, by a posteriori analysis of said one or more intermediate dictionaries,
  • At least part of the set of vector codes forming said one is also updated or several intermediate dictionaries.
  • step c) of adaptation to a given resolution comprises the following operations, in order to reach increasing resolutions: cO) an initial dictionary of initial resolution r a , less than said given resolution r N , cl, is obtained from from the initial dictionary, an intermediate dictionary of resolution r a + ⁇ greater than the initial resolution r n , c2) is constructed and the operation cl) is repeated until the given resolution r N is reached.
  • centroids belonging to at least the dictionaries of resolution higher than a current resolution r ⁇ are recalculated and updated.
  • the centroids which belong to the dictionaries of resolution lower than a current resolution r ⁇ are updated, preferably, only if the total distortions of all the dictionaries of lower resolution are decreasing from one update to the other.
  • step c) comprises the following operations, now to reach decreasing resolutions: c'O) an initial dictionary of initial resolution r n is obtained, greater than said given resolution r N , c'I) from the initial dictionary, an intermediate dictionary of resolution r n _ ⁇ less than the initial resolution r n , by partitioning the initial dictionary into several subsets ordered according to a predetermined criterion, and c'2) the operation c'I) is repeated until the given resolution r H is reached.
  • this partition can use the partial composition by controlled extension within the meaning of steps a) and b), using at least part of the insertion / deletion rules implemented.
  • step cl to the increasing resolutions r n + ⁇ to r H , and from step c'I) for the decreasing resolutions r n _ ⁇ to ri.
  • the finite set and the set of insertion / deletion rules can advantageously be chosen by a study, a posteriori, of a statistics of the dictionaries of different resolutions and dimensions thus obtained, to form a dictionary in the sense of l invention, desired dimensions and resolutions.
  • the storage in memory necessary for the implementation of the coding / decoding can be considerably reduced.
  • the aforementioned second set can advantageously consist of "second" sub-sets of dimensions smaller than said given dimension.
  • the insert / delete mechanism itself can be stored as a program routine, while the insert / delete parameters, for a given insert / delete rule, can be stored in a table general correspondence (in principle different from the aforementioned correspondence table), in combination with the index of this rule of insertion / deletion given.
  • the correspondence tables are developed beforehand, for each index of a vector-code of a dictionary of given dimension which can be reconstructed from elements of current indices in the second set of current dimension, by tabulation. of three integer scalar values representing: - a current dimension of said second set, - a current element index of the second set, and - an index of insertion / deletion rule, this insertion / deletion rule at least helping to reconstruct said code vector of the dictionary of given dimension, by applying the insertion / deletion to the element corresponding to said current index and to said current dimension.
  • the present invention also relates to a use of the dictionary according to the invention and obtained by the implementation of the above steps, for coding or decoding in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution.
  • This use then implements the following steps: * C01) for a current index of said sought vector code, at least partial reconstruction of an index vector code corresponding to said current index, at least by prior reading of the indices appearing in the correspondence tables and, where appropriate, of an element of the second set, making it possible to develop said dictionary, the method continuing with coding / decoding steps proper, comprising: * C02) at least during coding, calculation of a distance between the input vector and the vector-code reconstituted in step COI), * C03) at least during coding, repetition of steps COI) and C02), for all the current indices in said dictionary,
  • step C04 at least during coding, identification of the index of the at least partially reconstructed code vector whose distance from the input vector, calculated during one of the iterations of step C02), is the smallest , and
  • step C05 at least on decoding, determination of the nearest neighbor of the input vector y as a vector-code whose index was identified in step C04).
  • the "second" above-mentioned assembly preferably consists of "second" sub-assemblies of dimensions smaller than a given dimension of the second assembly.
  • the step COI), at least during decoding comprises: COU) reading, in the correspondence tables, indices indicative of links to said second set and to the insertion rules and including: - the index of a current dimension of a subset of said second set, the current index of an element of said subset, - and the index of the insertion rule appropriate for the construction of the vector-code of the dictionary of given dimension, from said element,
  • COU reading, in the correspondence tables, indices indicative of links to said second set and to the insertion rules and including: the index of a current dimension of a subset of said second set, l current index of an element, of said subset, and the index of the insertion rule appropriate for the construction of the vector-code of the dictionary of given dimension, from said element, C012) reading, in the sub -set identified by its current dimension, of said element identified by its current index, * in step C02), said distance is calculated according to a distortion criterion estimated as a function of: - of said insertion rule, - and of said element.
  • an additional structuring property is further provided according to a union of permutation codes, and an indexing of this union of permutation codes is further exploited in the implementation of the following steps:
  • the present invention also relates to such a coding / decoding device.
  • the present invention also relates to a computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal, or on a removable memory medium and intended to cooperate with a reader. of the processing unit, this program comprising instructions for the implementation of the above dictionary construction method.
  • the present invention can also target a program of this type, in particular a computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal integrating a coding device. / decoding, or on a removable memory medium and intended to cooperate with a reader of the processing unit, this program then comprising instructions for the implementation of the application for coding / decoding in compression above.
  • a program of this type in particular a computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal integrating a coding device. / decoding, or on a removable memory medium and intended to cooperate with a reader of the processing unit, this program then comprising instructions for the implementation of the application for coding / decoding in compression above.
  • FIG. 2b illustrates the property of partial composition by controlled extension of a dictionary within the meaning of the invention
  • FIG. 3 illustrates the nesting of the dictionaries as a function of increasing resolutions
  • FIG. 4 illustrates the composition of vector-codes d a dictionary from code vectors of smaller dictionaries and insertion rules
  • FIG. 5 illustrates the construction according to increasing resolutions of nested dictionaries without updating the dictionaries of lower resolution
  • FIG. 6 illustrates the diagram "TDAC" encoder block
  • FIGS. 7a to 7g represent, for the wide band TDAC coder using a vector quantizer within the meaning of the invention, tables illustrating respectively:
  • FIG. 7d * the memory gain provided by the two properties nesting and controlled extension (fig. 7d), * the gain in memory provided by the two structuring properties as a function of the size and the bit rate, respectively, compared to the memory size necessary for storing a dictionary without use these two properties (fig.7e), * the first leaders of the L ° set in dimensions 1, 2 and 3 (fig.7f), and * the leaders of the permutation codes of dictionaries in dimension 3 (fig.7g ), - Figures 8a and 8b show, for the TDAC coder in FM band, tables illustrating respectively: * a cut into 52 bands (fig. ⁇ a), and * the resolutions by dimension (fig.8b).
  • FIGS. 2a and 2b illustrate the two main properties of a dictionary Di N within the meaning of the present invention.
  • any dictionary Di N of a given dimension N and of resolution ri is the union of two disjoint sets: o a first set D ' N consisting of Y N code vectors constructed (arrow F3) by inserting into code vectors Y 11 "1 dictionaries Di * 1" 1 of smaller dimension Nl of the elements Xj taken (arrow F2) in a finite set A of real numbers according to a finite set of insertion rules ⁇ R m ⁇ / an insertion rule R '(j, k) determining the elements j to be inserted (arrow FI) and the way of inserting them (for example at a position k of the vector Y N under construction), o and a second set 'consisting of vectors Y' which cannot be obtained by inserting into vectors of lower dimension elements of this finite set according to the game of the aforementioned insertion rules.
  • the indices in resolution and / or in dimension begin, by way of example, from the integer 1 to a given integer (i, n , or N as appropriate).
  • integer 1 a given integer
  • integer i, n , or N a given integer
  • these indices may rather start from 0 and reach i-1, n-l, or N-l, depending on the context.
  • Nj-1 the greatest resolution reached is Nj-1 starting from 0.
  • the links induced by the two structuring properties are advantageously used to develop algorithms for building such dictionaries by adapting the iterative construction algorithms commonly used and described above such as "GLA” or "SKA”.
  • a first approach consists in building the dictionaries according to the increasing resolutions (from the smallest resolution to the maximum resolution).
  • a second approach conversely consists in building the dictionaries according to decreasing resolutions (from the maximum resolution to the lowest resolution).
  • a third approach consists in building the dictionaries from an intermediate resolution dictionary by decreasing the resolutions to the minimum resolution and by increasing them to the maximum resolution. This method is particularly advantageous when the nominal resolution of the vector quantizer of variable resolution is the aforementioned intermediate resolution.
  • step 53 where, by an iterative process, we seek to construct a dictionary D ⁇ j from an initial dictionary D ⁇ tO), formed by adding (Ti j - Ti_ ⁇ j ) vectors to the dictionary Di_ ⁇ j of lower resolution r ⁇ - ⁇ .
  • the algorithm for constructing classes 54 is identical to a conventional algorithm, but the algorithm for constructing T centroids 55 is modified. Indeed, the (T ⁇ -Ti- ⁇ ) centroids not belonging to the lower resolution dictionaries are recalculated and updated, while the (Ti- ⁇ j ) centroids of the lower resolution dictionaries are not updated.
  • a variant authorizes the updating of the centroids of the dictionaries of lower resolutions in the case where the total distortions of all the dictionaries of lower resolution decrease or remain constant. In this case, the dictionaries of lower resolutions are modified accordingly.
  • the iter loop index is then incremented (step 56) up to a Niter number (i, j) depending on the i th same resolution and on the dimension j (test 57).
  • the dictionary is obtained at this resolution Nj (end step 59), and therefore all the dictionaries Dp of resolution r, for i ranging from 1 to j.
  • partitioning the dictionary can be performed in various ways: from the elementary partition (one element in each subset) to a more elaborate partition. This ordered partition is at the base of the construction of the nested dictionaries by progressive union of its ordered classes.
  • the partition can be based on the PD property of partial composition by controlled extension by grouping elements based on the extension of the same vector-code from a subset of the set of insertion rules ( possibly equal this set itself).
  • nested dictionaries in resolution are constructed from an intermediate resolution dictionary n- This i th dictionary is therefore first constructed. Then, from this dictionary, the dictionaries of lower resolution are constructed using the second method using decreasing resolutions and the dictionaries of higher resolutions using the first method using increasing resolutions.
  • the construction algorithm advantageously favors the elements of the first set comprising the elements obtained by controlled extension, as will be seen below.
  • each elementary rule consists of inserting one and only one element from the finite set of real numbers A as a component at a given position of a vector.
  • Each elementary rule is given by a couple of two positive integers, one giving the rank of the element in the finished set and the other the insertion position. From this set of elementary rules, we can compose any rule, more elaborate, of insertion of components.
  • suppression rules consisting in removing one or more elements from a finite set of given dimension N to reach a lower dimension N-n.
  • A ⁇ a o , ai, ..., a ..., ana-i ⁇ - R '(i m , p m ) the elementary insertion rule which consists in inserting ai in position p m .
  • N a * j max the number of possible elementary rules.
  • composition of the rules R '(0,0) and R' (0,1) gives the rule: insert a 0 in positions 0 and 1. It thus allows to obtain a vector-code of dimension j + 2 from d 'a code vector of dimension j.
  • composition of the rules R '(1,0) and R' (0,2) gives the rule: insert a x in position 0 and a 0 in position 2. It also makes it possible to obtain a vector-code of dimension j + 2 from a vector code of dimension j.
  • the i ra are not necessarily different, on the other hand the n positions p m are distinct.
  • FIG. 4 illustrates the composition of code vectors of a dictionary from code vectors of dictionaries of smaller dimensions and of insertion rules.
  • Several embodiments are also provided for constructing dictionaries of different dimensions, unions of two disjoint sets, a first set consisting of code vectors constructed by inserting dictionaries of smaller dimensions of the elements taken from a set into code vectors finite of real numbers according to a set of insertion rules, a second set consisting of vectors which cannot be obtained by inserting into the lower-dimensional code vectors elements of this finite set of real numbers according to this set of insertion rules .
  • the first set requires the determination of the finite set of reals (i.e. its cardinality and its values) as well as the set of insertion rules.
  • this finite set and the elaboration of the set of insertion rules are carried out: either "a priori": the finite set and the set of insertion rules are determined before building the dictionaries.
  • This choice is preferably based on an analysis of the statistics of the source to be quantified, modeled for example by a learning sequence.
  • the choice of the finite set can be based on the one-dimensional probability density of the source (or its histogram);
  • a priori or "a posteriori” can be used successively and / or combined.
  • a first set and a first set of insertion rules can be chosen by an analysis of the learning sequence, then after a first construction of the dictionaries, an analysis of these dictionaries can lead to a total update or partial of set A and / or the set of insertion rules.
  • the finished set and / or the set of insertion rules may or may not be dependent on the dimensions.
  • the dictionary of larger dimension is first constructed. Then, the latter being fixed, the possible code vectors of smaller dimension are extracted.
  • the extraction procedure is facilitated by modifying the code vectors of the larger dimensions to reveal elements of A as components of these code vectors.
  • the invention can in addition carry out a transformation of the components of the code vectors.
  • An example of transformation is a high resolution scalar quantization. It is interesting to build "dictionaries" of smaller dimensions even if these dimensions are not used directly by vector quantization. For example, we can start with dimension 1 even if scalar quantization is not used. Similarly, it can also be interesting to build dictionaries of intermediate dimensions. These "dictionaries" are moreover advantageously used by the controlled extension procedure to reduce the complexity of storage and calculations.
  • a preferred construction is used in the embodiment described below which combines the techniques dictionary building according to increasing dimensions and decreasing resolutions to build all the dictionaries M.
  • the audio coder named "TDAC coder” is used below, used to encode digital audio signals sampled at 16 kHz (in wide band).
  • This encoder is a transform encoder which can operate at different bit rates.
  • the bit rate can be fixed before the establishment of the call or vary from frame to frame during a call.
  • FIG. 6 shows the block diagram of this TDAC encoder.
  • An audio signal x (n) limited in band to 7 kHz and sampled at 16 kHz is divided into frames of 320 samples (20 ms).
  • a modified discrete cosine transform 61 is applied to blocks of the input signal of 640 samples with an overlap of 50% (that is to say a refresh of the MDCT analysis every 20 ms).
  • a masking curve is determined by the masking module 62 which then sets the masked coefficients to zero.
  • the spectrum is divided into thirty-two bands of unequal widths.
  • the possible masked bands are determined as a function of the transformed coefficients of the signal x (n). For each band of the spectrum, the energy of the MDCT coefficients is calculated (we speak of scale factors). The thirty-two scale factors constitute the spectral envelope of the signal which is then quantified, coded and transmitted in the frame (block 63). This quantization and this coding use a Huffman coding. The variable number of bits remaining after the quantization of the variable rate spectral envelope is then calculated. These bits are distributed for the vector quantization 65 of the spectrum MDCT coefficients. The dequantized spectral envelope is used to calculate all the masking thresholds per band, this masking curve determining the dynamic allocation of bits 64.
  • this masking curve band by band and from the quantized spectral envelope prevents the transmission of auxiliary information relating to binary allocation.
  • the decoder calculates the dynamic allocation of the bits in an identical way to the coder.
  • the MDCT coefficients are normalized by the dequantized scale factors of their band and then they are quantified by vector quantizers of variable size and bit rate.
  • the binary train is constructed by multiplexing 66 information on the spectral envelope and these coefficients normalized by coded band and transmitted in frame. It is indicated that the references 67 and 68 in FIG. 6 correspond to steps known per se of detection of a voiced or unvoiced signal x (n), and of tone detection (determination of tonal frequencies), respectively.
  • the vector quantizers with variable bit rate are described below in bands of unequal widths of the MDCT coefficients in the TDAC coder.
  • the quantification of the MDCT coefficients normalized by band in particular uses dictionaries constructed according to the invention. Cutting into strips of unequal widths leads to vectors of different dimensions.
  • the table in FIG. 7a which gives the strip cutting used also indicates the resulting dimension of the vector of the coefficients, that is to say the number of coefficients indicated by the third column.
  • variable number of bits remaining after Huffman coding of the spectral envelope is dynamically allocated to the different bands.
  • the table in FIG. 7b gives the numbers of resolutions Nj and the sets of flow rates per band j * Rj (therefore the values of the resolutions per band) for the dimensions j, for j ranging from 1 to 15. It will be noted that to exploit advantageously the structuring property of partial composition by controlled extension, vector quantizers have been constructed in dimensions 1, 2, 6, 11, which, however, do not correspond to any bandwidth, but whose elements are used to compose code vectors of higher dimension. We also note the fineness of the granularity of the resolutions even for large dimensions.
  • the criterion of distortion chosen here is the Euclidean distance.
  • the dictionary being normalized, the search for the vector code which minimizes the Euclidean distance with an input vector to be quantified amounts to searching for the vector code which maximizes the dot product with this input vector.
  • the dictionary being the union of permutation codes, the search for the vector-code maximizing the scalar product with an input vector amounts to searching among the absolute leaders of the dictionary for that which maximizes the scalar product with the absolute leader of this input vector (which is also obtained by permuting the absolute values of its components to arrange them in descending order).
  • a learning sequence for the design of vector quantizers within the meaning of the invention.
  • a long sequence consisting of frames of 289 MDCT coefficients normalized by the scale factor of their band is first obtained from numerous samples of audio signals in wide band. Then, for each normalized vector of coefficients, we deduce its absolute leader. From the set of absolute leaders of different dimensions, two categories of multidimensional learning sequences S 0 and S 1 are created :
  • S - ⁇ [1,15]
  • S j being the set of all the vectors formed by the first j components of the absolute leaders having j non-zero coefficients.
  • S, - is thus constituted by the absolute leaders of dimension j having no zero coefficient, those of dimension j + 1 having a single zero coefficient, those of dimension j + 2 having two zero coefficients, ... those of dimension 15 having 15-j zero coefficients,
  • the first category of sequences is preferably used to determine the initial dictionaries of
  • the second category is preferentially used to build multidimensional and multiresolution dictionaries having the two structuring properties.
  • This L '° construction technique is inspired by the dictionary construction technique by partial composition by extension controlled according to decreasing dimensions.
  • the choice of the set A made a priori could be revised a posteriori to add the element "1" because all the leaders of L '° have at least one "1" as the last component.
  • the set L ° serves as the basis for the composition of the initial dictionaries of leaders for the design of vector quantizers with multiple dimensions and resolutions having the two structuring properties of nesting PR and partial composition by controlled extension PD. From the sequence S 1 , the algorithm to construct these quantifiers proceeds by increasing dimension and decreasing resolution.
  • L j is formed by all the leaders of L j and by all the leaders obtained by controlled extension of the leaders of the dimensions lower j '(j' ⁇ j) by inserting (j-j ') zeros to the leaders of the sets V.,.
  • ⁇ (l) ⁇ , ⁇ (ll), (21), (31), (41), (51), (91) ⁇ , completed by the leaders of E ' 3 .
  • the union of permutation codes characterized by LA- constitutes a high resolution dictionary, possibly greater than the maximum resolution desired.
  • These permutation codes therefore perform a natural partition of this dictionary, each class of this partition being a permutation code represented by its leader.
  • the construction of the nearest neighbor regions corresponding to the classes of this partition is then carried out by quantification of the sequence S 1 .
  • the partition is ordered according to the ascending cardinal of the permutation codes. In case of equality of the cardinals of permutation codes, the codes of the leaders obtained by controlled extension are favored compared to those of the leaders of -L'y as indicated above. In case of equality of cardinals of two classes belonging to the same set (either to D , J N , or to D>'- L), the classes are ordered
  • the multi-resolution dictionaries nested in resolution are therefore formed by choosing as the last permutation code for each different resolution the one whose rate of cumulation of cardinals is closest to the integer immediately higher . If the resolution of the dictionary characterized by L j is greater than the maximum resolution desired, the last unused permutation codes are eliminated.
  • Z, - g: Z, -j the final set
  • FIGS. 7c to 7e show the gains in memory provided by the nesting property and by the property of partial composition by controlled extension.
  • the table in FIG. 7c compares vector quantizers with multiple resolutions for different dimensions: the first quantifiers simply structured in unions of permutation codes, and the second quantifiers further possessing the property of nesting in resolutions.
  • the table in Figure 7d compares these quantifiers, used for multiple dimensions, with quantifiers also having the structuring property of partial composition by controlled extension.
  • the table in Figure 7e compares vector quantizers with multiple resolutions and dimensions: the first quantifiers simply structured in union of permutation codes and the latter having in addition the structuring properties of nesting in resolutions and partial composition by controlled extension.
  • L j the number of leaders of the set L ° j : their sum of dimensions 1 to j j
  • indexing there are several known ways of indexing the code vectors of a dictionary, a union of type II permutation codes.
  • the numbering used in the embodiment is inspired by that used to index the spherical codes of the Gosset network.
  • each code vector of D _. is indexed by an offset
  • Lj leaders index to L ° leaders index.
  • the leaders of L ° being stored, there is thus a great freedom of indexing of L °.
  • Each index m j of a leader X 7 of Lj is associated with an index l m of a leader x j 'of L °. From this index l m , we find the dimension _ 'of the leader x 7 ' and the leader himself. The leader x j is then found by inserting (j-j ') zeros as the last components of x 3 '.
  • the table in Figure 7f gives the first 23 leaders of L °.
  • T ⁇ N is much smaller than T ⁇ , because we naturally try to favor the set D ' j N with respect to
  • step COI consists in the reconstruction of the code vector x J of index m 3 and is preferably carried out as follows: a) reading of the three indices j ', m' and l r in the correspondence tables associated with D N J , b) reading in the set -D ' ⁇ of the vector x 3' 'of dimension j' and of index m ', c) reconstruction of the code vector x 3 by applying to x 3 ' of the property of partial composition by extension controlled according to the rule of insertion of index l r .
  • Step C02) consists in calculating the distance d (y, x 3 ) between y and x according to the chosen distortion criterion.
  • the following steps C03) and C04) consist in repeating the operations COI) and C02) to identify the vector index whose distance to the input vector is minimum. So :
  • the nearest code vector close to the input vector y is determined as a vector code whose index m m i n has been identified in correspondence of the smallest distance d m i n with the input vector y-
  • step C05 * End nearest neighbor x of y in D ⁇ is the vector-code of index m m i n
  • step COI The decoding algorithm which consists in searching for a code vector of Dj from its index is given by step COI) of the coding algorithm. It is indicated, in particular, that the decoding implies the complete reconstruction of the code vector x (operation c) of step COI)), whatever the index to be decoded.
  • this reconstruction can be partial. Indeed, it can sometimes be omitted if the distortion criterion in the distance calculation of step C02) can be broken down into two terms: one dependent only on the index of the insertion rule, and another on the vector -code x 3 '. For example, in the case of a Euclidean distance distortion criterion, it is possible, at the initialization stage
  • the storage / indexing complexity compromise can also be adjusted as required by the application.
  • a first simplification is brought about by the "freedom" of the signs of type II permutation codes which the permutation codes of the Gosset network with odd components do not have.
  • a second simplification is provided by taking into account the number of non-zero components of each leader for the calculation of the scalar product. This illustrates the exploitation of the structure induced by the property of partial composition by extension controlled by the coding algorithm.
  • a final modification takes into account the storage of the leaders of L ° in whole form, which leads to the introduction in the scalar product calculation a corrective factor equal to the inverse of the Euclidean norm of these leaders with strictly positive integer components.
  • step CP5 three additional steps are planned: two preliminary steps (before the COI reconstruction step) above) to determine the absolute leader and the sign vector ⁇ of the vector to be coded (steps CP1) and CP2)), and a last step to calculate the rank of its closest neighbor in the dictionary (step CP5)).
  • the search for the nearest neighbor of y in Dj amounts to first searching for the most close neighbor of in the set L j (i) (among the L ⁇ l
  • the algorithm then preferably takes place according to the following example:
  • step CP2 the index of the nearest neighbor of y in Dj is calculated by the procedure of indexing a union of permutation codes from the number of the permutation code m max found in step CP3) , the rank of the permutation carried out in step CP2) and the vector of signs determined in step CP1). It should be noted that step CP2) can be accelerated. Indeed, if nf is the maximum number of non-zero components of the leaders of Lj (i), it suffices to search for the nf largest components of ⁇ y ⁇ . There are several variants of step CP3) depending on the desired storage / complexity compromise.
  • step CP3 If one wants to minimize the number of computations, one can tabulate for all the leaders of L ° simply their dimension j 'and their corrective factor.
  • the determination of the dimension j 'mentioned in step CP3) consists in this case of a reading of the correspondence table. Conversely, if we rather want to reduce memory, this determination is calculated from the index l m . Likewise, the corrective factor can be calculated after reading the leader x 3 '.
  • this step amounts to finding the leader of L ° which maximizes the scalar product modified from the list of Mj leaders of
  • L ° indicated by the correspondence table of the Lj leader indexes to the L ° leader indexes. If the dimension of a leader x 3 'of L ° is j'(j' ⁇ j), the computation of its scalar product with is only performed on the j 'first components of , then multiplied by the inverse of the Euclidean norm of x 3 '.
  • step CP4 and the index of the rank of this nearest neighbor of y in Dj is calculated by the procedure of indexing a union of permutation codes from the number of the permutation code found in the previous step, of the rank of the permutation carried out in step CP2) and of the vector of signs determined in step CP1).
  • step CP2 can be accelerated. Indeed, if nj is the maximum number of non-zero components of the leaders of L j (i), it suffices to search for the nj largest components of M.
  • the decoding algorithm is preferably presented as follows.
  • mj is associated with a unique index in
  • mj points to an element E * ' ⁇ , - . (j ' ⁇ j) and on an insertion rule.
  • insertion rule can be explicitly indexed or not.
  • the insertion rule is implicitly found from the index. It will also be understood that the compromise storage / indexing complexity can be adjusted according to the needs of the application.
  • the decoding algorithm is inspired by the document: "Algorithm of Spherical Algebraic Vector Quantization by the Gosset Network E 8 ", C. Lamblin, JP Adoul, Annales Des Telecommunications, n ° 3-4, 1988, in additionally using the correspondence table of Lj leader indices to those of L °.
  • the principle of this coder is similar to that of the TDAC coder in wide band at 16 kHz.
  • the audio signal band limited to 16 kHz and now sampled at 32 kHz, is also split into 20 ms frames. This leads after MDCT transformation to obtain 640 coefficients.
  • the spectrum is cut into 52 bands of unequal widths, the cutting of the widened band being identical to the cutting carried out by the TDAC encoder in wide band.
  • the table in FIG. 8a gives the strip cutting used and the resulting dimension of the vector of the coefficients (corresponding to the number of coefficients indicated in the third column).
  • the quantification of the spectral envelope also uses Huffman coding and the remaining variable bit rate is dynamically allocated to the coefficients from the dequantified version of this spectral envelope.
  • the quantification of the MDCT coefficients uses dictionaries constructed according to the invention. As in the case described above, the dictionaries are also structured in union of permutation codes. For dimensions less than 15, the vector quantizers are the same as those for the widened band. We build dictionaries for dimensions 16, 17, 18, 19, 20 and 24. For dimension 24, this structure has also been combined with the structure in Cartesian product. The last high band of 24 coefficients is cut into two vectors of dimension 12: one is formed by the even coefficients, the other by the odd coefficients.
  • the vector quantizers constructed for dimension 12 have been used.
  • the present invention thus provides an effective solution to the problem of vector quantization at variable speed and dimension.
  • the invention jointly solves the two problems of variable resolution and dimension by providing a vector quantizer whose dictionaries, for the different dimensions and resolutions, have the structuring properties PR and PD above.
  • the nesting of the dictionaries guarantees, on the one hand, the local decrease in distortion depending on the resolution and, on the other hand, significantly reduces the amount of memory required for storage because the dictionaries of the resolutions do not have to be stored, since all the elements of these dictionaries are in the dictionary of maximum resolution.
  • the choice to nest the dictionaries therefore already brings two advantages: the assurance of a decrease in local distortion according to increasing resolutions and reduced storage. It also allows a great finesse of resolution with, if necessary, a granularity lower than the bit, facilitating the choice of dictionaries of sizes not necessarily equal to powers of 2. This fine granularity of the resolutions is particularly interesting if several vectors of dimension and / or of variable resolution are to be quantified by frame, by associating with these rate quantifiers by non-integer vector an algorithm for binary training of the indices.
  • the PR nesting property of dictionaries means that you only have to store dictionaries of maximum resolution. Thanks to the second PD property, the amount of storage memory is even reduced. Indeed, a part of the elements of the dictionaries of maximum resolution does not have to be stored because it is deduced from elements taken in the dictionaries of maximum resolution but of smaller dimension, by taking account of insertion rules ⁇ R m ⁇ predefined. The proportion of elements thus structured is easily adaptable and allows fine adjustment of the amount of storage memory.
  • this structure of dictionaries induced by the two properties offers a great flexibility of design as well for the choice of the dimensions as for that of the resolutions.
  • these vector quantifiers adapt to the statistics of the source to be coded and thus avoid the problem of the delicate design of a mandatory "vector companding" in algebraic vector quantization to make the distribution of the source to be coded uniform.

Abstract

The invention relates to compression coding and/ or decoding of digital signals, in particular by vector variable-rate quantisation defining a variable resolution. For this purpose an impulsion dictionary comprises: for a given dimension, increasing resolution dictionaries imbricated into each other and, for a given dimension, a union of: a totality (D'iN) of code-vectors produced, by inserting elements taken in a final set (A) into smaller dimension code-vectors according to a final set of predetermined insertion rules (F1) and a second totality of code-vectors (Y') which are not obtainable by insertion into the smaller dimension code vectors according to said set of the insertion rules.

Description

QUANTIFICATION VECTORIELLE EN DIMENSION ET RESOLUTION VARIABLES VECTOR QUANTIFICATION IN VARIABLE DIMENSION AND RESOLUTION
La présente invention concerne le codage et/ou décodage en compression de signaux numériques tels que les signaux audio, vidéo, et plus généralement les signaux multimédia pour leur stockage et/ou leur transmission.The present invention relates to the coding and / or decoding in compression of digital signals such as audio, video signals, and more generally multimedia signals for their storage and / or their transmission.
Une solution très répandue en compression des signaux numériques est la quantification vectorielle. Une première incitation à utiliser la quantification vectorielle peut être trouvée dans la théorie du codage en blocs développée par Shannon selon laquelle une meilleure performance peut être atteinte en augmentant la dimension des vecteurs à coder. La quantification vectorielle consiste à représenter un vecteur d'entrée par un vecteur de même dimension choisi dans un ensemble fini. Ainsi, prévoir un quantificateur à M niveaux (ou vecteurs-codes) revient à créer une application non bijective de l'ensemble des vecteurs d'entrée (généralement l'espace réel euclidien a n dimensions Rn, ou encore un sous-ensemble de Rn) dans un sous-ensemble fini Y de Rn. Le sous-ensemble Y comporte alors M éléments distincts : A very widespread solution in compression of digital signals is vector quantization. A first incentive to use vector quantization can be found in the theory of block coding developed by Shannon according to which better performance can be achieved by increasing the size of the vectors to be coded. Vector quantization consists in representing an input vector by a vector of the same dimension chosen from a finite set. Thus, providing a quantifier at M levels (or code vectors) amounts to creating a non-bijective application of the set of input vectors (generally the real Euclidean space with dimensions R n , or even a subset of R n ) in a finite subset Y of R n . The subset Y then has M distinct elements:
Y est appelé alphabet de reproduction, ou encore dictionnaire, ou encore répertoire. Les éléments de Y sont dits "vecteurs- codes" , "mots de code" , "points de sortie" , ou encore "représentants" .Y is called the reproduction alphabet, or dictionary, or even directory. The elements of Y are called "vector-codes", "code words", "exit points", or even "representatives".
Le débit par dimension (r) du quantificateur (ou encore sa "résolution" ) est défini par r = — log2 M nThe flow rate by dimension (r) of the quantifier (or its "resolution") is defined by r = - log2 M n
En quantification vectorielle, un bloc de n échantillons est traité comme un vecteur de dimension n. Le vecteur est codé en choisissant un vecteur-code, dans un dictionnaire de M vecteurs-codes, celui qui lui "ressemble" le plus. En général, une recherche exhaustive est faite parmi tous les éléments du dictionnaire pour sélectionner l'élément du dictionnaire qui minimise une mesure de distance entre lui et le vecteur d'entrée.In vector quantization, a block of n samples is treated as a vector of dimension n. The vector is coded by choosing a vector-code, in a dictionary of M vector-codes, the one that "resembles" it the most. In general, an exhaustive search is made among all the elements of the dictionary to select the element of the dictionary which minimizes a measurement of distance between it and the input vector.
Selon la théorie du codage de source, quand la dimension devient trop grande, la performance de la quantification vectorielle approche une limite dite "borne de débi t- distorsion de la source" . Outre la dimensionnalité de l'espace, la quantification vectorielle peut aussi exploiter les propriétés de la source à coder, par exemple des dépendances non-linéaires et/ou linéaires, ou encore la forme de la distribution de probabilité. En général, les dictionnaires de quantificateurs vectoriels sont conçus à partir de méthodes statistiques telles que l'algorithme de Lloyd généralisé (noté GLA pour " Generalized Lloyd Algori thm" ) . Cet algorithme, bien connu, est basé sur les conditions nécessaires d'optimalité d'une quantification vectorielle. A partir d'une séquence d'entraînement représentative de la source à coder et d'un dictionnaire initial, le dictionnaire est construit de façon itérative. Chaque itération comprend deux étapes : la construction des régions de quantification par quantification de la séquence d'entraînement selon la règle du plus proche voisin, et - l'amélioration du dictionnaire en remplaçant les anciens vecteurs-codes par les centroïdes des régions (selon la règle des centroïdes) .According to the source coding theory, when the dimension becomes too large, the performance of vector quantization approaches a limit known as "source rate-distortion bound". In addition to the dimensionality of space, vector quantization can also exploit the properties of the source to be coded, for example non-linear and / or linear dependencies, or even the form of the probability distribution. In general, vector quantifier dictionaries are designed using statistical methods such as the generalized Lloyd algorithm (noted GLA for "Generalized Lloyd Algori thm"). This well-known algorithm is based on the necessary conditions of optimality of a vector quantization. From a training sequence representative of the source to be coded and an initial dictionary, the dictionary is constructed iteratively. Each iteration has two stages: construction of the quantification regions by quantification of the training sequence according to the nearest neighbor rule, and - improvement of the dictionary by replacing the old code vectors with the region centroids (according to the centroid rule).
Pour éviter la convergence vers un minimum local de cet algorithme itératif déterministe, des variantes dites de "relaxation stochastique" (notées SKA pour "Stochastic K-means algori thm" ) inspirées de la technique du recuit simulé ont été proposées en introduisant une part d'aléatoire dans l'étape de construction des centroïdes et/ou dans celle de construction des classes. Les quantificateurs vectoriels statistiques ainsi obtenus ne possèdent aucune structure, ce qui rend leur exploration coûteuse en calculs et gourmande en mémoire. En effet, la complexité tant du codage que du stockage, est proportionnelle à n.2nr. Cette croissance exponentielle en fonction de la dimension des vecteurs et du débit limite l'emploi des quantificateurs vectoriels non structurés à de faibles dimensions et/ou de bas débits pour pouvoir les implanter en temps réel .To avoid convergence towards a local minimum of this iterative deterministic algorithm, so-called "stochastic relaxation" variants (noted SKA for "Stochastic K-means algori thm") inspired by the simulated annealing technique have been proposed by introducing a part of '' random in the stage of building centroids and / or in that of building classes. The statistical vector quantifiers thus obtained have no structure, which makes their exploration costly in computation and greedy in memory. Indeed, the complexity of both coding and storage is proportional to n.2 nr . This exponential growth as a function of the size of the vectors and of the flow rate limits the use of unstructured vector quantizers to small dimensions and / or low flow rates in order to be able to implant them in real time.
La quantification scalaire, qui quantifie les échantillons de façon individuelle, n'est pas aussi efficace que la quantification vectorielle car elle ne peut exploiter que la forme de la distribution de probabilité de la source et la dépendance linéaire. Toutefois, la quantification scalaire est moins coûteuse en calculs et en mémoire que la quantification vectorielle. De plus, la quantification scalaire associée à un codage entropique peut atteindre de bonnes performances même à des résolutions modérées.Scalar quantization, which quantifies samples individually, is not as efficient as vector quantization because it can only exploit the form of the probability distribution of the source and the linear dependence. However, scalar quantization is less costly in computation and in memory than vector quantization. In addition, quantification scalar associated with entropy coding can achieve good performance even at moderate resolutions.
Pour s'affranchir des contraintes de taille et de dimension, plusieurs variantes de la quantification vectorielle de base furent étudiées, elles tentent de remédier à l'absence de structure du dictionnaire et parviennent ainsi à réduire la complexité au détriment de la qualité. Cependant, le compromis performance/complexité est amélioré, ce qui permet d'accroître la plage des résolutions et/ou des dimensions sur laquelle la quantification vectorielle peut être appliquée efficacement en coût de calculs ou de mémoire.To overcome the constraints of size and dimension, several variants of basic vector quantization were studied, they try to remedy the absence of dictionary structure and thus manage to reduce complexity at the expense of quality. However, the performance / complexity compromise is improved, which makes it possible to increase the range of resolutions and / or dimensions to which vector quantization can be applied effectively in computation or memory cost.
De nombreux schémas de quantificateurs vectoriels structurés ont été proposés dans la littérature. Les principaux sont les suivants : le quantificateur vectoriel en arbre qui impose au dictionnaire une structure hiérarchique en arbre : la procédure de recherche est simplifiée mais le quantificateur nécessite plus de mémoire de stockage, le quantificateur vectoriel à étages multiples qui met en cascade des quantificateurs vectoriels de niveaux moindres : les dictionnaires sont de tailles réduites et il en va de même pour ce qui concerne le temps de calcul et le coût en mémoire, le quantificateur vectoriel dit ^produi t cartésien" de N quantificateurs vectoriels classiques de tailles et de dimensions plus petites : on décompose le vecteur d'entrée en N sous-vecteurs, chaque sous-vecteur étant quantifié indépendamment des autres, - le quantificateur vectoriel "gain/orientation" constitue un cas particulier du quantificateur vectoriel "produi t cartésien" : on prévoit deux quantificateurs, l'un scalaire et l'autre vectoriel, qui codent séparément, de façon indépendante ou non, le gain (ou la norme) du vecteur et son orientation (en considérant le vecteur d'entrée normalisé) . Ce type de quantification vectorielle est aussi appelé quantification vectorielle " sphêrique" ou quantification vectorielle "polaire" , - le quantificateur vectoriel "code à permutation" , dont les vecteurs-codes sont obtenus par permutations des composantes d'un vecteur-leader et sa généralisation à la composée (ou l'union) de codes à permutation.Many schemes of structured vector quantizers have been proposed in the literature. The main ones are as follows: the tree vector quantifier which imposes a hierarchical tree structure on the dictionary: the search procedure is simplified but the quantizer requires more storage memory, the multistage vector quantizer which cascades vector quantizers lower levels: the dictionaries are reduced in size and the same applies to the computation time and the cost in memory, the vector quantizer known as "Cartesian product" of N classical vector quantizers of larger sizes and dimensions small: the input vector is broken down into N sub-vectors, each sub-vector being quantified independently of the others, - the vector quantizer "gain / orientation" constitutes a particular case of the vector quantifier "Cartesian product": two quantifiers are provided, one scalar and the other vector, which code separately, independently or not, the gain ( or norm) of the vector and its orientation (considering the normalized input vector). This type of vector quantization is also called "spherical" vector quantization or "polar" vector quantization, - the vector quantizer "code with permutation", whose vector-codes are obtained by permutations of the components of a vector-leader and its generalization to the composite (or union) of permutation codes.
Les techniques décrites ci-dessus relèvent toutes d'une approche statistique.The techniques described above are all based on a statistical approach.
Une autre approche radicalement différente a aussi été proposée. Il s'agit de la quantification vectorielle algébrique, qui utilise des dictionnaires fortement structurés, issus de réseaux réguliers de points ou des codes correcteurs d'erreur. Grâce aux propriétés algébriques de leurs dictionnaires, les quantificateurs vectoriels algébriques sont simples à mettre en oeuvre et n'ont pas a être stockés en mémoire. L'exploitation de la structure régulière de ces dictionnaires permet en effet le développement d'algorithmes de recherche optimaux et rapides et de mécanismes pour associer en particulier un indice (ou " index" ) à un vecteur-code correspondant (par exemple par une formule) . Les quantificateurs vectoriels algébriques sont moins complexes à mettre en oeuvre et nécessitent moins de mémoire. Toutefois, ils ne sont optimaux que pour une distribution uniforme de la source (soit dans l'espace, soit à la surface d'une hyper- sphère). S 'agissant d'une généralisation du quantificateur scalaire uniforme, le quantificateur vectoriel algébrique est plus difficile à ajuster à la distribution de la source par la technique dite du "companding" . On rappelle aussi que l'indexation (ou numérotation) des vecteurs- codes et l'opération inverse (décodage) nécessitent plus de calculs que dans le cas des quantificateurs vectoriels statistiques, pour lesquels ces opérations sont effectuées par de simples lectures de table.Another radically different approach has also been proposed. This is algebraic vector quantization, which uses highly structured dictionaries, derived from regular networks of points or error correcting codes. Thanks to the algebraic properties of their dictionaries, algebraic vector quantizers are simple to implement and do not have to be stored in memory. Exploiting the regular structure of these dictionaries allows the development of optimal and fast search algorithms and mechanisms for associating in particular an index (or "index") with a corresponding vector code (for example by a formula ). Vector quantifiers algebraic are less complex to implement and require less memory. However, they are only optimal for a uniform distribution of the source (either in space or on the surface of a hyper-sphere). Being a generalization of the uniform scalar quantizer, the algebraic vector quantizer is more difficult to adjust to the distribution of the source by the technique called "companding". It is also recalled that the indexing (or numbering) of the vector codes and the reverse operation (decoding) require more calculations than in the case of statistical vector quantizers, for which these operations are performed by simple table readings.
On présente ci-après certains aspects d'une quantification à dimension variable et les problêmes rencontrés.We present below certain aspects of a quantification with variable dimension and the problems encountered.
On indique d'abord que la quantification vectorielle est une technique bien connue et efficace pour coder des blocs d'échantillons de longueur fixe. Cependant, dans de nombreuses applications de compression du signal numérique, le signal à coder est modélisé par une séquence de paramètres de longueur variable. Une compression efficace de ces vecteurs de dimension variable est cruciale pour la conception de beaucoup de codeurs multimédia tels que les codeurs de parole ou audio (codeur "MBE" , codeur harmonique, codeur sinusoïdal, codeur par transformée, codeur par interpolation de formes d'onde prototypes) .We first indicate that vector quantization is a well-known and efficient technique for coding blocks of samples of fixed length. However, in many applications of digital signal compression, the signal to be encoded is modeled by a sequence of parameters of variable length. Efficient compression of these variable dimension vectors is crucial for the design of many multimedia encoders such as speech or audio encoders ("MBE" encoder, harmonic encoder, sinusoidal encoder, transform encoder, shape interpolation encoder). wave prototypes).
Dans les codeurs sinusoïdaux, le nombre .de sinusoïdes extraites dépend du nombre de pics sinusoïdaux détectés dans le signal, nombre qui varie au cours du temps en fonction de la nature du signal audio.In sinusoidal encoders, the number of sinusoids extracted depends on the number of sinusoidal peaks detected in the signal, a number which varies over time depending on the nature of the audio signal.
En outre, de nombreuses techniques de compression de la parole exploitent la périodicité à long terme du signal . C'est le cas des codeurs harmoniques où les composantes spectrales d'un ensemble de fréquences, qui sont les harmoniques de la période fondamentale du locuteur, sont codées. Le nombre de pics harmoniques spectraux étant inversement proportionnel à la fréquence fondamentale, comme cette période de fondamental varie selon le locuteur (typiquement, les enfants ayant une fréquence de vibration des cordes vocales plus haute que les hommes) et au cours du temps, le nombre de composantes à quantifier change aussi au cours du temps de trame à trame.In addition, many speech compression techniques exploit the long-term periodicity of the signal. This is the case with harmonic coders where the spectral components of a set of frequencies, which are the harmonics of the fundamental period of the speaker, are coded. The number of spectral harmonic peaks being inversely proportional to the fundamental frequency, as this fundamental period varies according to the speaker (typically, children with a frequency of vibration of the vocal cords higher than men) and over time, the number of components to be quantified also changes over time from frame to frame.
C'est aussi le cas des codeurs PWI (pour "Prototype Waveform Interpolation" ) où les formes d'onde prototype sont extraites sur des segments de longueur égale à la période du pitch, donc aussi variables temporellement . Dans les codeurs PWI, la quantification de ces formes d'onde de longueur variable est effectuée en codant séparément le gain (ou "RMS" pour " Root -Mean- Square" ) et la forme d'onde normalisée qui est elle-même décomposée en deux formes d'ondes de même longueur variable : la forme d'onde REW { "Rapidly Evolving Waveform" ) et la forme d'onde SEW ( " Slowly Evolving Waveform" ) . Pour une trame de longueur fixe, le nombre de prototypes est variable, donc le nombre de gains, de REW et SEW est lui aussi variable, ainsi que la dimension des formes d'ondes REW et SEW. Dans d'autres types de codeurs, tels que les codeurs audio par transformée, le nombre de coefficients de transformée obtenus sur des longueurs de trame de longueur fixe est imposé mais il est usuel de regrouper ces coefficients en bandes de fréquence pour les quantifier. Classiquement, cette découpe est effectuée en bandes de largeurs inégales pour exploiter les propriétés psychoacoustiques de l'audition humaine en suivant les bandes critiques de l'oreille. La plage de variation de la dimension de ces vecteurs de coefficients de transformée varie typiquement de 3 (pour les bandes de plus basses fréquences) à 15 (pour les bandes de hautes fréquences) , dans un codeur en bande élargie (50Hz-7000Hz) , et même jusqu'à 24 dans un codeur en bande FM (couvrant la gamme audible 20Hz- 16000Hz) .This is also the case for PWI coders (for "Prototype Waveform Interpolation") where the prototype waveforms are extracted on segments of length equal to the period of the pitch, therefore also variable in time. In PWI coders, the quantization of these variable length waveforms is carried out by coding separately the gain (or "RMS" for "Root -Mean- Square") and the normalized waveform which is itself decomposed in two waveforms of the same variable length: the REW waveform ("Rapidly Evolving Waveform") and the SEW waveform ("Slowly Evolving Waveform"). For a fixed length frame, the number of prototypes is variable, so the number of gains, REW and SEW is also variable, as well as the size of the REW and SEW waveforms. In other types of coders, such as transform audio coders, the number of transform coefficients obtained over fixed length frame lengths is imposed but it is usual to group these coefficients into frequency bands to quantify them. Conventionally, this cutting is carried out in bands of unequal widths to exploit the psychoacoustic properties of human hearing by following the critical bands of the ear. The range of variation of the dimension of these vectors of transform coefficients typically varies from 3 (for the bands of lower frequencies) to 15 (for the bands of high frequencies), in an encoder in wide band (50Hz-7000Hz), and even up to 24 in an FM band encoder (covering the audible range 20Hz - 16000Hz).
Théoriquement, un quantificateur vectoriel optimal de dimension variable emploierait un ensemble de dictionnaires de dimension fixe, un pour chaque dimension possible du vecteur d'entrée. Par exemple, dans les codeurs harmoniques, pour une période de pitch de 60 à 450 Hz, le nombre de pics harmoniques en bande téléphonique variant de 7 pour les voix aiguës (enfants) à 52 pour les voix graves (hommes) , il faudrait construire, mettre en mémoire et en oeuvre 46 (46=52-7) quantificateurs vectoriels . La conception de chaque dictionnaire nécessite une séquence d'apprentissage suffisamment longue pour représenter correctement les statistiques des vecteurs d'entrée. De plus, le stockage de tous les dictionnaires se révèle impraticable ou très coûteux en mémoire. On voit donc que dans le cas de dimension variable, il est difficile de tirer parti des avantages de la quantification vectorielle en respectant des contraintes de stockage mémoire et aussi de séquences d'entraînement.Theoretically, an optimal vector quantizer of variable dimension would use a set of dictionaries of fixed dimension, one for each possible dimension of the input vector. For example, in harmonic coders, for a pitch period of 60 to 450 Hz, the number of harmonic peaks in the telephone band varying from 7 for high voices (children) to 52 for low voices (men), it would be necessary to construct , store and implement 46 (46 = 52-7) vector quantifiers. The design of each dictionary requires a training sequence long enough to correctly represent the statistics of the input vectors. In addition, storing all the dictionaries proves to be impractical or very costly in memory. We see therefore, in the case of variable dimensions, it is difficult to take advantage of the advantages of vector quantization while respecting memory storage constraints and also training sequences.
On présente ci-après certains aspects d'une quantification à résolution variable et les problèmes rencontrés .Some aspects of a variable resolution quantization and the problems encountered are presented below.
On précise d'abord que la variabilité du signal d'entrée ne se traduit pas seulement par la variation du nombre de paramètres à coder mais aussi par la variation de la quantité d' informations binaires à transmettre pour une qualité donnée. Par exemple en parole, les attaques ("or-set"), les sons voisés et les sons non voisés ne nécessitent pas le même débit pour une même qualité. Les attaques peu prédictibles nécessitent un débit plus élevé que les sons voisés plus stables et dont la stationnarité peut être mise à profit par des "prédicteurs" qui permettent de réduire le débit. Enfin, les sons non voisés ne nécessitent pas une grande précision de codage et donc requièrent peu de débit.It is first specified that the variability of the input signal is not only reflected by the variation in the number of parameters to be coded but also by the variation in the quantity of binary information to be transmitted for a given quality. For example in speech, attacks ("or-set"), voiced sounds and unvoiced sounds do not require the same bit rate for the same quality. Unpredictable attacks require a higher bit rate than more stable voices and whose stationarity can be taken advantage of by "predictors" which reduce the bit rate. Finally, unvoiced sounds do not require high coding accuracy and therefore require little bit rate.
Pour exploiter la variation temporelle des caractéristiques des signaux multimédias tels que la voix ou la vidéo, il est judicieux de concevoir des codeurs à débit variable . Ces codeurs à débit variable sont particulièrement adaptés aux communications sur réseaux, par paquets, tels que l'Internet, l'ATM, ou autres.To exploit the temporal variation of the characteristics of multimedia signals such as voice or video, it is wise to design variable rate coders. These variable rate encoders are particularly suitable for communications over networks, in packets, such as the Internet, ATM, or others.
En effet, la commutation par paquets permet de manipuler et traiter de façon plus flexible les bits d'information et donc d'augmenter la capacité du canal en réduisant le débit moyen. L'utilisation de codeurs à débit variable est aussi un moyen efficace de lutter contre la congestion du système et/ou de s'adapter à la diversité des conditions d'accès.Packet switching makes it possible to manipulate and process information bits more flexibly and therefore increase the capacity of the channel by reducing the average flow. The use of variable rate encoders is also an effective way to combat system congestion and / or adapt to the diversity of access conditions.
Dans les communications multimédias, les quantificateurs à débit variable permettent aussi d'optimiser la répartition du débit entre : les codages source et canal : comme dans le concept de l'AMR { "Adaptive Multi Rate" ) , le débit peut être commuté à chaque trame de 20 ms pour être adapté dynamiquement aux conditions d'erreurs canal et de trafic. La qualité globale de la parole est ainsi améliorée en assurant une bonne protection contre les erreurs, tout en réduisant le débit pour le codage de la source si le canal se dégrade; les différents types de signaux média (tels que la voix et la vidéo dans les applications de visioconférence) ;In multimedia communications, variable bit rate quantifiers also make it possible to optimize the bit rate distribution between: source and channel encodings: as in the concept of AMR ("Adaptive Multi Rate"), the bit rate can be switched at each 20 ms frame to be dynamically adapted to channel and traffic error conditions. The overall quality of the speech is thus improved by ensuring good protection against errors, while reducing the bit rate for coding the source if the channel degrades; the different types of media signals (such as voice and video in video conferencing applications);
- les différents paramètres d'un même signal : dans les codeurs audio par transformée, par exemple, il est usuel de répartir dynamiquement les bits entre l'enveloppe spectrale et les différentes bandes de coefficients. Souvent, un codage entropique de l'enveloppe est d'abord effectué et a pour objectif d'exploiter la distribution non uniforme des mots de code en assignant des codes de longueur variable aux mots de code, les plus probables ayant une longueur plus courte que les moins probables, ce qui conduit à minimiser la longueur moyenne des mots de code. De plus, pour exploiter les propriétés psychoacoustiques de l'oreille humaine, le débit restant (variable) est alloué dynamiquement aux bandes fréquentielles des coefficients en fonction - de leur importance perceptuelle.- the different parameters of the same signal: in transform audio coders, for example, it is usual to dynamically distribute the bits between the spectral envelope and the different bands of coefficients. Often, entropy coding of the envelope is first performed and aims to exploit the non-uniform distribution of code words by assigning variable length codes to code words, the most likely having a length shorter than least likely, which minimizes the average length of code words. In addition, to exploit the psychoacoustic properties of the human ear, the remaining (variable) flow is dynamically allocated to the frequency bands of the coefficients according to - their perceptual importance.
Les nouvelles applications de codage multimédia (telles que l' audio et la vidéo) nécessitent des quantifications hautement flexibles tant en dimension qu'en débit. La gamme de débits devant en plus permettre d' tteindre une haute qualité, ces quantificateurs multidimensionnels et multi-résolutions doivent viser des hautes résolutions. La barrière de complexité posée par ces quantificateurs vectoriels reste, en soi, une performance à atteindre, malgré l'augmentation des puissances de traitement et des capacités mémoire des nouvelles technologies.New multimedia coding applications (such as audio and video) require highly flexible quantifications in both size and bitrate. The range of bit rates must in addition allow reaching a high quality, these multidimensional and multi-resolution quantifiers must aim for high resolutions. The complexity barrier posed by these vector quantifiers remains, in itself, a performance to be achieved, despite the increase in processing power and memory capacity of new technologies.
Comme on le verra ci-après, la plupart des techniques de codage de source proposées visent soit à résoudre les problèmes liés à une dimension variable, soit les problèmes liés à une résolution variable. Peu de techniques aujourd'hui proposées permettent de résoudre conjointement ces deux problèmes.As will be seen below, most of the source coding techniques proposed aim either to solve the problems linked to a variable dimension, or the problems linked to variable resolution. Few techniques currently proposed make it possible to jointly solve these two problems.
Pour ce qui concerne la quantification vectorielle à dimension variable, connue, la variabilité de la dimension des paramètres à coder constitue en soi un obstacle à l'utilisation de la quantification vectorielle. Ainsi, les premières versions du codeur par transformée emploient des quantificateurs scalaires de Lloyd-Max. Un codeur de ce type, dit " TDAC" , qu'a développé la Demanderesse, est décrit notamment dans : - "High Quality Audio Transform Coding at 64 kbit/ s" , de Y.Mahieux, J. P. Petit, dans IEEE Trans . Commun, Vol. 42, No 11, pp. 3010-3019, Novembre 1994.With regard to known variable dimension vector quantization, the variability of the dimension of the parameters to be coded constitutes in itself an obstacle to the use of vector quantization. Thus, the first versions of the transform coder use Lloyd-Max scalar quantifiers. A coder of this type, called "TDAC", which the Applicant has developed, is described in particular in: - "High Quality Audio Transform Coding at 64 kbit / s", by Y. Mahieux, JP Petit, in IEEE Trans. Common, Vol. 42, No 11, pp. 3010-3019, November 1994.
D'autres solutions ont été proposées pour résoudre ce problème de quantification vectorielle de dimension variable. Le codeur " IMBE" utilise un schéma de codage compliqué avec des allocations binaires variables et une quantification hybride scalaire/vectorielle.Other solutions have been proposed to solve this vector quantization problem of variable dimension. The "IMBE" coder uses a complicated coding scheme with variable binary allocations and scalar / vector hybrid quantization.
Une approche très couramment utilisée pour quantifier des vecteurs de dimension variable consiste à pré-traiter le vecteur de dimension variable pour le convertir en un autre vecteur de dimension fixe avant la quantification. Il existe plusieurs variantes de cette technique de quantification vectorielle associée à une conversion de dimension (ce type de quantification vectorielle étant noté DCVQ pour "Dimension Conversion VectorAn approach very commonly used to quantify vectors of variable dimension consists in preprocessing the vector of variable dimension to convert it into another vector of fixed dimension before quantification. There are several variants of this vector quantization technique associated with a dimension conversion (this type of vector quantization being noted DCVQ for "Dimension Conversion Vector
Quanti zat ion" ) .Quanti zat ion ").
Parmi les différentes procédures de conversion de dimension proposées, on peut citer notamment : la troncature, le sous-échantillonnage, l'interpolation, le "length warping" .Among the different dimension conversion procedures proposed, we can cite in particular: truncation, subsampling, interpolation, "length warping".
Pour les codeurs de parole sinusoïdaux ou MBE, il a été proposé d'approximer les coefficients spectraux par un modèle tout-pôle d'ordre fixe puis d'effectuer une quantification vectorielle de dimension fixe des paramètres du modèle. Une autre technique de quantification vectorielle par transformée matricielle non carrée résout le problême de la quantification vectorielle de dimension variable L en combinant une quantification vectorielle de dimension fixe K (K<L) avec une transformée linéaire matricielle non carrée (LxK) .For sinusoidal speech coders or MBE, it has been proposed to approximate the spectral coefficients by an all-pole model of fixed order and then to perform a vector quantization of fixed dimension of the parameters of the model. Another vector quantization technique by non-matrix transform square solves the problem of vector quantization of variable dimension L by combining a vector quantization of fixed dimension K (K < L) with a non-square matrix linear transform (LxK).
On note aussi un autre type de quantification vectorielle associée à une conversion de dimension qui utilise toujours un quantificateur vectoriel de dimension fixe K mais la conversion de dimension est appliquée aux vecteurs-codes pour obtenir des vecteurs-codes ayant la même dimension que le vecteur d'entrée.We also note another type of vector quantization associated with a dimension conversion which always uses a vector quantizer of fixed dimension K but the dimension conversion is applied to the vector codes to obtain vector vectors having the same dimension as the vector d 'Entrance.
L'inconvénient de la quantification vectorielle associée à une conversion de dimension est que la distorsion totale a deux composantes: l'une due à la quantification, l'autre à la conversion de dimension. Pour éviter cette distorsion due à la conversion de dimension, une autre approche de la quantification vectorielle de dimension variable consiste à considérer chaque vecteur d'entrée de dimension variable L comme formé par un sous-ensemble de composantes d'un vecteur "sous-jacent" de dimension K (L<K) et à ne concevoir et n'utiliser qu'un seul dictionnaire "universel" de dimension fixe K qui couvre cependant toute la plage des dimensions des vecteurs d'entrée, la correspondance entre le vecteur d' entrée étant effectuée par un sélecteur. Cependant, ce dictionnaire "universel" englobant tous les autres dictionnaires de dimensions inférieures ne paraît pas optimal pour les dimensions plus faibles. En particulier, la résolution maximale rmax par dimension est limitée par la contrainte de stockage et par le débit par vecteur de paramètres. Pour un dictionnaire Kï de taille 2 max , la quantité de mémoire requise pour stocker ce dictionnaire est K2Krχ aκ valeurs et son débit par vecteur de paramètres est de Krmwi . Ainsi, pour une même taille de dictionnaire (et donc un même débit par vecteur de paramètres et par trame) , un vecteur de dimension L (L<K) pourrait avoir une résolution (ou un débit par dimension) K/L fois plus grande, et ce, pour un volume d'informations à stocker K/L fois plus petit.The disadvantage of vector quantization associated with dimension conversion is that total distortion has two components: one due to quantization, the other due to dimension conversion. To avoid this distortion due to dimension conversion, another approach to variable dimension vector quantization consists in considering each input vector of variable dimension L as formed by a subset of components of an "underlying" vector. "of dimension K (L <K) and to design and use only one" universal "dictionary of fixed dimension K which however covers the whole range of dimensions of the input vectors, the correspondence between the vector of input being effected by a selector. However, this "universal" dictionary encompassing all the other dictionaries of smaller dimensions does not seem optimal for the smaller dimensions. In particular, the maximum resolution r max per dimension is limited by the storage constraint and by the throughput per vector of parameters. For a dictionary Ki of size 2 max , the amount of memory required to store this dictionary is K2 Krχ aκ values and its bit rate per vector of parameters is Kr mwi . Thus, for the same dictionary size (and therefore the same bit rate per vector of parameters and per frame), a vector of dimension L (L <K) could have a resolution (or a bit rate per dimension) K / L times greater , and this, for a volume of information to be stored K / L times smaller.
Pour ce qui concerne la quantification vectorielle à résolution variable, connue, une solution simple consiste à, comme pour le cas de la quantification vectorielle à dimension variable, utiliser une quantification scalaire, comme par exemple dans les premières versions de codeur par transformée TDAC.As for known variable resolution vector quantization, a simple solution consists in, as in the case of variable dimension vector quantization, using scalar quantization, as for example in the first versions of TDAC transform coder.
Cependant, l'utilisation d'une résolution entière par échantillon entraîne une granularité de résolution grossière par bande de coefficients qui nuit à l'efficacité de la procédure d'allocation binaire dynamique. On a alors proposé d'utiliser des quantificateurs scalaires à nombre entier impair de niveaux de reconstruction, en combinaison avec une procédure de mise en train binaire conjointe des indices codés. La granularité plus fine de la résolution apportée, plus propice à la procédure d'allocation binaire, a permis d'améliorer la qualité, au prix d'une complexité de l'algorithme de combinaison des indices, cet algorithme étant nécessaire à une mise en train binaire efficace en termes de débit. Néanmoins, pour les bandes de fréquences élevées ayant un plus grand nombre de coefficients, la contrainte d'un nombre entier de niveaux par échantillon, due à la quantification scalaire, se traduit encore par une granularité trop grossière des résolutions par bande.However, the use of an integer resolution per sample leads to a coarse resolution granularity per band of coefficients which affects the efficiency of the dynamic binary allocation procedure. It was then proposed to use scalar quantifiers with an odd whole number of reconstruction levels, in combination with a joint binary training procedure for the coded indices. The finer granularity of the resolution provided, more conducive to the binary allocation procedure, has made it possible to improve the quality, at the cost of a complexity of the algorithm for combining indices, this algorithm being necessary for setting up bit stream efficient in terms of throughput. However, for the frequency bands Since high values have a greater number of coefficients, the constraint of an integer number of levels per sample, due to scalar quantization, still results in too coarse granularity of the resolutions per band.
La quantification vectorielle permet de s'affranchir de cette contrainte de nombre de niveaux entiers par échantillon et autorise une granularité fine des résolutions disponibles. En revanche, la complexité de la quantification vectorielle limite souvent le nombre de débits disponibles. Par exemple, le codeur de parole multi-débits AMR-NB, basé sur la technique ACELP bien connue, comporte huit débits fixes allant de 12.2 kbit/s à 4.75 kbit/s, chacun ayant un niveau différent de protection contre les erreurs grâce à une distribution différente du débit entre les codages source et canal. Pour chacun des paramètres du codeur ACELP (LSP, retards LTP, gains d'excitation, excitation fixe), des dictionnaires de résolution différente ont été construits. Cependant, le nombre de débits disponibles pour chacun de ces paramètres est limité par la complexité de stockage des quantificateurs vectoriels non algébriques. D'ailleurs, dans le codeur multi-débits AMR-WB comportant neuf débits allant de 6.60 à 23.85 kbit/s, la variation des débits est essentiellement assurée par les dictionnaires d'excitation algébrique qui ne nécessitent pas de stockage. Il y a huit dictionnaires et donc huit débits pour l'excitation fixe tandis que les autres paramètres qui utilisent des dictionnaires stochastiques (LSP, gains, retards absolus et différentiels) n'ont que deux débits possibles. On indique que les quantificateurs vectoriels stochastiques utilisés dans les codeurs multi-débits AMR sont des quantificateurs vectoriels à structure contrainte (produit cartésien et étages multiples) . Une large famille de quantificateurs à débit variable peut en effet être basée sur des quantificateurs vectoriels à structure contrainte tels que les quantificateurs déjà mentionnés à étages multiples, à produits cartésiens, mais aussi les quantificateurs vectoriels en arbre. L'emploi de ces quantificateurs vectoriels en arbre pour le codage à débit variable a fait l'objet de nombreuses études. Le quantificateur vectoriel en arbre binaire fut le premier introduit. Il dérive naturellement de l'algorithme LBG de conception d'un quantificateur vectoriel par séparations { "spli tting" ) successives des centroïdes à partir du noeud "racine" , barycentre de la séquence d'entraînement. Des variantes de quantificateurs vectoriels en arbre ont été proposées en élaguant (méthode de "pruning" ) ou au contraire en ramifiant certains noeuds de l'arbre selon leurs attributs tels que leur distorsion, leur population conduisant à des quantificateurs vectoriels en arbre non binaires et/ou non équilibrés.Vector quantization overcomes this constraint of the number of whole levels per sample and allows fine granularity of the available resolutions. On the other hand, the complexity of vector quantization often limits the number of bit rates available. For example, the AMR-NB multi-rate speech coder, based on the well-known ACELP technique, has eight fixed bit rates ranging from 12.2 kbit / s to 4.75 kbit / s, each with a different level of protection against errors thanks to a different distribution of the bit rate between the source and channel codings. For each of the parameters of the ACELP encoder (LSP, LTP delays, excitation gains, fixed excitation), dictionaries of different resolution have been constructed. However, the number of bit rates available for each of these parameters is limited by the storage complexity of non-algebraic vector quantizers. Moreover, in the AMR-WB multi-bit coder comprising nine bit rates ranging from 6.60 to 23.85 kbit / s, the variation of bit rates is essentially ensured by the algebraic excitation dictionaries which do not require storage. There are eight dictionaries and therefore eight bit rates for fixed excitation while the other parameters which use stochastic dictionaries (LSP, gains, absolute and differential delays) have only two possible bit rates. It is indicated that the stochastic vector quantizers used in AMR multi-bit rate coders are vector quantizers with constrained structure (Cartesian product and multiple stages). A large family of variable rate quantifiers can indeed be based on constrained vector quantizers such as the already mentioned multistage quantizers, with Cartesian products, but also the tree vector quantizers. The use of these tree vector quantizers for variable rate coding has been the subject of numerous studies. The vector quantizer in binary tree was the first introduced. It naturally derives from the LBG algorithm for designing a vector quantizer by successive spli tting of the centroids from the "root" node, barycenter of the training sequence. Variants of tree vector quantifiers have been proposed by pruning ("pruning" method) or on the contrary by branching certain nodes of the tree according to their attributes such as their distortion, their population leading to vector quantizers in non binary tree and / or unbalanced.
Les figures la et lb représentent des quantificateurs vectoriels structurés en arbre. Plus particulièrement, la figure la représente un arbre binaire équilibré, tandis que la figure lb représente un arbre non binaire et non équilibré.Figures 1a and 1b represent vector quantizers structured in a tree. More particularly, FIG. 1a represents a balanced binary tree, while FIG. 1b represents a non-binary and unbalanced tree.
On construit facilement des quantificateurs vectoriels multi-résolutions à partir d'un quantificateur vectoriel en arbre, en sélectionnant le nombre de noeuds correspondant aux diverses résolutions voulues. La structure hiérarchique en arbre est séduisante et simplifie la procédure de recherche. En revanche, elle implique une recherche sous-optimale et une augmentation importante de la mémoire nécessaire car tous les noeuds de l'arbre depuis le noeud-racine jusqu'aux noeuds terminaux en passant par tous les noeuds des niveaux intermédiaires doivent être stockés. De plus, comme l'ensemble des noeuds d'un dictionnaire de résolution inférieure n'est pas inclus dans les dictionnaires de résolution supérieure, la décroissance de l'erreur de quantification en fonction de l'augmentation du débit du quantificateur vectoriel n'est pas garantie localement.We easily build vector quantizers multi-resolutions from a tree vector quantizer, by selecting the number of nodes corresponding to the various desired resolutions. The hierarchical tree structure is attractive and simplifies the search procedure. On the other hand, it implies a suboptimal search and a significant increase in the memory required because all the nodes of the tree from the root node to the terminal nodes passing through all the nodes of the intermediate levels must be stored. In addition, since all the nodes of a dictionary of lower resolution are not included in the dictionaries of higher resolution, the decrease in the quantization error as a function of the increase in the throughput of the vector quantizer is not guaranteed locally.
On sait construire en outre des quantificateurs à résolution variable à partir de codes algébriques, en particulier des quantificateurs vectoriels algébriques imbriqués EAVQ (pour "Embedded Algebraic Vector Quantizers" ) qui utilisent des sous-ensembles de codes sphériques du réseau régulier de Gosset en dimension 8.We also know how to build variable resolution quantifiers from algebraic codes, in particular nested algebraic vector quantizers EAVQ (for "Embedded Algebraic Vector Quantizers") which use subsets of spherical codes of the regular Gosset network in dimension 8 .
Dans le document :In the document :
- "A 16, 24, 32 kbi t/s wideband speech codée based on- "At 16, 24, 32 kbi t / s wideband speech coded based on
ACELP" de P. Combescure, J. Schnitzler, K. Fischer,ACELP "by P. Combescure, J. Schnitzler, K. Fischer,
R. Kircherr, C. Lamblin, A. Le Guyader, D. Massaloux,R. Kircherr, C. Lamblin, A. Le Guyader, D. Massaloux,
C. Quinquis, J. Stegmann, P. Vary, dans Proceedings IEEEC. Quinquis, J. Stegmann, P. Vary, in IEEE Proceedings
International Conférence on Acoustics, Speech, and SignalInternational Conference on Acoustics, Speech, and Signal
Processing, Vol. 1, pp 5 -8, 1999, cette approche de quantification vectorielle algébrique imbriquée a été étendue à la quantification à dimension variable en utilisant des codes algébriques de différentes dimensions. Même si cette généralisation de la quantification EAVQ permet de quantifier des vecteurs de dimension variable à des résolutions variables, elle présente des inconvénients.Processing, Vol. 1, pp 5 -8, 1999, this algebraic vector quantization approach nested has been extended to variable dimension quantization using algebraic codes of different dimensions. Even if this generalization of the EAVQ quantization makes it possible to quantify vectors of variable dimension at variable resolutions, it has drawbacks.
La distribution des vecteurs d'entrée doit être uniforme. Or, adapter la distribution de la source à cette contrainte est une tâche très difficile. La conception de quantificateurs algébriques à partir de réseaux réguliers pose aussi le problême de tronquer et d'ajuster les régions des différents réseaux réguliers pour obtenir les différentes résolutions désirées et ceci pour les différentes dimensions.The distribution of the input vectors must be uniform. Adapting the distribution of the source to this constraint is a very difficult task. The design of algebraic quantifiers from regular networks also poses the problem of truncating and adjusting the regions of the different regular networks to obtain the different desired resolutions and this for the different dimensions.
La présente invention vient améliorer la situation.The present invention improves the situation.
L'un des buts de la présente invention est, de façon générale, de proposer une solution efficace et économique (notamment en mémoire de stockage) au problème de la quantification à débit variable de vecteurs de dimension variable .One of the aims of the present invention is, in general, to propose an efficient and economical solution (in particular in storage memory) to the problem of variable-rate quantization of vectors of variable dimension.
Un autre but de la présente invention est, de façon non limitative, de proposer une quantification vectorielle s ' adaptant avantageusement au codage et décodage de signaux numériques utilisant une quantification des amplitudes spectrales des codeurs harmoniques et/ou des coefficients de transformée des codeurs fréquentiels, notamment des signaux de parole et/ou audio. Elle propose à cet effet un dictionnaire comportant des vecteurs-codes de dimension variable et destiné à être utilisé dans un dispositif de codage et/ou décodage en compression de signaux numériques, par quantification vectorielle à débit variable définissant une résolution variable, le dictionnaire comportant :Another object of the present invention is, without limitation, to propose a vector quantization advantageously adapting to the coding and decoding of digital signals using a quantification of the spectral amplitudes of the harmonic coders and / or of the transform coefficients of the frequency coders, in particular speech and / or audio signals. To this end, it proposes a dictionary comprising code vectors of variable dimension and intended to be used in a coding and / or decoding device in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution, the dictionary comprising:
- d'une part, pour une dimension donnée, des dictionnaires de résolution croissante imbriqués les uns dans les autres ,- on the one hand, for a given dimension, dictionaries of increasing resolution nested one inside the other,
- et, d'autre part, pour une dimension donnée, une union :- and, on the other hand, for a given dimension, a union:
• d'un premier ensemble constitué de vecteurs-codes construits en insérant, dans des vecteurs-codes de dictionnaires de dimension inférieure, des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion prédéterminées,A first set made up of vector-codes constructed by inserting, into code vectors of dictionaries of lower dimension, elements taken from a finite set of real numbers according to a finite set of predetermined insertion rules,
• et d'un deuxième ensemble constitué de vecteurs-codes ne pouvant être obtenus par insertion dans des vecteurs-codes de dimension inférieure des éléments dudit ensemble fini selon ledit jeu de règles d' insertion.• and of a second set made up of code vectors which cannot be obtained by inserting into code vectors of smaller dimension elements of said finite set according to said set of rules of insertion.
Préférentiellement, le jeu de règles d'insertion est élaboré à partir de règles élémentaires consistant à insérer un seul élément de l'ensemble fini de réels en tant que composante à une position donnée d'un vecteur.Preferably, the set of insertion rules is developed from elementary rules consisting in inserting a single element from the finite set of real numbers as a component at a given position of a vector.
Chaque règle élémentaire est préférentiellement définie par un couple de deux entiers positifs représentatifs : -d'un rang de l'élément dans ledit ensemble fini, -et d'une position d'insertion. On comprendra que les règles d'insertion ainsi caractérisées se lisent et se déduisent directement de la structure même du dictionnaire au sens de l'invention.Each elementary rule is preferably defined by a pair of two positive integers representative: of a rank of the element in said finished set, and of an insertion position. It will be understood that the insertion rules thus characterized are read and deduced directly from the very structure of the dictionary within the meaning of the invention.
Bien entendu, de façon purement réversible, on peut définir des règles de suppression consistant à supprimer un ou plusieurs éléments d'un ensemble fini de dimension donnée N" pour atteindre une dimension inférieure N (N<N«) .Of course, in a purely reversible manner, it is possible to define suppression rules consisting in deleting one or more elements from a finite set of given dimension N "to reach a lower dimension N (N <N " ).
La présente invention vise aussi un procédé pour former un dictionnaire selon l'invention, dans lequel, pour une dimension donnée : a) on construit un premier ensemble constitué de vecteurs- codes formés en insérant/supprimant dans des vecteurs- codes de dictionnaires de dimension inférieure/supérieure des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion/suppression prédéterminées, b) on construit, pour ladite dimension donnée, un premier dictionnaire, intermédiaire, comportant au moins ledit premier ensemble, c) et, pour adapter ledit dictionnaire à une utilisation avec au moins une résolution donnée, on construit, à partir du dictionnaire intermédiaire, un second dictionnaire, définitif, par imbrication/simplification de dictionnaires de résolutions croissantes/décroissantes, les dictionnaires de résolutions croissantes étant imbriqués les uns dans les autres du dictionnaire de plus petite résolution jusqu'au dictionnaire de plus grande résolution.The present invention also relates to a method for forming a dictionary according to the invention, in which, for a given dimension: a) a first set of code vectors formed is constructed by inserting / deleting into code vectors of dimension dictionaries lower / upper elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, b) a first intermediate dictionary is constructed for said given dimension, comprising at least said first set, c ) and, in order to adapt said dictionary to use with at least one given resolution, a second dictionary, final, is constructed from the intermediate dictionary, by nesting / simplifying dictionaries of increasing / decreasing resolutions, the dictionaries of increasing resolutions being nested within each other from the lowest resolution dictionary down to the d larger dictionary resolution.
Bien entendu, on entend par les termes "imbrication d'un ensemble A dans un ensemble S", le fait que l'ensemble A est inclus dans l'ensemble B. En outre, on entend par les termes "simplification d 'un ensemble A pour obtenir un ensemble B" , le fait que l'ensemble A inclut l'ensemble B.Of course, the terms "nesting of a set A into a set S" mean that the set A is included in the set B. In addition, the terms "simplification of a set" A to obtain a set B ", the fact that the set A includes the set B.
En variante ou en complément, on comprendra que les étapes a) et b) , d'une part, et l'étape c) , d'autre part, peuvent être sensiblement inversées pour adapter ledit dictionnaire à une utilisation avec une dimension donnée N de vecteurs-codes.As a variant or in addition, it will be understood that steps a) and b), on the one hand, and step c), on the other hand, can be substantially reversed to adapt said dictionary to use with a given dimension N code vectors.
Dans ce cas :In that case :
- à l'étape c) , on construit, à partir d'un dictionnaire initial de résolution rn et de dimension N' , un premier dictionnaire, intermédiaire, toujours de dimension N" mais de résolution rN supérieure/inférieure, par imbrication/simplification de dictionnaires de résolutions croissantes/décroissantes, pour atteindre sensiblement la résolution rN dudit premier dictionnaire,- in step c), we build, from an initial dictionary of resolution r n and of dimension N ', a first dictionary, intermediate, always of dimension N "but of resolution r N higher / lower, by nesting / simplification of dictionaries of increasing / decreasing resolutions, to substantially reach the resolution r N of said first dictionary,
- à l'étape a), pour atteindre la dimension donnée N, on construit un premier ensemble constitué de vecteurs-codes formés en insérant/supprimant , dans des vecteurs-codes du premier dictionnaire de dimension N1 inférieure/supérieure à ladite dimension donnée N, des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d' insertion/suppression prédéterminées , et, à l'étape b) , suite à une étape éventuelle d'adaptation définitive à la résolution rN, on construit, pour ladite dimension donnée N, un second dictionnaire, définitif, comportant au moins ledit premier ensemble.- in step a), to reach the given dimension N, a first set of code vectors formed is constructed by inserting / deleting, in code vectors of the first dictionary of dimension N 1 less than / greater than said given dimension N, elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, and, in step b), following a possible step of final adaptation to the resolution r N , we built, for said given dimension N, a second dictionary, definitive, comprising at least said first set.
On peut mettre en œuvre l'étape a) par dimensions successives croissantes. Dans ce cas, pour une dimension donnée N : aO) on obtient un dictionnaire initial de dimension initiale n, inférieure à ladite dimension donnée N, al) on construit un premier ensemble constitué de vecteurs-codes de dimension n+i et formés en insérant dans des vecteurs-codes du dictionnaire initial des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion prédéterminées, a2) on prévoit un deuxième ensemble constitué de vecteurs- codes de dimension n+i et ne pouvant être obtenus par insertion dans les vecteurs-codes du dictionnaire initial des éléments dudit ensemble fini avec ledit jeu de règles d' insertion, a3) on construit un dictionnaire intermédiaire, de dimension n+i comportant une union dudit premier ensemble et dudit second ensemble, et on répète, au plus N-n-1 fois (auquel cas i=l) , les étapes al) à a3) , avec ledit dictionnaire intermédiaire en tant que dictionnaire initial, jusqu'à ladite dimension donnée N.Step a) can be implemented by successive increasing dimensions. In this case, for a given dimension N: aO) an initial dictionary of initial dimension n is obtained, smaller than said given dimension N, al) a first set is constructed consisting of code vectors of dimension n + i and formed by inserting in code vectors of the initial dictionary of elements taken from a finite set of real numbers according to a finite set of predetermined insertion rules, a2) a second set of code vectors of dimension n + i is provided which cannot be obtained by insertion in the code vectors of the initial dictionary of the elements of said finite set with said set of insertion rules, a3) an intermediate dictionary, of dimension n + i comprising a union of said first set and said second set, is constructed, and we repeat, at most Nn-1 times (in which case i = l), steps a1 to a3), with said intermediate dictionary as an initial dictionary, up to said given dimension N.
On peut aussi mettre en œuvre l'étape a) par dimensions successives décroissantes. Dans ce cas, pour une dimension donnée N : a'O) on obtient un dictionnaire initial de dimension initiale n, supérieure à ladite dimension donnée N, a'1) on construit un premier ensemble, de dimension n-i, par sélection et extraction de vecteurs-codes possibles de dimension n-i dans le dictionnaire de dimension n, selon un jeu fini de règles de suppression prédéterminées, a' 2) on prévoit un deuxième ensemble constitué de vecteurs-codes de dimension n-i, ne pouvant être obtenus simplement par suppression, dans les vecteurs-codes du dictionnaire initial, des éléments dudit ensemble fini avec ledit jeu de règles de suppression, a' 3) on construit un dictionnaire intermédiaire, de dimension n-i comportant une union dudit premier ensemble et dudit second ensemble, et on répète, au plus n-N-1 fois (auquel cas' i=l) , les étapes a'1) à a '3), avec ledit dictionnaire intermédiaire en tant que dictionnaire initial, jusqu'à ladite dimension donnée N.One can also implement step a) by successive decreasing dimensions. In this case, for a given dimension N: a'O) an initial dictionary of initial dimension n is obtained, greater than said given dimension N, a'1) a first set, of dimension ni, is constructed by selecting and extracting possible code vectors of dimension nor in the dictionary of dimension n, according to a finite set of predetermined suppression rules, a '2) a second set consisting of code vectors of dimension ni, which cannot be obtained simply by deleting, in the code vectors of the initial dictionary, elements of said finite set with said set of suppression rules, a '3) an intermediate dictionary is constructed , of dimension ni comprising a union of said first set and of said second set, and the steps a'1) to a '3) are repeated, at most nN-1 times (in which case ' i = l), with said intermediate dictionary as an initial dictionary, up to said given dimension N.
Pour obtenir une pluralité de N dictionnaires de dimensions successives 1 à N, on peut combiner les étapes al) à a3) et les étapes a'1) à a'3), préférentiellement à partir d'un dictionnaire initial de dimension n (n<N) et par la mise en œuvre répétée des étapes al) à a3) pour les dimensions n+1 à N, et par la mise en œuvre répétée des étapes a'1) à a'3) pour les dimensions n-1 à 1.To obtain a plurality of N dictionaries of successive dimensions 1 to N, it is possible to combine steps a1 to a3) and steps a'1) to a'3), preferably from an initial dictionary of dimension n (n <N) and by the repeated implementation of steps a1 to a3) for the dimensions n + 1 to N, and by the repeated implementation of steps a'1) to a'3) for the dimensions n-1 at 1.
On obtient ainsi tout ou partie de N dictionnaires dont le dictionnaire de plus grande dimension a pour dimension N.We thus obtain all or part of N dictionaries whose larger dictionary has dimension N.
L'ensemble fini et le jeu de règles d'insertion/suppression servant à la construction de dictionnaires de dimensions successives peuvent être définis : - a priori, avant de construire le dictionnaire, par analyse d'une source à quantifier, - ou a posteriori, après la construction de dictionnaires, préférentiellement par imbrication/simplification de dictionnaires de résolutions successives, cette construction étant alors suivie d'une analyse statistique de ces dictionnaires ainsi construits.The finished set and the set of insert / delete rules used to build dictionaries of successive dimensions can be defined: - a priori, before building the dictionary, by analysis of a source to be quantified, - or a posteriori, after the construction of dictionaries, preferably by nesting / simplification of dictionaries of successive resolutions, this construction then being followed by a statistical analysis of these dictionaries thus constructed.
On indique que la source à quantifier est préférentiellement odélisëe par une séquence d'apprentissage et la définition "a priori " de l'ensemble fini et du jeu de règles d* insertion/suppression est préférentiellement effectuée par une analyse statistique de la source. L'ensemble fini précité est préférentiellement choisi par estimation d'une densité de probabilité monodimensionnelle de la source à quantifier.It is indicated that the source to be quantified is preferably odelized by a learning sequence and the definition "a priori" of the finite set and of the set of insertion / deletion rules is preferably carried out by a statistical analysis of the source. The aforementioned finite set is preferably chosen by estimating a one-dimensional probability density of the source to be quantified.
En combinant des définitions a priori et a posteriori de l'ensemble fini et des règles d'insertion :By combining a priori and a posteriori definitions of the finite set and insertion rules:
- on peut avantageusement choisir, a priori, un premier ensemble et un premier jeu de règles d'insertion/suppression par analyse d'une séquence d'apprentissage, pour former un ou plusieurs dictionnaires intermédiaires ,one can advantageously choose, a priori, a first set and a first set of insertion / deletion rules by analysis of a learning sequence, to form one or more intermediate dictionaries,
- on met à jour au moins une partie dudit premier ensemble et/ou dudit premier jeu de règles d'insertion/suppression, par analyse a posteriori desdits un ou plusieurs dictionnaires intermédiaires,at least part of said first set and / or of said first set of insertion / deletion rules is updated, by a posteriori analysis of said one or more intermediate dictionaries,
- et, le cas échéant, on met à jour aussi au moins une partie de l'ensemble des vecteur-codes formant lesdits un ou plusieurs dictionnaires• intermédiaires .- And, if necessary, at least part of the set of vector codes forming said one is also updated or several intermediate dictionaries.
Préférentiellement, l'étape c) d'adaptation à une résolution donnée comporte les opérations suivantes, pour atteindre des résolutions croissantes : cO) on obtient un dictionnaire initial de résolution initiale ra, inférieure à ladite résolution donnée rN, cl) à partir du dictionnaire initial, on construit un dictionnaire intermédiaire de résolution ra+ι supérieure à la résolution initiale rn, c2) et on répète l'opération cl) jusqu'à atteindre la résolution donnée rN.Preferably, step c) of adaptation to a given resolution comprises the following operations, in order to reach increasing resolutions: cO) an initial dictionary of initial resolution r a , less than said given resolution r N , cl, is obtained from from the initial dictionary, an intermediate dictionary of resolution r a + ι greater than the initial resolution r n , c2) is constructed and the operation cl) is repeated until the given resolution r N is reached.
Avantageusement, pour chaque itération de l'opération cl), on prévoit une construction de classes et de centroïdes dans laquelle les centroïdes appartenant au moins aux dictionnaires de résolution supérieure à une résolution courante r± sont recalculés et mis à jour. En outre, les centroïdes qui appartiennent aux dictionnaires de résolution inférieure à une résolution courante r± ne sont mis à jour, de préférence, que si les distorsions totales de tous les dictionnaires de résolution inférieure sont décroissantes d'une mise à jour à l'autre.Advantageously, for each iteration of the operation cl), provision is made for a construction of classes and centroids in which the centroids belonging to at least the dictionaries of resolution higher than a current resolution r ± are recalculated and updated. Furthermore, the centroids which belong to the dictionaries of resolution lower than a current resolution r ± are updated, preferably, only if the total distortions of all the dictionaries of lower resolution are decreasing from one update to the other.
En complément ou en variante, l'étape c) comporte les opérations suivantes, maintenant pour atteindre des résolutions décroissantes : c'O) on obtient un dictionnaire initial de résolution initiale rn, supérieure à ladite résolution donnée rN, c'I) à partir du dictionnaire initial, on construit un dictionnaire intermédiaire de résolution rn_ι inférieure à la résolution initiale rn, par partition du dictionnaire initial en plusieurs sous-ensembles ordonnés selon un critère prédéterminé, et c'2) on répète l'opération c'I) jusqu'à atteindre la résolution donnée rH.In addition or as a variant, step c) comprises the following operations, now to reach decreasing resolutions: c'O) an initial dictionary of initial resolution r n is obtained, greater than said given resolution r N , c'I) from the initial dictionary, an intermediate dictionary of resolution r n _ι less than the initial resolution r n , by partitioning the initial dictionary into several subsets ordered according to a predetermined criterion, and c'2) the operation c'I) is repeated until the given resolution r H is reached.
Avantageusement, cette partition peut utiliser la composition partielle par extension contrôlée au sens des étapes a) et b) , en utilisant une partie au moins des règles d' insertion/suppression mises en œuvre.Advantageously, this partition can use the partial composition by controlled extension within the meaning of steps a) and b), using at least part of the insertion / deletion rules implemented.
Pour obtenir une pluralité de N dictionnaires successifs de résolutions respectives ri à ru, à partir d'un dictionnaire initial de résolution rn intermédiaire entre les résolutions ri et rN, on peut mettre avantageusement en œuvre une répétition de l'étape cl) pour les résolutions croissantes rn+ι à rH, et de l'étape c'I) pour les résolutions décroissantes rn_ι à ri.To obtain a plurality of N successive dictionaries of respective resolutions ri to ru, from an initial dictionary of resolution r n intermediate between the resolutions ri and r N , it is advantageous to implement a repetition of step cl) to the increasing resolutions r n + ι to r H , and from step c'I) for the decreasing resolutions r n _ι to ri.
On comprendra que l'ensemble fini et le jeu des règles d' insertion/suppression peuvent avantageusement être choisis par une étude, a posteriori, d'une statistique des dictionnaires de différentes résolutions et dimensions ainsi obtenus, pour former un dictionnaire au sens de l'invention, de dimensions et de résolutions souhaitées.It will be understood that the finite set and the set of insertion / deletion rules can advantageously be chosen by a study, a posteriori, of a statistics of the dictionaries of different resolutions and dimensions thus obtained, to form a dictionary in the sense of l invention, desired dimensions and resolutions.
Selon l'un des avantages procurés par la présente invention, le stockage en mémoire nécessaire pour la mise en œuvre du codage/décodage peut être considérablement réduit. En effet, de façon avantageuse, on stocke dans une mémoire, une fois pour toutes, ledit jeu de règles d'insertion/suppression, identifiées chacune par un indice, et, pour une dimension donnée : - ledit deuxième ensemble constitué de vecteurs-codes ne pouvant être obtenus par application des règles d'insertion/suppression aux vecteurs-codes de dimension inférieure/supérieure à la dimension donnée, - ainsi qu'au moins une table de correspondance permettant de reconstituer un vecteur-code quelconque du dictionnaire de dimension donnée, en utilisant les indices des règles d'insertion/suppression et des indices identifiant des éléments dudit second ensemble.According to one of the advantages provided by the present invention, the storage in memory necessary for the implementation of the coding / decoding can be considerably reduced. Indeed, advantageously, we store in a memory, once and for all, said set of rules of insertion / deletion, each identified by an index, and, for a given dimension: - said second set consisting of vector-codes which cannot be obtained by application of the rules of insertion / deletion to vector-codes of lower / higher dimension to the given dimension, - as well as at least one correspondence table making it possible to reconstruct any vector code of the dictionary of given dimension, using the indices of the insertion / deletion rules and indices identifying elements of said second set.
On évite ainsi le stockage complet du dictionnaire pour ladite dimension donnée, en stockant simplement les éléments dudit second ensemble et des liens dans la table de correspondance pour accéder à ces éléments et aux règles d' insertion/suppression associées.This avoids the complete storage of the dictionary for said given dimension, by simply storing the elements of said second set and links in the correspondence table to access these elements and the associated insertion / deletion rules.
Ainsi, on comprendra que, pour une dimension donnée, le deuxième ensemble précité peut être avantageusement constitué de "deuxièmes" sous-ensembles de dimensions inférieures à ladite dimension donnée.Thus, it will be understood that, for a given dimension, the aforementioned second set can advantageously consist of "second" sub-sets of dimensions smaller than said given dimension.
Dans une réalisation, le mécanisme d' insertion/suppression lui-même peut être stocké en tant que routine de programme, tandis que les paramètres d'insertion/suppression, pour une règle d' insertion/suppression donnée, peuvent être stockés dans une table de correspondance générale (en principe différente de la table de correspondance précitée) , en combinaison avec 1 ' indice de cette • règle d' insertion/suppression donnée .In one embodiment, the insert / delete mechanism itself can be stored as a program routine, while the insert / delete parameters, for a given insert / delete rule, can be stored in a table general correspondence (in principle different from the aforementioned correspondence table), in combination with the index of this rule of insertion / deletion given.
Préférentiellement, les tables de correspondances sont élaborées au préalable, pour chaque indice d'un vecteur- code d'un dictionnaire de dimension donnée pouvant être reconstruit à partir d'éléments d'indices courants dans le second ensemble de dimension courante, par une tabulation de trois valeurs scalaires entières représentant : - une dimension courante dudit second ensemble, - un indice courant d'élément du second ensemble, et - un indice de règle d' insertion/suppression, cette règle d'insertion/suppression au moins contribuant à reconstituer ledit vecteur-code du dictionnaire de dimension donnée, en appliquant 1 ' insertion/suppression à 1 ' élément correspondant audit indice courant et à ladite dimension courante.Preferably, the correspondence tables are developed beforehand, for each index of a vector-code of a dictionary of given dimension which can be reconstructed from elements of current indices in the second set of current dimension, by tabulation. of three integer scalar values representing: - a current dimension of said second set, - a current element index of the second set, and - an index of insertion / deletion rule, this insertion / deletion rule at least helping to reconstruct said code vector of the dictionary of given dimension, by applying the insertion / deletion to the element corresponding to said current index and to said current dimension.
Ces dernières caractéristiques peuvent avantageusement être mises en œuvre dans un procédé de codage/décodage en compression, comme décrit ci-après.These latter characteristics can advantageously be implemented in a compression coding / decoding method, as described below.
A ce titre, la présente invention vise aussi une utilisation du dictionnaire selon 1 ' invention et obtenu par la mise en œuvre des étapes ci-avant, pour le codage ou le décodage en compression de signaux numériques, par quantification vectorielle à débit variable définissant une résolution variable. En particulier, on recherche le vecteur-code le plus proche voisin d'un vecteur d'entrée y = (yo,...,yk/—. yj-i) dans un dictionnaire de dimension donnée j . Cette utilisation met alors en œuvre les étapes suivantes : *C01) pour un indice courant dudit vecteur-code recherché, reconstitution au moins partielle d'un vecteur-code d'indice correspondant audit indice courant, au moins par lecture préalable des indices figurant dans les tables de correspondance et, le cas échéant, d'un élément du deuxième ensemble, permettant d'élaborer ledit dictionnaire, le procédé se poursuivant par des étapes de codage/décodage proprement dites, comportant : *C02) au moins au codage, calcul d'une distance entre le vecteur d'entrée et le vecteur-code reconstitué à l'étape COI) , *C03) au moins au codage, répétition des étapes COI) et C02) , pour tous les indices courants dans ledit dictionnaire,As such, the present invention also relates to a use of the dictionary according to the invention and obtained by the implementation of the above steps, for coding or decoding in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution. In particular, one searches for the nearest code vector neighboring an input vector y = (yo, ..., yk / -. Yj-i) in a dictionary of given dimension j. This use then implements the following steps: * C01) for a current index of said sought vector code, at least partial reconstruction of an index vector code corresponding to said current index, at least by prior reading of the indices appearing in the correspondence tables and, where appropriate, of an element of the second set, making it possible to develop said dictionary, the method continuing with coding / decoding steps proper, comprising: * C02) at least during coding, calculation of a distance between the input vector and the vector-code reconstituted in step COI), * C03) at least during coding, repetition of steps COI) and C02), for all the current indices in said dictionary,
C04) au moins au codage, identification de l'indice du vecteur-code au moins partiellement reconstitué dont la distance avec le vecteur d'entrée, calculée au cours de l'une des itérations de l'étape C02) , est la plus petite, etC04) at least during coding, identification of the index of the at least partially reconstructed code vector whose distance from the input vector, calculated during one of the iterations of step C02), is the smallest , and
C05) au moins au décodage, détermination du plus proche voisin du vecteur d'entrée y en tant que vecteur-code dont l'indice a été identifié à l'étape C04) .C05) at least on decoding, determination of the nearest neighbor of the input vector y as a vector-code whose index was identified in step C04).
Comme indiqué ci-avant, on rappelle que le "deuxième" ensemble précité est préférentiellement constitué de " deuxièmes" sous-ensembles de dimensions inférieures à une dimension donnée du deuxième ensemble.As indicated above, it is recalled that the "second" above-mentioned assembly preferably consists of "second" sub-assemblies of dimensions smaller than a given dimension of the second assembly.
Dans un mode de réalisation particulier, l'étape COI), au moins au décodage, comporte : COU) la lecture, dans les tables de correspondance, d'indices représentatifs de liens vers ledit deuxième ensemble et vers les règles d'insertion et incluant : - l'indice d'une dimension courante d'un sous-ensemble dudit deuxième ensemble, l'indice courant d'un élément dudit sous-ensemble, - et l'indice de la règle d'insertion appropriée pour la construction du vecteur-code du dictionnaire de dimension donnée, à partir dudit élément,In a particular embodiment, the step COI), at least during decoding, comprises: COU) reading, in the correspondence tables, indices indicative of links to said second set and to the insertion rules and including: - the index of a current dimension of a subset of said second set, the current index of an element of said subset, - and the index of the insertion rule appropriate for the construction of the vector-code of the dictionary of given dimension, from said element,
C012) la lecture, dans ledit sous-ensemble identifié par sa dimension courante, dudit élément identifié par son indice courant,C012) the reading, in said subset identified by its current dimension, of said element identified by its current index,
C013) la reconstitution complète du vecteur-code à ladite dimension donnée en appliquant audit élément lu à l'étape C012) la règle d'insertion appropriée et identifiée par son indice lu à l'étape COU) .C013) the complete reconstruction of the vector-code at said given dimension by applying to said element read in step C012) the appropriate insertion rule and identified by its index read in step COU).
Dans un mode de réalisation particulier, au codage,In a particular embodiment, with coding,
* l'étape COI) comporte :* the COI stage) includes:
COU) la lecture, dans les tables de correspondance, d'indices représentatifs de liens vers ledit deuxième ensemble et vers les règles d'insertion et incluant : l'indice d'une dimension courante d'un sous-ensemble dudit deuxième ensemble, l'indice courant d'un élément, dudit sous-ensemble, et l'indice de la règle d'insertion appropriée pour la construction du vecteur-code du dictionnaire de dimension donnée, à partir dudit élément, C012) la lecture, dans le sous-ensemble identifié par sa dimension courante, dudit élément identifié par son indice courant , * à l'étape C02) , on calcule ladite distance en fonction d'un critère de distorsion estimé en fonction de : - de ladite règle d'insertion, - et dudit élément.COU) reading, in the correspondence tables, indices indicative of links to said second set and to the insertion rules and including: the index of a current dimension of a subset of said second set, l current index of an element, of said subset, and the index of the insertion rule appropriate for the construction of the vector-code of the dictionary of given dimension, from said element, C012) reading, in the sub -set identified by its current dimension, of said element identified by its current index, * in step C02), said distance is calculated according to a distortion criterion estimated as a function of: - of said insertion rule, - and of said element.
Ainsi, on peut ne prévoir qu'une reconstruction partielle du vecteur-code à ladite dimension donnée à l'étape COI), en réservant la reconstruction complète simplement au décodage .Thus, it is possible to provide only a partial reconstruction of the vector code with said dimension given in step COI), by reserving the complete reconstruction simply for decoding.
Dans un mode de réalisation avantageux, on prévoit en outre une propriété structurante supplémentaire selon une union de codes à permutation, et on exploite en outre une indexation de cette union de codes à permutation dans la mise en œuvre des étapes suivantes :In an advantageous embodiment, an additional structuring property is further provided according to a union of permutation codes, and an indexing of this union of permutation codes is further exploited in the implementation of the following steps:
CP1) à partir d'un signal d'entrée, on forme un vecteur d'entrée y = (y0, ..., y, »., Yj-i) défini par son vecteur absolu H = (|3'o|>'">|3;*|»'"> ;y-ι et Par un vecteur signe ε = (εQ,...,εk,...,ε ) avec εk ≈ ±l ,CP1) from an input signal, we form an input vector y = (y 0 , ..., y, "., Yj-i) defined by its absolute vector H = (| 3'o |>'"> | 3 ; * |»'">; y-ι and P ar a sign vector ε = (ε Q , ..., ε k , ..., ε) with ε k ≈ ± l,
CP2) on range les composantes du vecteur |y| par valeurs décroissantes, par permutation, pour obtenir un vecteur leader |3>| ,CP2) the components of the vector | y | by decreasing values, by permutation, to obtain a leading vector | 3> | ,
CP3) on détermine, parmi les vecteurs leaders du dictionnaire Djι de dimension j, un plus proche voisin xj' du vecteur leader ,CP3) we determine, among the leading vectors of the dictionary D j ι of dimension j, a nearest neighbor x j 'of the leading vector ,
CP4) on détermine un index du rang dudit plus proche voisin xj' dans le dictionnaire Djι,CP4) an index of the rank of said nearest neighbor x j 'is determined in the dictionary D j ι,
CP5) et l'on applique une valeur effective de codage/décodage au vecteur d'entrée, qui est fonction dudit index déterminé à l'étape CP4) , de la ladite permutation déterminée à l'étape CP2) et dudit vecteur signe déterminé à l'étape CP1) .CP5) and an effective encoding / decoding value is applied to the input vector, which is a function of said index determined in step CP4), of said permutation determined in step CP2) and of said sign vector determined in step CP1).
Selon un autre aspect avantageux de l'invention, pour le codage/décodage et éventuellement pour la construction du ou des dictionnaires, on prévoit de stocker les tables de correspondance et les éléments du deuxième ensemble précités, notamment dans une mémoire d'un dispositif de codage/décodage en compression.According to another advantageous aspect of the invention, for coding / decoding and possibly for the construction of the dictionary or dictionaries, provision is made for storing the correspondence tables and the elements of the aforementioned second set, in particular in a memory of a device for compression coding / decoding.
A ce titre, la présente invention vise aussi un tel dispositif de codage/décodage.As such, the present invention also relates to such a coding / decoding device.
La présente invention vise aussi un produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, ce programme comportant des instructions pour la mise en œuvre du procédé de construction de dictionnaires ci-avant.The present invention also relates to a computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal, or on a removable memory medium and intended to cooperate with a reader. of the processing unit, this program comprising instructions for the implementation of the above dictionary construction method.
La présente invention peut aussi viser un programme de ce type, en particulier un produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile intégrant un dispositif de codage/décodage, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, ce programme comportant alors des instructions pour la mise en œuvre de l'application au codage/décodage en compression ci-avant. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci- après, et des dessins annexés sur lesquels, outre les figures la et lb décrites ci-avant : - la figure 2a illustre la propriété d'imbrication d'un dictionnaire au sens de l'invention, pour une dimension donnée N,The present invention can also target a program of this type, in particular a computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal integrating a coding device. / decoding, or on a removable memory medium and intended to cooperate with a reader of the processing unit, this program then comprising instructions for the implementation of the application for coding / decoding in compression above. Other characteristics and advantages of the invention will appear on examining the detailed description below, and the appended drawings in which, in addition to FIGS. 1a and 1b described above: FIG. 2a illustrates the property of nesting of a dictionary within the meaning of the invention, for a given dimension N,
- la figure 2b illustre la propriété de composition partielle par extension contrôlée d'un dictionnaire au sens de l'invention, la figure 3 illustre l'imbrication des dictionnaires en fonction des résolutions croissantes, la figure 4 illustre la composition de vecteurs-codes d'un dictionnaire à partir de vecteurs-codes de dictionnaires de dimensions inférieures et de règles d' insertion, la figure 5 illustre la construction selon les résolutions croissantes de dictionnaires imbriqués sans remise à jour des dictionnaires de résolution inférieure, la figure 6 illustre le schéma bloc du codeur " TDAC" ,FIG. 2b illustrates the property of partial composition by controlled extension of a dictionary within the meaning of the invention, FIG. 3 illustrates the nesting of the dictionaries as a function of increasing resolutions, FIG. 4 illustrates the composition of vector-codes d a dictionary from code vectors of smaller dictionaries and insertion rules, FIG. 5 illustrates the construction according to increasing resolutions of nested dictionaries without updating the dictionaries of lower resolution, FIG. 6 illustrates the diagram "TDAC" encoder block,
- les figures 7a à 7g représentent, pour le codeur TDAC en bande élargie utilisant un quantificateur vectoriel au sens de l'invention, des tableaux illustrant respectivement :FIGS. 7a to 7g represent, for the wide band TDAC coder using a vector quantizer within the meaning of the invention, tables illustrating respectively:
* une découpe en 32 bandes (fig.7a),* a cut into 32 strips (fig. 7a),
* les résolutions par dimension (fig.7b),* the resolutions by dimension (fig.7b),
* le gain en mémoire apporté par la propriété d'imbrication (fig.7c),* the gain in memory provided by the nesting property (fig.7c),
* le gain en mémoire apporté par les deux propriétés d'imbrication et d'extension contrôlée (fig.7d), * le gain en mémoire apporté par les deux propriétés structurantes en fonction de la dimension et du débit, respectivement, par rapport à la taille mémoire nécessaire au stockage d'un dictionnaire sans utiliser ces deux propriétés (fig.7e), * les premiers leaders de l'ensemble L° en dimensions 1, 2 et 3 (fig.7f) , et * les leaders des codes en permutation des dictionnaires en dimension 3 (fig.7g), - les figures 8a et 8b représentent, pour le codeur TDAC en bande FM, des tableaux illustrant respectivement : * une découpe en 52 bandes (fig.δa), et * les résolutions par dimension (fig.8b).* the memory gain provided by the two properties nesting and controlled extension (fig. 7d), * the gain in memory provided by the two structuring properties as a function of the size and the bit rate, respectively, compared to the memory size necessary for storing a dictionary without use these two properties (fig.7e), * the first leaders of the L ° set in dimensions 1, 2 and 3 (fig.7f), and * the leaders of the permutation codes of dictionaries in dimension 3 (fig.7g ), - Figures 8a and 8b show, for the TDAC coder in FM band, tables illustrating respectively: * a cut into 52 bands (fig.δa), and * the resolutions by dimension (fig.8b).
On se réfère tout d'abord aux figures 2a et 2b qui illustrent les deux propriétés principales d'un dictionnaire DiN au sens de la présente invention.First of all, reference is made to FIGS. 2a and 2b which illustrate the two main properties of a dictionary Di N within the meaning of the present invention.
Sur la figure 2a, pour une dimension donnée N, des dictionnaires DιN, D2 N, ..., DN de résolutions respectives croissantes rl7 r2, ..., r^ sont imbriqués les uns dans les autres. Ainsi, le dictionnaire DiN de résolution maximale ri peut permettre de déterminer un dictionnaire DjN de résolution rj inférieure (j<i) , comme on le verra plus loin. Cette première propriété,, notée PR, est nommée ci- après "propriété d' imbrication" .In FIG. 2a, for a given dimension N, dictionaries Dι N , D 2 N , ..., D N of respective increasing resolutions r l7 r 2 , ..., r ^ are nested one inside the other. Thus, the dictionary Di N of maximum resolution ri can make it possible to determine a dictionary Dj N of resolution rj lower (j <i), as will be seen below. This first property, denoted PR, is hereinafter called "nesting property".
En se référant maintenant à la figure 2b, tout dictionnaire DiN d'une dimension donnée N et de résolution ri est l'union de deux ensembles disjoints : o un premier ensemble D' N étant constitué de vecteurs-codes YN construits (flèche F3) en insérant dans des vecteurs-codes Y11"1 des dictionnaires Di*1"1 de dimension inférieure N-l des éléments Xj pris (flèche F2) dans un ensemble fini A de nombres réels selon un jeu fini de règles d'insertion {Rm}/ une règle d'insertion R'(j,k) déterminant les éléments j à insérer (flèche FI) et la façon de les insérer (par exemple à une position k du vecteur YN en construction) , o et un deuxième ensemble ' étant constitué de vecteurs Y' ne pouvant être obtenus en insérant dans des vecteurs-codes de dimension inférieure des éléments de cet ensemble fini selon le jeu de règles d'insertion précité.Referring now to FIG. 2b, any dictionary Di N of a given dimension N and of resolution ri is the union of two disjoint sets: o a first set D ' N consisting of Y N code vectors constructed (arrow F3) by inserting into code vectors Y 11 "1 dictionaries Di * 1" 1 of smaller dimension Nl of the elements Xj taken (arrow F2) in a finite set A of real numbers according to a finite set of insertion rules {R m } / an insertion rule R '(j, k) determining the elements j to be inserted (arrow FI) and the way of inserting them (for example at a position k of the vector Y N under construction), o and a second set 'consisting of vectors Y' which cannot be obtained by inserting into vectors of lower dimension elements of this finite set according to the game of the aforementioned insertion rules.
Cette deuxième propriété, notée PD, est nommée ci-après "propriété de composition partielle par extension contrôlée" .This second property, denoted PD, is hereinafter called "partial composition property by controlled extension".
Sur les figures 2a et 2b et dans le résumé de l'invention ci-avant, les indices en résolution et/ou en dimension commencent, à titre d'exemple, de l'entier 1 jusqu'à un entier donné (i, n, ou N selon le cas) . L'homme du métier de la programmation, notamment en langage C++, comprendra que ces indices peuvent partir plutôt de 0 et atteindre i-1, n-l, ou N-l, selon le contexte. C'est ainsi que sur l'exemple de la figure 3 qui sera décrit plus loin, la plus grande résolution atteinte est Nj-1 en partant de 0.In FIGS. 2a and 2b and in the summary of the invention above, the indices in resolution and / or in dimension begin, by way of example, from the integer 1 to a given integer (i, n , or N as appropriate). Those skilled in the art of programming, in particular in C ++ language, will understand that these indices may rather start from 0 and reach i-1, n-l, or N-l, depending on the context. Thus in the example of FIG. 3 which will be described later, the greatest resolution reached is Nj-1 starting from 0.
On décrit ci-après un procédé de construction d'un dictionnaire possédant les deux propriétés structurantes PR et PD, en particulier des algorithmes de construction de ces dictionnaires ainsi structurés. Les liens induits par les deux propriétés structurantes sont avantageusement exploités pour développer des algorithmes de construction de tels dictionnaires en adaptant les algorithmes itératifs de construction couramment utilisés et décrits ci-avant tels que le "GLA" ou le "SKA".A method of constructing a dictionary having the two structuring properties PR and PD, in particular algorithms for constructing these dictionaries thus structured. The links induced by the two structuring properties are advantageously used to develop algorithms for building such dictionaries by adapting the iterative construction algorithms commonly used and described above such as "GLA" or "SKA".
De façon générale, on indique que : - des dictionnaires de résolutions différentes et de même dimension, liés entre eux, sont construits successivement en utilisant la propriété d' imbrication PR,In general, it is indicated that: - dictionaries of different resolutions and of the same dimension, linked together, are constructed successively using the nesting property PR,
- en complément ou en variante, on construit des dictionnaires de dimensions différentes liés entre eux par la propriété PD de composition partielle par extension contrôlée,- as a complement or as a variant, dictionaries of different dimensions are linked, linked by the PD property of partial composition by controlled extension,
- et on obtient ainsi des dictionnaires de différentes dimensions et résolutions possédant les deux propriétés structurantes PD et PR.- And one thus obtains dictionaries of different dimensions and resolutions having the two structuring properties PD and PR.
De façon générale, pour construire des dictionnaires imbriqués en résolution croissante pour une dimension donnée (PR) , trois approches de construction sont proposées .Generally, to build nested dictionaries in increasing resolution for a given dimension (PR), three construction approaches are proposed.
Une première approche consiste à construire les dictionnaires selon les résolutions croissantes (de la plus petite résolution jusqu'à la résolution maximale). Une deuxième approche consiste inversement à construire les dictionnaires selon les résolutions décroissantes (de la résolution maximale jusqu'à la plus petite résolution) .A first approach consists in building the dictionaries according to the increasing resolutions (from the smallest resolution to the maximum resolution). A second approach conversely consists in building the dictionaries according to decreasing resolutions (from the maximum resolution to the lowest resolution).
Une troisième approche consiste à construire les dictionnaires à partir d'un dictionnaire de résolution intermédiaire en faisant décroître les résolutions jusqu'à la résolution minimale et en les faisant augmenter jusqu'à la résolution maximale. Cette méthode est particulièrement intéressante lorsque la résolution nominale du quantificateur vectoriel de résolution variable est la résolution intermédiaire précitée.A third approach consists in building the dictionaries from an intermediate resolution dictionary by decreasing the resolutions to the minimum resolution and by increasing them to the maximum resolution. This method is particularly advantageous when the nominal resolution of the vector quantizer of variable resolution is the aforementioned intermediate resolution.
La propriété PR d'imbrication des dictionnaires, pour une dimension j se traduit finalement par :The property PR of nesting of dictionaries, for a dimension j ultimately results in:
DJ aD{ D DD J aD { DD
En notant :Noting:
- j le nombre de résolutions (ou de débits possibles dans un codeur à débit variable) en dimension j , l'ensemble des résolutions en dimension j avec r/ < r < • • • < r < r+l < • • • < r^ _- j the number of resolutions (or possible bit rates in a variable bit rate encoder) in dimension j, all the resolutions in dimension j with r / <r <• • • <r <r + l <• • • <r ^ _
Df le dictionnaire de dimension j , de résolution rDf the dictionary of dimension j, of resolution r
T la taille du dictionnaire de résolutionT the size of the resolution dictionary
T = 2jr'J i.e. r = -log27V La figure 3 illustre l'imbrication des dictionnaires en fonction des résolutions croissantes .T = 2 jr ' J ie r = -log 2 7V Figure 3 illustrates the nesting of dictionaries based on increasing resolutions.
L'organigramme de l'algorithme de construction selon les résolutions croissantes sans remise à jour des dictionnaires de résolution inférieure est donné à la figure 5.The flowchart of the construction algorithm according to increasing resolutions without updating the dictionaries of lower resolution is given in FIG. 5.
En se référant à la figure 5, on construit d'abord le dictionnaire Do: de plus faible résolution, suite aux étapes d'initialisation 51 et 52 où l'on fixe d'abord i≈O et l'indice d'itération de boucle iter≈O. Puis le dictionnaire D0 j de plus faible résolution étant fixé, le dictionnaire de résolution immédiatement supérieure Dι j est construit à l'aide d'une variante d'un algorithme classique de construction, décrit ci-après. Le procédé est ensuite itéré jusqu'à construire le dictionnaire de résolution maximale DN J _ .Referring to Figure 5, we first build the dictionary Do : of lower resolution, following the initialization steps 51 and 52 where we first set i≈O and the iteration index of iter≈O loop. Then the dictionary D 0 j of lower resolution being fixed, the dictionary of immediately higher resolution D ι j is constructed using a variant of a conventional construction algorithm, described below. The method is then iterated until the dictionary of maximum resolution D N J _ is constructed.
Ainsi, à l'étape 53 où, par un processus itératif, on cherche à construire un dictionnaire Dιj à partir d'un dictionnaire initial D^tO), formé en ajoutant (Tij- Ti_ιj) vecteurs au dictionnaire Di_ιj de résolution inférieure rι-ι.Thus, in step 53 where, by an iterative process, we seek to construct a dictionary Dι j from an initial dictionary D ^ tO), formed by adding (Ti j - Ti_ι j ) vectors to the dictionary Di_ι j of lower resolution rι-ι.
L'algorithme de construction des classes 54 est identique à un algorithme classique mais l'algorithme de construction des T centroïdes 55 est modifié. En effet, les (T^-Ti-^) centroïdes n'appartenant pas aux dictionnaires de résolution inférieure sont recalculés et mis à jour, tandis que les (Ti-ιj) centroïdes des dictionnaires de résolution inférieure ne sont pas remis à jour. Une variante autorise la remise à jour des centroïdes des dictionnaires des résolutions inférieures dans le cas où les distorsions totales de tous les dictionnaires de résolution inférieure décroissent ou restent constantes. Dans ce cas, les dictionnaires de résolutions inférieures sont modifiés en conséquence.The algorithm for constructing classes 54 is identical to a conventional algorithm, but the algorithm for constructing T centroids 55 is modified. Indeed, the (T ^ -Ti- ^) centroids not belonging to the lower resolution dictionaries are recalculated and updated, while the (Ti-ι j ) centroids of the lower resolution dictionaries are not updated. A variant authorizes the updating of the centroids of the dictionaries of lower resolutions in the case where the total distortions of all the dictionaries of lower resolution decrease or remain constant. In this case, the dictionaries of lower resolutions are modified accordingly.
L'indice de boucle iter est ensuite incrémenté (étape 56) jusqu'à un nombre Niter(i,j) dépendant de la iême résolution et de la dimension j (test 57) . Une fois que la résolution souhaitée Nj est atteinte (test 58) , on obtient le dictionnaire à cette résolution Nj (étape de fin 59) , et donc l'ensemble des dictionnaires Dp de résolution r, pour i allant de 1 à j .The iter loop index is then incremented (step 56) up to a Niter number (i, j) depending on the i th same resolution and on the dimension j (test 57). Once the desired resolution Nj is reached (test 58), the dictionary is obtained at this resolution Nj (end step 59), and therefore all the dictionaries Dp of resolution r, for i ranging from 1 to j.
Pour construire les dictionnaires selon les résolutions décroissantes, on construit d'abord le dictionnaire de plus haute résolution. Puis celui-ci étant fixé, on effectue une partition de celui-ci en plusieurs sous- ensembles qu'on ordonne selon un certain critère. Plusieurs critères peuvent servir à ordonner la partition. On peut par exemple ordonner les sous-ensembles selon leur cardinal, leur sollicitation dans la séquence d'apprentissage (c'est-à-dire le cardinal de leurs régions de quantification) , leur contribution à la distorsion totale ou plus précisément à la décroissance de cette distorsion. On peut évidemment combiner divers critères et pondérer leur importance respective. De même, la partition du dictionnaire peut être effectuée de diverses manières: de la partition élémentaire (un élément dans chaque sous- ensemble) à une partition plus élaborée. Cette partition ordonnée est à la base de la construction des dictionnaires imbriqués par union progressive de ses classes ordonnées .To build the dictionaries according to decreasing resolutions, we first build the higher resolution dictionary. Then this one being fixed, one carries out a partition of this one in several subsets which one orders according to a certain criterion. Several criteria can be used to order the partition. We can for example order the subsets according to their cardinality, their solicitation in the learning sequence (i.e. the cardinality of their quantization regions), their contribution to the total distortion or more precisely to the decay of this distortion. One can obviously combine various criteria and weigh their respective importance. Likewise, partitioning the dictionary can be performed in various ways: from the elementary partition (one element in each subset) to a more elaborate partition. This ordered partition is at the base of the construction of the nested dictionaries by progressive union of its ordered classes.
Préférentiellement, la partition peut s'appuyer sur la propriété PD de composition partielle par extension contrôlée en regroupant les éléments basés sur l'extension d'un même vecteur-code à partir d'un sous-ensemble du jeu de règles d'insertion (éventuellement égal cet ensemble lui-même) .Preferably, the partition can be based on the PD property of partial composition by controlled extension by grouping elements based on the extension of the same vector-code from a subset of the set of insertion rules ( possibly equal this set itself).
Il faut noter que l'on peut faire plusieurs itérations en alternant les différentes méthodes. Par exemple, on construit des dictionnaires imbriqués selon la méthode par résolutions croissantes puis on applique la méthode par résolutions décroissantes. En combinant les deux procédés ci-avant, des dictionnaires imbriqués en résolution sont construits à partir d'un dictionnaire de résolution intermédiaire n- Cet ieme dictionnaire est donc d'abord construit. Puis, à partir de ce dictionnaire, on construit les dictionnaires de résolution inférieure à l'aide du second procédé par résolutions décroissantes et les dictionnaires de résolutions supérieures à l'aide du premier procédé par résolutions croissantes.It should be noted that one can do several iterations by alternating the different methods. For example, we build nested dictionaries according to the method by increasing resolutions then we apply the method by decreasing resolutions. By combining the two above methods, nested dictionaries in resolution are constructed from an intermediate resolution dictionary n- This i th dictionary is therefore first constructed. Then, from this dictionary, the dictionaries of lower resolution are constructed using the second method using decreasing resolutions and the dictionaries of higher resolutions using the first method using increasing resolutions.
De manière générale, on propose aussi trois approches pour construire des dictionnaires de différentes dimensions par composition partielle par extension contrôlée (propriété PD) . Une première approche consiste à augmenter les dimensions. Une autre approche consiste à les diminuer. Enfin, une dernière approche consiste à commencer par construire le dictionnaire d'une dimension intermédiaire et construire par augmentation et diminution successives de la dimension les dictionnaires de dimensions supérieures et inférieures. La composition partielle par extension contrôlée a conduit à mettre au point des procédures de détermination de l'ensemble fini de réels et du jeu de règles d'insertion que l'on verra ci-après. On indique simplement ici que, préférentiellement, la proportion d'éléments "étendus" (nombre d'éléments du premier ensemble par rapport au cardinal du dictionnaire) est croissante avec la dimension, ce qui permet de réduire le coût de stockage du deuxième ensemble, augmentant avec la dimension. Cette proportion peut être fixée a priori par les contraintes de complexité de l'application (mémoire/puissance de calcul) ou laissée "libre" . Dans ce dernier cas, l'algorithme de construction favorise avantageusement les éléments du premier ensemble comprenant les éléments obtenus par extension contrôlée, comme on le verra ci-après.In general, we also propose three approaches to build dictionaries of different dimensions by partial composition by controlled extension (PD property). A first approach is to increase the dimensions. Another approach is to decrease them. Finally, a last approach consists in starting by building the dictionary of an intermediate dimension and building by successive increase and decrease of the dimension the dictionaries of higher and lower dimensions. The partial composition by controlled extension has led to the development of procedures for determining the finite set of reals and the set of insertion rules that will be seen below. It is simply indicated here that, preferably, the proportion of “extended” elements (number of elements of the first set relative to the cardinal of the dictionary) increases with dimension, which makes it possible to reduce the cost of storage of the second set, increasing with dimension. This proportion can be fixed a priori by the constraints of complexity of the application (memory / computing power) or left "free". In the latter case, the construction algorithm advantageously favors the elements of the first set comprising the elements obtained by controlled extension, as will be seen below.
Ainsi, la deuxième propriété PD de composition partielle par extension contrôlée se traduit finalement par : en notant :Thus, the second PD property of partial composition by controlled extension ultimately results in: noting:
- -D'/ l'ensemble des vecteurs-codes de £>/ qui peuvent être obtenus en insérant dans des vecteurs-codes des dictionnaires des dimensions inférieures des éléments pris d'un ensemble fini A de R selon un jeu de règles- -D '/ the set of code vectors of £> / which can be obtained by inserting into code vectors dictionaries of the lower dimensions of the elements taken from a finite set A of R according to a set of rules
d'insertion {Rm}/insertion {R m } /
- D' son complémentaire dans D , ensemble des vecteurs-- Of its complement in D, set of vectors -
codes de Df ne pouvant être obtenus en insérant dans des vecteurs-codes de dimension inférieure des éléments de A selon le jeu de règles d'insertion {Rm} .codes of Df which cannot be obtained by inserting into vectors of code of lower dimension elements of A according to the set of insertion rules {R m }.
On décrit ci-après un exemple de règles d'insertion pour vérifier la seconde propriété PD.An example of insertion rules for verifying the second PD property is described below.
Tout d'abord, on définit un jeu de règles élémentaires d'insertion : chaque règle élémentaire consiste à insérer un et un seul élément de l'ensemble fini de réels A comme composante à une position donnée d'un vecteur. Chaque règle élémentaire est donnée par un couple de deux entiers positifs, l'un donnant le rang de l'élément dans l'ensemble fini et l'autre la position d'insertion. A partir de ce jeu de règles élémentaires, on peut composer une règle quelconque, plus élaborée, d'insertion de composantes .First, we define a set of elementary insertion rules: each elementary rule consists of inserting one and only one element from the finite set of real numbers A as a component at a given position of a vector. Each elementary rule is given by a couple of two positive integers, one giving the rank of the element in the finished set and the other the insertion position. From this set of elementary rules, we can compose any rule, more elaborate, of insertion of components.
Bien entendu, de façon purement réversible, on peut définir des règles de suppression consistant à supprimer un ou plusieurs éléments d'un ensemble fini de dimension donnée N pour atteindre une dimension inférieure N-n.Of course, in a purely reversible manner, it is possible to define suppression rules consisting in removing one or more elements from a finite set of given dimension N to reach a lower dimension N-n.
Pour définir une règle d'insertion, on note alors :To define an insertion rule, we then note:
- Na le cardinal de A et ai son ieme élément : A = {ao, ai,..., a..., ana-i} - R' (im,pm) la règle d'insertion élémentaire qui consiste à insérer ai en position pm.- N has the cardinal of A and have its i th element: A = {a o , ai, ..., a ..., ana-i} - R '(i m , p m ) the elementary insertion rule which consists in inserting ai in position p m .
Ainsi, si la dimension maximale est jmaχ, le nombre de règles élémentaires possibles est Na*jmax. Par exemple, pour Na=2 et jmax=3 , on compte en tout six règles élémentaires possibles: R' (0,0) : insérer a0 en position 0, R' (1,0) : insérer ai en position 0, R' (0,1) : insérer a0 en position 1, R' (1,1) : insérer ax en position 1, R' (0,2) : insérer a0 en position 2, R' (1,2) : insérer ax en position 2Thus, if the maximum dimension is j ma χ, the number of possible elementary rules is N a * j max . For example, for N a = 2 and jmax = 3, there are altogether six possible elementary rules: R '(0,0): insert a 0 in position 0, R' (1,0): insert ai in position 0 , R '(0,1): insert a 0 in position 1, R' (1,1): insert a x in position 1, R '(0,2): insert a 0 in position 2, R' (1 , 2): insert a x in position 2
La composée des règles R' (0,0) et R' (0,1) donne la règle : insérer a0 en positions 0 et 1. Elle permet d'obtenir ainsi un vecteur-code de dimension j+2 à partir d'un vecteur-code de dimension j .The composition of the rules R '(0,0) and R' (0,1) gives the rule: insert a 0 in positions 0 and 1. It thus allows to obtain a vector-code of dimension j + 2 from d 'a code vector of dimension j.
La composée des règles R' (1,0) et R' (0,2) donne la règle : insérer ax en position 0 et a0 en position 2. Elle permet aussi d'obtenir un vecteur-code de dimension j+2 à partir d'un vecteur-code de dimension j.The composition of the rules R '(1,0) and R' (0,2) gives the rule: insert a x in position 0 and a 0 in position 2. It also makes it possible to obtain a vector-code of dimension j + 2 from a vector code of dimension j.
Plus généralement, on note R(n, {(im , pm )}m = 0,n = l) la composée des n règles élémentaires R' (im,pm) (de m=0 à n-l) , qui permet d'obtenir un vecteur-code de dimension j+n à partir d'un vecteur-code de dimension j. Il faut noter que les ira ne sont pas nécessairement différents, par contre les n positions pm sont distinctes. Préférentiellement, on agence les positions pm en ordre croissant, soit : p0<pι...<pm...<pn_ι.More generally, we denote R (n, {(i m , p m )} m = 0, n = l) the composition of the n elementary rules R '(i m , p m ) (from m = 0 to nl), which makes it possible to obtain a code vector of dimension j + n from a code vector of dimension j. It should be noted that the i ra are not necessarily different, on the other hand the n positions p m are distinct. Preferably, we arranges the positions p m in ascending order, that is: p 0 <pι ... <p m ... <p n _ι.
La figure 4 illustre la composition de vecteurs-codes d'un dictionnaire à partir de vecteurs-codes de dictionnaires de dimensions inférieures et de règles d'insertion.FIG. 4 illustrates the composition of code vectors of a dictionary from code vectors of dictionaries of smaller dimensions and of insertion rules.
On prévoit aussi plusieurs modes de réalisation pour construire des dictionnaires de différentes dimensions, unions de deux ensembles disjoints, un premier ensemble étant constitué de vecteurs-codes construits en insérant à des vecteurs-codes des dictionnaires des dimensions inférieures des éléments pris d'un ensemble fini de nombres réels selon un jeu de règles d'insertion, un deuxième ensemble étant constitué de vecteurs ne pouvant être obtenus en insérant aux vecteurs-codes de dimension inférieure des éléments de cet ensemble fini de nombres réels selon ce jeu de règles d'insertion.Several embodiments are also provided for constructing dictionaries of different dimensions, unions of two disjoint sets, a first set consisting of code vectors constructed by inserting dictionaries of smaller dimensions of the elements taken from a set into code vectors finite of real numbers according to a set of insertion rules, a second set consisting of vectors which cannot be obtained by inserting into the lower-dimensional code vectors elements of this finite set of real numbers according to this set of insertion rules .
Le premier ensemble nécessite la détermination de l'ensemble fini de réels (c'est-à-dire son cardinal et ses valeurs) ainsi que du jeu de règles d'insertion.The first set requires the determination of the finite set of reals (i.e. its cardinality and its values) as well as the set of insertion rules.
La construction de cet ensemble fini et l'élaboration du jeu de règles d'insertion sont effectuées : soit "a priori" : l'ensemble fini et le jeu de règles d'insertion sont déterminés avant de construire les dictionnaires. Ce choix s'appuie préférentiellement sur une analyse des statistiques de la source à quantifier, modélisée par exemple par une séquence d'apprentissage. Par exemple, le choix de l'ensemble fini peut s'appuyer sur la densité de probabilité monodimensionnelle de la source (ou son histogramme) ;The construction of this finite set and the elaboration of the set of insertion rules are carried out: either "a priori": the finite set and the set of insertion rules are determined before building the dictionaries. This choice is preferably based on an analysis of the statistics of the source to be quantified, modeled for example by a learning sequence. For example, the choice of the finite set can be based on the one-dimensional probability density of the source (or its histogram);
- soit "a posteriori" : on construit d'abord les dictionnaires imbriqués en résolution pour toutes les dimensions sans imposer de suivre la règle de composition partielle par extension contrôlée. Le choix de l'ensemble fini et du jeu des règles d'insertion est ensuite effectué par une étude de la statistique de ces dictionnaires "ini tiaux" .- or "a posteriori": we first build the nested dictionaries in resolution for all dimensions without imposing to follow the rule of partial composition by controlled extension. The choice of the finite set and the set of insertion rules is then carried out by a study of the statistics of these "initial" dictionaries.
Les deux solutions "a priori " ou "a posteriori " peuvent être utilisées successivement et/ou combinées . Par exemple, un premier ensemble et un premier jeu de règles d' insertion peuvent être choisis par une analyse de la séquence d'apprentissage, puis après une première construction des dictionnaires, une analyse de ces dictionnaires peut conduire à une mise à jour totale ou partielle de l'ensemble A et/ou du jeu de règles d' insertion.The two solutions "a priori" or "a posteriori" can be used successively and / or combined. For example, a first set and a first set of insertion rules can be chosen by an analysis of the learning sequence, then after a first construction of the dictionaries, an analysis of these dictionaries can lead to a total update or partial of set A and / or the set of insertion rules.
Il faut aussi noter que l'ensemble fini et/ou le jeu de règles d'insertion peuvent être dépendants ou non des dimensions. On peut alors déterminer un jeu et/ou un ensemble spécifique pour chaque couple de dimensions (j,j'), ou un jeu et/ou un ensemble spécifique par différence de dimension, ou déterminer un ensemble global. Là encore, le choix est fait a priori ou après analyse statistique de la séquence d'apprentissage et/ou des dictionnaires.It should also be noted that the finished set and / or the set of insertion rules may or may not be dependent on the dimensions. We can then determine a specific set and / or set for each pair of dimensions (j, j '), or a specific set and / or set by size difference, or determine a global set. Again, the choice is made a priori or after statistical analysis of the learning sequence and / or dictionaries.
Pour construire les dictionnaires selon les dimensions croissantes, on construit d'abord le dictionnaire de plus faible dimension par une méthode classique de conception de quantification vectorielle, comme indiqué ci-avant. Puis, ce dictionnaire étant construit, le dictionnaire de dimension immédiatement supérieure est construit à l'aide d'une variante d'un algorithme classique de construction. A partir du dictionnaire de dimension inférieure, on compose tous les vecteurs-codes initiaux possibles en appliquant les règles d'insertion, on complète éventuellement ce dictionnaire par des vecteurs-codes "libres" (c'est-à-dire ceux qui ne peuvent pas être obtenus par extension) . Il faut noter que la taille de ce dictionnaire initial peut être supérieure à la taille désirée. A partir du dictionnaire initial, une variante d'un algorithme itératif de construction d'un quantificateur vectoriel est alors appliquée. On construit des classes par quantification de la séquence d'apprentissage et l'on met à jour des centroïdes en respectant la contrainte d'extension contrôlée pour les vecteurs-codes du premier ensemble. Pour ces vecteurs- codes du premier ensemble, on peut soit ne pas recalculer les composantes obtenues par insertion, soit recalculer toutes les composantes et modifier les vecteurs-codes ainsi obtenus pour faire réapparaître les composantes obtenues par les règles d'insertion. On élimine aussi les classes vides si la taille du dictionnaire est supérieure à la taille voulue. Si à la fin de l'algorithme, la taille du dictionnaire est supérieure à la résolution voulue, une procédure de classement des éléments du dictionnaire est appliquée pour ne retenir que les premiers vecteurs-codes. L'algorithme itératif est éventuellement relancé. On passe ensuite à la construction du dictionnaire de la dimension supérieure, le dictionnaire initial est alors construit par extension contrôlée à partir des deux dictionnaires des deux plus petites dimensions et complété par des vecteurs-codes "libres" , puis on applique la variante de l'algorithme itératif de construction d'un quantificateur vectoriel. Le procédé est ensuite itéré, jusqu'à construire le dictionnaire de dimension maximale.To build the dictionaries according to the increasing dimensions, one builds first the dictionary of weakest dimension by a classical method of design of vector quantization, as indicated above. Then, this dictionary being constructed, the dictionary of immediately superior dimension is constructed using a variant of a conventional construction algorithm. From the dictionary of lower dimension, one composes all the initial vector-codes possible by applying the rules of insertion, one possibly supplements this dictionary by vector-codes "free" (ie those which cannot not be obtained by extension). Note that the size of this initial dictionary can be larger than the desired size. From the initial dictionary, a variant of an iterative algorithm for constructing a vector quantizer is then applied. Classes are constructed by quantification of the learning sequence and centroids are updated while respecting the controlled extension constraint for the vector codes of the first set. For these vector-codes of the first set, one can either not recalculate the components obtained by insertion, or recalculate all the components and modify the vector-codes thus obtained to make reappear the components obtained by the rules of insertion. We also eliminate empty classes if the dictionary size is larger than the desired size. If at the end of the algorithm, the size of the dictionary is greater than the desired resolution, a Dictionary element classification procedure is applied to retain only the first code vectors. The iterative algorithm is possibly restarted. We then proceed to the construction of the dictionary of the higher dimension, the initial dictionary is then constructed by controlled extension from the two dictionaries of the two smallest dimensions and completed by "free" vector-codes, then we apply the variant of l iterative algorithm for constructing a vector quantizer. The process is then iterated, until building the dictionary of maximum dimension.
En variante, pour construire les dictionnaires selon les dimensions décroissantes, on construit d'abord le dictionnaire de plus grande dimension. Puis, celui-ci étant fixé, on extrait les vecteurs-codes de dimension inférieure possibles. Avantageusement, la procédure d'extraction est facilitée en modifiant les vecteurs-codes des dimensions supérieures pour faire apparaître des éléments de A comme composantes de ces vecteurs-codes .As a variant, in order to construct the dictionaries according to the decreasing dimensions, the dictionary of larger dimension is first constructed. Then, the latter being fixed, the possible code vectors of smaller dimension are extracted. Advantageously, the extraction procedure is facilitated by modifying the code vectors of the larger dimensions to reveal elements of A as components of these code vectors.
Dans une variante complémentaire, on effectue avantageusement plusieurs itérations en alternant les deux constructions selon les dimensions croissantes, d'une part, et selon les dimensions décroissantes, d'autre part.In a complementary variant, several iterations are advantageously carried out by alternating the two constructions according to the increasing dimensions, on the one hand, and according to the decreasing dimensions, on the other hand.
Pour faciliter la procédure d'extension contrôlée, l'invention peut en plus procéder à une transformation des composantes des vecteurs-codes . Un exemple de transformation est une quantification scalaire à haute résolution. Il est intéressant de construire des "dictionnaires" de dimensions inférieures même si ces dimensions ne sont pas utilisées directement par la quantification vectorielle. Par exemple, on peut commencer par la dimension 1 même si la quantification scalaire n'est pas utilisée. De même, il peut aussi être intéressant de construire des dictionnaires des dimensions intermédiaires. Ces "dictionnaires" sont d'ailleurs avantageusement utilisés par la procédure d'extension contrôlée pour réduire la complexité de stockage et de calculs.To facilitate the controlled extension procedure, the invention can in addition carry out a transformation of the components of the code vectors. An example of transformation is a high resolution scalar quantization. It is interesting to build "dictionaries" of smaller dimensions even if these dimensions are not used directly by vector quantization. For example, we can start with dimension 1 even if scalar quantization is not used. Similarly, it can also be interesting to build dictionaries of intermediate dimensions. These "dictionaries" are moreover advantageously used by the controlled extension procedure to reduce the complexity of storage and calculations.
On indique en outre qu'en combinant judicieusement des algorithmes de construction de dictionnaires par imbrication en résolution (PR) avec des algorithmes de construction par composition partielle par extension contrôlée (PD) , plusieurs procédés de construction peuvent être développés . Il faut noter que les algorithmes étant itératifs, différentes techniques peuvent être alternées. Par exemple, on commence par construire le dictionnaire de résolution maximale pour la plus petite dimension, on en déduit les dictionnaires imbriqués en résolutions décroissantes (propriété PR) , puis on construit le dictionnaire de résolution maximale pour la dimension immédiatement supérieure grâce à la propriété PD, pour cette dimension, on construit les dictionnaires imbriqués en résolution et on itère jusqu'à obtenir les dictionnaires (imbriqués en résolutions) de dimension maximale .It is further indicated that by judiciously combining algorithms for constructing dictionaries by resolution nesting (PR) with algorithms for construction by partial composition by controlled extension (PD), several construction methods can be developed. It should be noted that the algorithms being iterative, different techniques can be alternated. For example, we start by building the dictionary of maximum resolution for the smallest dimension, we deduce the nested dictionaries in decreasing resolutions (property PR), then we build the dictionary of maximum resolution for the immediately higher dimension thanks to the property PD , for this dimension, we build the nested dictionaries in resolution and we iterate until we get the dictionaries (nested in resolutions) of maximum dimension.
Une construction préférentielle est utilisée dans le mode de réalisation décrit ci-après qui combine les techniques de construction de dictionnaire selon les dimensions croissantes et les résolutions décroissantes pour construire l'ensemble des dictionnaires M.A preferred construction is used in the embodiment described below which combines the techniques dictionary building according to increasing dimensions and decreasing resolutions to build all the dictionaries M.
On décrit ci-après le codage/décodage en compression de signaux numériques (audio, vidéo, ...) , utilisant des dictionnaires au sens de l'invention, en particulier les algorithmes de codage et de décodage qui exploitent la structure des dictionnaires (imbrication et composition partielle par extension contrôlée) . De manière générale, on comprendra qu'une optimisation du compromis mémoire/calculs au codeur et/ou au décodeur est menée selon les contraintes de l'application.The coding / decoding in compression of digital signals (audio, video, etc.) using dictionaries within the meaning of the invention is described below, in particular the encoding and decoding algorithms which exploit the structure of the dictionaries ( nesting and partial composition by controlled extension). In general, it will be understood that an optimization of the memory / calculation compromise at the coder and / or at the decoder is carried out according to the constraints of the application.
A titre d'exemple, on considère ci-après le codeur audio nommé "codeur TDAC" , utilisé pour coder des signaux audio numériques échantillonnés à 16 kHz (en bande élargie) . Ce codeur est un codeur par transformée qui peut fonctionner à différents débits. En particulier, le débit peut être fixé avant l'établissement de la communication ou varier de trame à trame en cours de communication.By way of example, the audio coder named "TDAC coder" is used below, used to encode digital audio signals sampled at 16 kHz (in wide band). This encoder is a transform encoder which can operate at different bit rates. In particular, the bit rate can be fixed before the establishment of the call or vary from frame to frame during a call.
La figure 6 donne le schéma bloc de ce codeur TDAC. Un signal audio x(n) limité en bande à 7 kHz et échantillonné à 16 kHz est découpé en trames de 320 échantillons (20 ms) . Une transformée en cosinus discrète modifiée 61 est appliquée sur des blocs du signal d'entrée de 640 échantillons avec un recouvrement de 50% (c'est-à-dire un rafraîchissement de l'analyse MDCT toutes les 20 ms) . On limite le spectre obtenu y(k) à 7225 Hz en mettant à zéro les 31 derniers coefficients (seuls les 289 premiers coefficients sont différents de 0) . Une courbe de masquage est déterminée par le module de masquage 62 qui effectue ensuite une mise à zéro des coefficients masqués. Le spectre est divisé en trente-deux bandes de largeurs inégales. Les éventuelles bandes masquées sont déterminées en fonction des coefficients transformés du signal x(n) . Pour chaque bande du spectre, l'énergie des coefficients MDCT est calculée (on parle de facteurs d'échelle). Les trente-deux facteurs d'échelle constituent l'enveloppe spectrale du signal qui est ensuite quantifiée, codée et transmise dans la trame (bloc 63) . Cette quantification et ce codage utilisent un codage de Huffman. Le nombre variable de bits restant après la quantification de l'enveloppe spectrale à débit variable est alors calculé. Ces bits sont distribués pour la quantification vectorielle 65 des coefficients MDCT du spectre. L'enveloppe spectrale déquantifiée sert à calculer l'ensemble des seuils de masquage par bande, cette courbe de masquage déterminant l'allocation dynamique des bits 64. Le calcul de cette courbe de masquage bande par bande et à partir de l'enveloppe spectrale quantifiée évite la transmission d' in ormations auxiliaire relatives à l'allocation binaire. En effet, le décodeur calcule l'allocation dynamique des bits de manière identique au codeur. Les coefficients MDCT sont normalisés par les facteurs d'échelle déquantifiés de leur bande puis ils sont quantifiés par des quantificateurs vectoriels de dimension et débit variables. Finalement, le train binaire est construit par multiplexage 66 des informations sur l'enveloppe spectrale et ces coefficients normalisés par bande codés et transmis en trame. On indique que les références 67 et 68 sur la figure 6 correspondent à des étapes connues en soi de détection d'un signal x(n) voisé ou non voisé, et de détection de tonalité (détermination de fréquences tonales), respectivement.Figure 6 shows the block diagram of this TDAC encoder. An audio signal x (n) limited in band to 7 kHz and sampled at 16 kHz is divided into frames of 320 samples (20 ms). A modified discrete cosine transform 61 is applied to blocks of the input signal of 640 samples with an overlap of 50% (that is to say a refresh of the MDCT analysis every 20 ms). We limits the spectrum obtained y (k) to 7225 Hz by zeroing the last 31 coefficients (only the first 289 coefficients are different from 0). A masking curve is determined by the masking module 62 which then sets the masked coefficients to zero. The spectrum is divided into thirty-two bands of unequal widths. The possible masked bands are determined as a function of the transformed coefficients of the signal x (n). For each band of the spectrum, the energy of the MDCT coefficients is calculated (we speak of scale factors). The thirty-two scale factors constitute the spectral envelope of the signal which is then quantified, coded and transmitted in the frame (block 63). This quantization and this coding use a Huffman coding. The variable number of bits remaining after the quantization of the variable rate spectral envelope is then calculated. These bits are distributed for the vector quantization 65 of the spectrum MDCT coefficients. The dequantized spectral envelope is used to calculate all the masking thresholds per band, this masking curve determining the dynamic allocation of bits 64. The calculation of this masking curve band by band and from the quantized spectral envelope prevents the transmission of auxiliary information relating to binary allocation. Indeed, the decoder calculates the dynamic allocation of the bits in an identical way to the coder. The MDCT coefficients are normalized by the dequantized scale factors of their band and then they are quantified by vector quantizers of variable size and bit rate. Finally, the binary train is constructed by multiplexing 66 information on the spectral envelope and these coefficients normalized by coded band and transmitted in frame. It is indicated that the references 67 and 68 in FIG. 6 correspond to steps known per se of detection of a voiced or unvoiced signal x (n), and of tone detection (determination of tonal frequencies), respectively.
On décrit ci-après les quantificateurs vectoriels à débit variable par bandes de largeurs inégales des coefficients MDCT dans le codeur TDAC. La quantification des coefficients MDCT normalisés par bande utilise en particulier des dictionnaires construits selon l'invention. La découpe en bandes de largeurs inégales conduit en effet à des vecteurs de différentes dimensions. Le tableau de la figure 7a qui donne la découpe en bande utilisée indique aussi la dimension résultante du vecteur des coefficients, c'est-à-dire le nombre de coefficients indiqué par la troisième colonne.The vector quantizers with variable bit rate are described below in bands of unequal widths of the MDCT coefficients in the TDAC coder. The quantification of the MDCT coefficients normalized by band in particular uses dictionaries constructed according to the invention. Cutting into strips of unequal widths leads to vectors of different dimensions. The table in FIG. 7a which gives the strip cutting used also indicates the resulting dimension of the vector of the coefficients, that is to say the number of coefficients indicated by the third column.
Le nombre variable de bits restant après le codage d'Huffman de l'enveloppe spectrale est alloué dynamiquement aux différentes bandes. Le tableau de la figure 7b donne les nombres de résolutions Nj et les ensembles des débits par bandes j*Rj (donc les valeurs des résolutions par bande) pour les dimensions j , pour j allant de 1 à 15. On notera que pour exploiter avantageusement la propriété structurante de composition partielle par extension contrôlée, on a construit des quantificateurs vectoriels en dimensions 1, 2, 6, 11, qui, pourtant, ne correspondent à aucune largeur de bande, mais dont les éléments servent à composer des vecteurs-codes de dimension plus élevée. On constate aussi la finesse de la granularité des résolutions même pour des dimensions élevées .The variable number of bits remaining after Huffman coding of the spectral envelope is dynamically allocated to the different bands. The table in FIG. 7b gives the numbers of resolutions Nj and the sets of flow rates per band j * Rj (therefore the values of the resolutions per band) for the dimensions j, for j ranging from 1 to 15. It will be noted that to exploit advantageously the structuring property of partial composition by controlled extension, vector quantizers have been constructed in dimensions 1, 2, 6, 11, which, however, do not correspond to any bandwidth, but whose elements are used to compose code vectors of higher dimension. We also note the fineness of the granularity of the resolutions even for large dimensions.
La mise à zéro des coefficients masqués dans le module 62 conduit à choisir, lors de l'analyse des coefficients MDCT normalisés, comme ensemble de départ A={θ} et comme jeu de règles d' insertion toutes les composées possibles des règles élémentaires d'insertion. Cela revient ici à insérer des zéros à une position quelconque.The zeroing of the masked coefficients in module 62 leads to choosing, when analyzing the normalized MDCT coefficients, as the starting set A = {θ} and as the set of insertion rules all possible compounds of the elementary rules d 'insertion. This is equivalent to inserting zeros at any position.
Toutefois,, une analyse plus fine impose aux dictionnaires une contrainte structurelle supplémentaire en utilisant des dictionnaires formés d'une union de codes à permutation normalisés, de type II selon lequel toutes les permutations et tous les signes sont autorisés. Pour chaque code à permutation de type II, on appelle leader absolu, le plus grand vecteur, au sens lexicographique, que l'on obtient en ordonnant les valeurs absolues des composantes dans l'ordre décroissant. La construction des dictionnaires revient à déterminer leurs leaders absolus normalisés. Appliquer l'extension contrôlée à ces leaders absolus consiste alors à leur insérer des 0 en dernières composantes .However, a more detailed analysis imposes on the dictionaries an additional structural constraint by using dictionaries formed from a union of standardized permutation codes, of type II according to which all permutations and all signs are authorized. For each type II permutation code, absolute leader is called the largest vector, in the lexicographic sense, which is obtained by ordering the absolute values of the components in descending order. The construction of dictionaries amounts to determining their standardized absolute leaders. Applying the controlled extension to these absolute leaders then consists of inserting 0s in the last components.
On se fixe en outre un critère de distorsion. Préférentiellement, le critère de distorsion choisi est ici la distance euclidienne. Le dictionnaire étant normalisé, la recherche du vecteur-code qui minimise la distance euclidienne avec un vecteur d'entrée à quantifier revient à rechercher le vecteur-code qui maximise le produit scalaire avec ce vecteur d'entrée. De plus, le dictionnaire étant l'union de codes à permutation, la recherche du vecteur-code maximisant le produit scalaire avec un vecteur d'entrée revient à rechercher parmi les leaders absolus du dictionnaire celui qui maximise le produit scalaire avec le leader absolu de ce vecteur d'entrée (lequel est aussi obtenu par permutation des valeurs absolues de ses composantes pour les arranger dans l'ordre décroissant).We also set a criterion of distortion. Preferably, the criterion of distortion chosen here is the Euclidean distance. The dictionary being normalized, the search for the vector code which minimizes the Euclidean distance with an input vector to be quantified amounts to searching for the vector code which maximizes the dot product with this input vector. In addition, the dictionary being the union of permutation codes, the search for the vector-code maximizing the scalar product with an input vector amounts to searching among the absolute leaders of the dictionary for that which maximizes the scalar product with the absolute leader of this input vector (which is also obtained by permuting the absolute values of its components to arrange them in descending order).
On définit ci-après une séquence d'apprentissage pour la conception des quantificateurs vectoriels au sens de l'invention. Comme indiqué ci-avant, il est préférable de déterminer une séquence d'apprentissage pour la conception d'un quantificateur. Une longue séquence constituée de trames de 289 coefficients MDCT normalisés par le facteur d'échelle de leur bande est d'abord obtenue à partir de nombreux échantillons de signaux audio en bande élargie. Puis, pour chaque vecteur normalisé de coefficients, on déduit son leader absolu. A partir de l'ensemble de leaders absolus de différentes dimensions, on crée deux catégories de séquences d'apprentissage multidimensionnelles S0 et S1 :We define below a learning sequence for the design of vector quantizers within the meaning of the invention. As indicated above, it is preferable to determine a training sequence for the design of a quantifier. A long sequence consisting of frames of 289 MDCT coefficients normalized by the scale factor of their band is first obtained from numerous samples of audio signals in wide band. Then, for each normalized vector of coefficients, we deduce its absolute leader. From the set of absolute leaders of different dimensions, two categories of multidimensional learning sequences S 0 and S 1 are created :
S - ≡ [1,15] , Sj étant 1 ' ensemble de tous les vecteurs formés par les j premières composantes des leaders absolus ayant j coefficients non nuls. S ,- est constitue ainsi par les leaders absolus de dimension j n'ayant aucun coefficient nul, ceux de dimension j+1 ayant un seul coefficient nul, ceux de dimension j+2 ayant deux coefficients nuls, ... ceux de dimension 15 ayant 15-j coefficients nuls,S - ≡ [1,15], S j being the set of all the vectors formed by the first j components of the absolute leaders having j non-zero coefficients. S, - is thus constituted by the absolute leaders of dimension j having no zero coefficient, those of dimension j + 1 having a single zero coefficient, those of dimension j + 2 having two zero coefficients, ... those of dimension 15 having 15-j zero coefficients,
- et S1 = {s}}/e[3,4,5,7,8,9,10,12,13,14,15], S) étant l'ensemble de tous les leaders absolus des bandes ayant j coefficients.- and S 1 = {s}} / e [3,4,5,7,8,9,10,12,13,14,15], S) being the set of all the absolute leaders of the bands having j coefficients.
Par exemple, à partir du vecteur normalisé de coefficients (0., 0.6,0., 0.,0.8), on déduit son leader absolu (0.8,For example, from the normalized vector of coefficients (0., 0.6.0., 0., 0.8), we deduce its absolute leader (0.8,
0.6,0. ,0., 0.) qui appartient à la séquence S et un élément de S°2, (0.8,0.6), formé par les deux premières composantes non nulles de son leader absolu.0.6,0. , 0., 0.) which belongs to the sequence S and an element of S ° 2 , (0.8,0.6), formed by the first two non-zero components of its absolute leader.
La première catégorie de séquences est préférentiellement utilisée pour déterminer les dictionnaires initiaux deThe first category of sequences is preferably used to determine the initial dictionaries of
leaders des • La deuxième catégorie est préférentiellement utilisée pour construire des dictionnaires multidimensionnels et multirésolutions possédant les deux propriétés structurantes.The second category is preferentially used to build multidimensional and multiresolution dictionaries having the two structuring properties.
A partir de la première catégorie S0 de séquences, on obtient un premier dictionnaire de leaders absolus normalisés pour chaque dimension j (j allant de 1 à 15) par application à la séquence S ,- d'un algorithme classique tel que celui dit " des k -moyenne s" ..Ces leaders à composantes réelles positives sont modifiés en annulant les composantes inférieures à un seuil prédéterminé, par rapport à la première composante (c'est-à-dire la plus grande composante) . Cette procédure dite de "center- clippling" permet avantageusement de faire apparaître des zéros et d'extraire des leaders absolus sans composantes nulles de dimension inférieure. Pour favoriser davantage l'extension contrôlée, une transformation des composantes de ces leaders extraits est appliquée. On utilise à cet effet une normalisation de chaque leader par sa plus petite composante non nulle suivie d'une quantification scalaire uniforme de pas 1 et à niveaux de reconstruction entiers (ce qui revient à arrondir les composantes de chaque leader à l'entier le plus proche). Cette transformation amène en outre une réduction significative de la mémoire car les leaders absolus peuvent ainsi être stockés sous forme d'entiers moyennant l'introduction d'un facteur correctif de normalisation dans le calcul de distance. On notera que des leaders réels différents obtenus ou non à partir de différentes séquences S,- peuvent être transformés en un même leader entier. On prévoit alors une procédure pour éliminer des redondances éventuelles et former l'ensemble V = M L'j de tous les -,-15] leaders absolus à composantes entières non nulles, -L'étant le sous-ensemble constitué par ces leaders de dimension j. Cette technique de construction de L'° s'inspire de la technique de construction de dictionnaires par composition partielle par extension contrôlée selon les dimensions décroissantes. On note aussi que le choix de l'ensemble A effectué a priori pourrait être revu a posteriori pour y ajouter l'élément "1" car tous les leaders de L'° ont au moins un "1" en dernière composante. L'ensemble L'° sert de base à la composition des dictionnaires initiaux de leaders pour la conception des quantificateurs vectoriels à dimensions et résolutions multiples possédant les deux propriétés structurantes d'imbrication PR et de composition partielle par extension contrôlée PD. A partir de la séquence S1, l'algorithme pour construire ces quantificateurs procède par dimension croissante et résolution décroissante.From the first category S 0 of sequences, we obtain a first dictionary of normalized absolute leaders for each dimension j (j ranging from 1 to 15) by application to the sequence S, - of a classical algorithm such as that called " k -means s ".. These leaders with positive real components are modified by canceling the components below a predetermined threshold, compared to the first component (that is to say the largest component). This so-called "center-" procedure clippling "advantageously makes it possible to make appear zeros and to extract absolute leaders without null components of lower dimension. To further favor the controlled extension, a transformation of the components of these extracted leaders is applied. For this purpose a normalization of each leader by its smallest nonzero component followed by a uniform scalar quantization of step 1 and with whole reconstruction levels (which amounts to rounding the components of each leader to the nearest integer). a significant reduction in memory because the absolute leaders can thus be stored in the form of integers by means of the introduction of a corrective factor of normalization in the calculation of distance. It will be noted that different real leaders obtained or not from different S, - sequences can be transformed into the same whole leader. A procedure for eliminate possible redundancies and form the set V = M L ' j of all -, - 15] absolute leaders with non-zero integer components, -L'ant being the subset made up of these leaders of dimension j. This L '° construction technique is inspired by the dictionary construction technique by partial composition by extension controlled according to decreasing dimensions. We also note that the choice of the set A made a priori could be revised a posteriori to add the element "1" because all the leaders of L '° have at least one "1" as the last component. The set L ° serves as the basis for the composition of the initial dictionaries of leaders for the design of vector quantizers with multiple dimensions and resolutions having the two structuring properties of nesting PR and partial composition by controlled extension PD. From the sequence S 1 , the algorithm to construct these quantifiers proceeds by increasing dimension and decreasing resolution.
Pour une dimension j , le dictionnaire initial de leadersFor a dimension j, the initial dictionary of leaders
L j est formé par tous les leaders de L j et par tous les leaders obtenus par extension contrôlée des leaders des dimensions inférieures j'(j'<j) en insérant (j-j') zéros aux leaders des ensembles V ., . Par exemple en dimension 3, on compose un dictionnaire de leaders par extension contrôlée à partir de = {(l)}, = {(l l),(21),(31),(41),(51),(91)} , complété par les leaders de E'3.L j is formed by all the leaders of L j and by all the leaders obtained by controlled extension of the leaders of the dimensions lower j '(j'<j) by inserting (j-j ') zeros to the leaders of the sets V.,. For example in dimension 3, we compose a dictionary of leaders by extension controlled from = {(l)}, = {(ll), (21), (31), (41), (51), (91)}, completed by the leaders of E ' 3 .
Pour chaque dimension j, l'union des codes à permutation caractérisée par LA- constitue un dictionnaire de haute résolution, éventuellement supérieure à la résolution maximale désirée. Ces codes à permutation effectuent donc une partition naturelle de ce dictionnaire, chaque classe de cette partition étant un code à permutation représenté par son leader. La construction des régions du plus proche voisin correspondant aux classes de cette partition est alors effectuée par quantification de la séquence S1. La partition est ordonnée selon le cardinal croissant des codes à permutations. En cas d'égalité des cardinaux des codes à permutation, les codes des leaders obtenus par extension contrôlée sont favorisés par rapport à ceux des leaders de -L'y comme indiqué ci-avant. En cas d'égalité de cardinaux de deux classes appartenant au même ensemble (soit à D,J N , soit à D>'-L ) , les classes sont ordonnéesFor each dimension j, the union of permutation codes characterized by LA- constitutes a high resolution dictionary, possibly greater than the maximum resolution desired. These permutation codes therefore perform a natural partition of this dictionary, each class of this partition being a permutation code represented by its leader. The construction of the nearest neighbor regions corresponding to the classes of this partition is then carried out by quantification of the sequence S 1 . The partition is ordered according to the ascending cardinal of the permutation codes. In case of equality of the cardinals of permutation codes, the codes of the leaders obtained by controlled extension are favored compared to those of the leaders of -L'y as indicated above. In case of equality of cardinals of two classes belonging to the same set (either to D , J N , or to D>'- L), the classes are ordered
selon un critère combinant le cardinal de leur région de quantification et leur contribution à la décroissance de la distorsion totale. Le cumul des cardinalités des codes à permutation ainsi ordonnés est calculé pour chaque code à permutation ainsi que le débit correspondant par vecteur. On note Lj l'ensemble des leaders de L j ainsi ordonné . Pour éviter une procédure de mise en train binaire conjointe des indices codés, on choisit de n'utiliser que des résolutions entières.according to a criterion combining the cardinal of their quantization region and their contribution to the decrease of the total distortion. The sum of the cardinalities of the permutation codes thus ordered is calculated for each permutation code as well as the corresponding bit rate per vector. We denote by L j the set of leaders of L j thus ordered. To avoid a procedure of joint binary training of the coded indices, one chooses to use only whole resolutions.
Les dictionnaires multi-résolutions imbriqués en résolution, en référence au tableau de la figure 7c, sont donc constitués en choisissant comme dernier code à permutation de chaque résolution différente celui dont le débit du cumul des cardinaux est le plus proche de l'entier immédiatement supérieur. Si la résolution du dictionnaire caractérisé par Lj est supérieure à la résolution maximale désirée, on élimine les derniers codes à permutation inutilisés. On note Z,-(g: Z,-j l'ensemble finalThe multi-resolution dictionaries nested in resolution, with reference to the table in FIG. 7c, are therefore formed by choosing as the last permutation code for each different resolution the one whose rate of cumulation of cardinals is closest to the integer immediately higher . If the resolution of the dictionary characterized by L j is greater than the maximum resolution desired, the last unused permutation codes are eliminated. We denote Z, - (g: Z, -j the final set
ordonné des leaders de D , . . A la fin des itérations surordained leaders of D,. . At the end of the iterations on
les dimensions, si certains leaders de L'° ne sont pas utilisés pour composer des leaders de e {3,4,5,7,8,9,10,12,13,14,15}, l'ensemble L'° est mis à jour endimensions, if certain leaders of L '° are not used to compose leaders of e {3,4,5,7,8,9,10,12,13,14,15}, the set L '° is updated in
les éliminant. On note cet ensemble L = M . e[l,-l5]eliminating them. We denote this set L = M. e [l, -L5]
Les tableaux des figures 7c à 7e montrent les gains en mémoire apportés par la propriété d'imbrication et par la propriété de composition partielle par extension contrôlée. Le tableau de la figure 7c compare des quantificateurs vectoriels à multiples résolutions pour différentes dimensions : les premiers quantificateurs simplement structurés en unions de codes à permutations, et les seconds quantificateurs possédant de plus la propriété d'imbrication en résolutions.The tables of FIGS. 7c to 7e show the gains in memory provided by the nesting property and by the property of partial composition by controlled extension. The table in FIG. 7c compares vector quantizers with multiple resolutions for different dimensions: the first quantifiers simply structured in unions of permutation codes, and the second quantifiers further possessing the property of nesting in resolutions.
Sur la figure 7c, on note :In Figure 7c, we note:
- j : la dimension,- j: the dimension,
- Nj : le nombre de résolutions en dimension j ,- Nj: the number of resolutions in dimension j,
- L j : le nombre de leaders du dictionnaire D ,- L j : the number of leaders of the dictionary D,
- Lnj : le nombre de leaders du dictionnaire D _. ,- L n j: the number of leaders of the dictionary D _. ,
- • la- mémoire (en nombre de mots) nécessaire pour stocker les leaders de tous les dictionnaires en dimension j sans la propriété d'imbrication,- • the memory (in number of words) necessary for store the leaders of all d-dimensional dictionaries without the nesting property,
- j'L j : la mémoire nécessaire pour stocker les leaders de tous les dictionnaires en dimension j avec la propriété d ' imbrication.- j ' L j : the memory necessary to store the leaders of all dictionaries in dimension j with the property of nesting.
Le tableau de la figure 7d compare ces derniers quantificateurs, utilisés pour des dimensions multiples, avec des quantificateurs possédant aussi la propriété structurante de composition partielle par extension contrôlée .The table in Figure 7d compares these quantifiers, used for multiple dimensions, with quantifiers also having the structuring property of partial composition by controlled extension.
Sur la figure 7d, on note :In Figure 7d, we note:
- j : la dimension- j: the dimension
- LDj : le nombre de leaders du dictionnaire D _, , j- L D j: the number of leaders of the dictionary D _,, j
- _ _LDk : la somme des nombres de leaders des dictionnaires de résolution maximale des dimensions 1 à j ~ _ ,kLr k • l mémoire nécessaire pour stocker ces leaders k=l sans la propriété de composition partielle par extension contrôlée,- _ _L D k: the sum of the numbers of leaders of the dictionaries of maximum resolution of dimensions 1 to j ~ _, kL r k • l memory necessary to store these leaders k = l without the property of partial composition by controlled extension,
- Lj : le nombre de leaders de 1 ' ensemble Lj ,- L j : the number of leaders of the set L j ,
- : leur somme des dimensions 1 à j , j-: their sum of dimensions 1 to j, j
- k k '• a mémoire nécessaire pour stocker les leaders de tous les dictionnaires des dimensions 1 à j avec la propriété de composition partielle par extension contrôlée.- k k '• has the memory necessary to store the leaders of all the dictionaries of dimensions 1 to j with the property of partial composition by controlled extension.
Le tableau de la figure 7e compare des quantificateurs vectoriels à multiples résolutions et dimensions: les premiers quantificateurs simplement structurés en union de codes à permutations et les seconds possédant de plus les propriétés structurantes d'imbrication en résolutions et de composition partielle par extension contrôlée.The table in Figure 7e compares vector quantizers with multiple resolutions and dimensions: the first quantifiers simply structured in union of permutation codes and the latter having in addition the structuring properties of nesting in resolutions and partial composition by controlled extension.
Sur la figure 7e, on note:In Figure 7e, we note:
- j : la dimension- j: the dimension
- Nj : le nombre de résolutions en dimension j- Nj: the number of resolutions in dimension j
- Ie nombre de leaders en dimension j à stocker pour les Nj résolutions sans la propriété d'imbrication ni la propriété d'extension partielle contrôlée- I th number of leaders in dimension j to store for Nj resolutions without the nesting property or the controlled partial extension property
- : la mémoire (en nombre de mots) nécessaire pour stocker ces leaders de tous les dictionnaires en dimension j sans ces deux propriétés : la mémoire (en nombre de mots) nécessaire pour stocker les leaders de tous les dictionnaires des dimensions 1 à j sans ces deux propriétés-: the memory (in number of words) necessary for store these leaders of all d-dimensional dictionaries without these two properties: the memory (in number of words) necessary for store leaders of all dictionaries from dimensions 1 to j without these two properties
Lj : le nombre de leaders de 1 ' ensemble L°j : leur somme des dimensions 1 à j jL j : the number of leaders of the set L ° j : their sum of dimensions 1 to j j
- _j^k • ' la mémoire nécessaire pour stocker les leaders Jt≈l de tous les dictionnaires des dimensions 1 à j avec les deux propriétés d'imbrication et de composition partielle par extension contrôlée. Dans les trois tableaux, la dernière colonne montre l'importance du facteur de réduction en mémoire. La seule propriété d'imbrication permet de réduire la mémoire d'un facteur supérieur à 3 en dimension 3, 5 en dimension 7, 7 en dimension 15. Grâce à la propriété d'imbrication, au lieu de stocker tous les Leaders des Df pour l'ensemble des résolutions en dimension j , on ne stocke que les leaders de DN J , _ι des leaders de Lj) . L'ajout de la composition partielle par extension contrôlée permet de réduire encore la mémoire comme le montre la dernière colonne du tableau de la figure 7d. Le gain supplémentaire apporté par cette propriété est d'un facteur supérieur à :- _ j ^ k • 'l has the memory necessary to store the leaders Jt≈l of all the dictionaries of dimensions 1 to j with the two properties of nesting and partial composition by controlled extension. In the three tables, the last column shows the importance of the memory reduction factor. The only nesting property makes it possible to reduce the memory by a factor greater than 3 in dimension 3, 5 in dimension 7, 7 in dimension 15. Thanks to the nesting property, instead of storing all the Df Leaders for all resolutions in dimension j, stores only the leaders of A N J are leaders of Lj). The addition of the partial composition by controlled extension makes it possible to further reduce the memory as shown in the last column of the table in FIG. 7d. The additional gain provided by this property is by a factor greater than:
- 1,5 en dimension 4,- 1.5 in dimension 4,
- 3 en dimension 8,- 3 in dimension 8,
- et 7 en dimension 15.- and 7 in dimension 15.
Comme le montre la figure 7e, par rapport à des quantificateurs simplement structurés en union de codes à permutations, l'emploi de quantificateurs possédant de plus les deux propriétés structurantes d'imbrication en résolutions et de composition partielle par extension contrôlée permet de réduire la mémoire d'un facteur 4 en dimension 3, 13 en dimension 7 et d'un facteur supérieur à 35 pour les dimensions supérieures à 11.As shown in FIG. 7e, compared to quantifiers simply structured in union of permutation codes, the use of quantifiers having moreover the two structuring properties of nesting in resolutions and of partial composition by controlled extension makes it possible to reduce the memory. by a factor 4 in dimension 3, 13 in dimension 7 and by a factor greater than 35 for dimensions greater than 11.
Avec la propriété de composition partielle par extension contrôlée, seuls les leaders de L° doivent être stockés, les leaders des {Lj} étant retrouvés à partir d'une table de correspondance des index des leaders de Lj vers les index des leaders de L°. On décrit maintenant comment mettre en œuvre effectivement les quantificateurs vectoriels.With the partial composition property by controlled extension, only the leaders of L ° must be stored, the leaders of the {Lj} being found from a correspondence table from the indexes of the leaders of Lj to the indexes of the leaders of L ° . We now describe how to effectively implement vector quantizers.
Pour mettre en oeuvre un quantificateur vectoriel de dimension j et de résolution r±, il faut résoudre les trois problèmes suivants :To implement a vector quantizer of dimension j and resolution r ± , the following three problems must be solved:
- recherche du plus proche voisin d'un vecteur d'entrée - search for the nearest neighbor of an input vector
- recherche de l'index d'un vecteur-code de D , et réciproquement, recherche d'un vecteur-code de Df à partir de son index.- search for the index of a vector code of D, and conversely, search for a vector code of Df from its index.
Pour ce qui concerne l'indexation, on indique qu'il existe plusieurs manières connues d'indexer les vecteurs-codes d'un dictionnaire, union de codes à permutation de type II. La numérotation employée dans le mode de réalisation s'inspire de celle utilisée pour indexer les codes sphériques du réseau de Gosset .With regard to indexing, it is indicated that there are several known ways of indexing the code vectors of a dictionary, a union of type II permutation codes. The numbering used in the embodiment is inspired by that used to index the spherical codes of the Gosset network.
Pour toute dimension j (j e {3, , 5, 7, 8, 9, 10, 12, 13 , 14, 15} ) , chaque vecteur-code de D _. est indexé par un offsetFor any dimension j (j e {3,, 5, 7, 8, 9, 10, 12, 13, 14, 15}), each code vector of D _. is indexed by an offset
caractéristique de son code à permutation, d'un indice binaire donnant sa combinaison de signes et de son rang dans son code à permutation. L'offset d'un code à permutation est le cumul des cardinalités des codes à permutation le précédant dans DN J . . Parmi les formulescharacteristic of its permutation code, of a binary index giving its combination of signs and of its rank in its permutation code. The offset of a permutation code is the sum of the cardinalities of the permutation codes preceding it in D N J. . Among the formulas
de numérotation des permutations, on a choisi la formule dite de Schalk ijk.numbering of permutations, we chose the formula known as Schalk ijk.
En plus de cette numérotation classique des vecteurs-codes de Dtf . _ι ' on utilise une table de correspondance desIn addition to this classic numbering of the code vectors of Dt f . _ι ' we use a correspondence table of
index des leaders de Lj vers les index des leaders de L°. Les leaders de L° étant stockés, on dispose ainsi d'une grande liberté d'indexation de L°. Par exemple, on peut classer ces leaders à composantes entières non nulles par dimension croissante. A chaque index mj d'un leader X7 de Lj est associé un index lm d'un leader xj ' de L°. A partir de cet index lm, on retrouve la dimension _ ' du leader x7' et le leader lui-même. Le leader xj est alors retrouvé en insérant (j-j') zéros comme dernières composantes de x3'.Lj leaders index to L ° leaders index. The leaders of L ° being stored, there is thus a great freedom of indexing of L °. For example, we can classify these leaders with non-zero integer components by increasing dimension. Each index m j of a leader X 7 of Lj is associated with an index l m of a leader x j 'of L °. From this index l m , we find the dimension _ 'of the leader x 7 ' and the leader himself. The leader x j is then found by inserting (j-j ') zeros as the last components of x 3 '.
Le tableau de la figure 7f donne les 23 premiers leaders de L°. Le tableau de la figure 7g donne les leaders des codes à permutation des dictionnaires en dimension 3 en indiquant pour chaque leader x3 quel leader x? ' de L -, de dimension j'(j'≤j), a été étendu pour l'obtenir. Incidemment, on remarque que si j=j', alors xJ' ≈ x3.The table in Figure 7f gives the first 23 leaders of L °. The table of figure 7g gives the leaders of the permutation codes of the dictionaries in dimension 3 by indicating for each leader x 3 which leader x? 'de L -, of dimension j'(j'≤j), has been extended to obtain it. Incidentally, we notice that if j = j ', then x J ' ≈ x 3 .
Sur la figure 7f, on note :In Figure 7f, we note:
-1 : l'indice du leader dans L° (parmi les 516),-1: the leader's index in L ° (among the 516),
- j : sa dimension,- j: its dimension,
- 1J : son indice dans les leaders de Lj .- 1 J : its index in the leaders of L j .
Sur la figure 7g, on note : l'indice du leader x3 parmi les 23 leaders de DN , l'indice du dictionnaire de plus petite résolution auquel le leader appartient (i.e. x3^- ?_ι et x3 e Df ) , jr± : le débit par vecteur de ce dictionnaire D? , j ' : la dimension du leader x3 ' de L° (nombre de composantes non nulles) , lm : l'indice de xJ' parmi les 516 leaders de L°.In Figure 7g, we note: the leader index x 3 among the 23 leaders of D N , the dictionary index of lower resolution to which the leader belongs (ie x 3 ^ -? _ι and x 3 e Df), jr ±: the bit rate per vector of this dictionary D? , j ': the dimension of the leader x 3 ' of L ° (number of non-zero components), l m : the index of x J 'among the 516 leaders of L °.
On décrit ci-après les algorithmes de codage et de décodage, proprement dits dans le cas général et on verra plus loin le cas particulièrement avantageux où une contrainte structurelle supplémentaire (union de codes à permutation) a été ajoutée.The coding and decoding algorithms, properly so called in the general case, are described below and we will see below the particularly advantageous case where an additional structural constraint (union of permutation codes) has been added.
On indique d'abord qu'ils exploitent préférentiellement la structure des dictionnaires induite en particulier par la propriété d'extension contrôlée qui permet de réduire la complexité de l'algorithme de recherche du plus proche voisin. En particulier, on peut grouper les vecteurs-codes ayant la même règle d'insertion. Par exemple, dans le cas d'un critère de distorsion de distance euclidienne qui sera traité en détail plus loin, si L vecteurs-codes jx ,/ = 0,l;---E - lj de dimension j d'un dictionnaire Dj sont obtenus par la même règle d'insertion R(n,{(im,pm)}m = 0,n - l) àIt is first indicated that they preferentially use the structure of the dictionaries induced in particular by the property of controlled extension which makes it possible to reduce the complexity of the algorithm for finding the nearest neighbor. In particular, one can group the vector-codes having the same insertion rule. For example, in the case of a Euclidean distance distortion criterion which will be treated in detail below, if L code vectors jx, / = 0, l; --- E - lj of dimension j of a dictionary Dj are obtained by the same insertion rule R (n, {(i m , p m )} m = 0, n - l) to
partir de L vecteurs-codes xj~n de dimension j-n d'unstarting from L code vectors xj ~ n of dimension jn of
dictionnaire Dj, ~n , le calcul des L distances desdictionary Dj, ~ n , the calculation of L distances of
vecteurs— codes xj à un vecteur ^d'entrée Peut être accéléré en calculant n-l , d ' abord le terme ∑ψp 'm ~ai "mm ) puis en calculant les L m=0 distances des vecteurs-codes xj n au vecteur y' de dimension (j-n) obtenu en enlevant à y les n composantes vectors— xj codes to an input vector ^ Can be accelerated by calculating nl, first the term ∑ψ p 'm ~ a i " m m) then by calculating the L m = 0 distances of the vector-codes xj n to the vector y' of dimension (jn) obtained by removing from y the n components
Comme indiqué ci-avant, pour chaque dimension, seule une partie du dictionnaire de résolution maximale doit être stockée, les autres vecteurs-codes se déduisent à partir d' éléments pris dans les dictionnaires de résolution maximale de dimension inférieure et de règles d'insertion.As indicated above, for each dimension, only part of the dictionary of maximum resolution must be stored, the other vector-codes are deduced from elements taken from the dictionaries of maximum resolution of lower dimension and insertion rules .
On donne ci-après un exemple détaillé de réalisation du codage/décodage en compression dans l'utilisation du procédé de création de dictionnaire selon l'invention.A detailed example of coding / decoding in compression is given below in the use of the dictionary creation method according to the invention.
On indique tout d'abord qu'au lieu de stocker, pour toutes les dimensions j à considérer, l'ensemble de tous les dictionnaires , on ne stocke donc que les { D'J N } ainsi que des tables de correspondance. Ces tables permettent de reconstituer un vecteur-code de DN J à partir de son indice. Comme décrit ci-avant, il y a plusieurs façons d'élaborer ces tables et donc de les stocker. Par exemple, on peut, pour toutes les dimensions j à considérer, tabuler pour chaque indice m-,- (d'un vecteur-code x? de DN J ) trois valeurs entières scalaires : j', m ' et lr , où lr est le numéro de la règle d'insertion qui permet de reconstituer xj par composition partielle par extension contrôlée appliquée à l'élément d'indice m ' de l'ensemble de D'J N i . Les tables de correspondance ne N requièrent au plus que le stockage de 3^2^' mots (onFirst of all, we indicate that instead of storing, for all the dimensions j to be considered, the set of all the dictionaries , we therefore only store {D ' J N } as well as correspondence tables. These tables make it possible to reconstruct a code vector of D N J from its index. As described above, there are several ways to build these tables and therefore store them. For example, we can, for all dimensions j to be considered, tabulate for each index m -, - (of a vector code x? Of D N J ) three integer scalar values: j ', m' and l r , where l r is the number of the insertion rule which allows to reconstruct x j by partial composition by controlled extension applied to the element of index m 'of the set of D' J N i . Correspondence tables do not require more than the storage of 3 ^ 2 ^ ' words (we
rappelle que Tij est la taille du dictionnaire Dij) . Quant au stockage proprement dit des dictionnaires d'un quantificateur vectoriel à résolutions et dimensionsremember that Ti j is the size of the dictionary Di j ). As for the storage proper of the dictionaries of a vector quantizer with resolutions and dimensions
multiples, il requière ∑J∑T mots dans le cas d'un 7=1 i=\ quantificateur vectoriel ne possédant pas les deux propriétés structurantes d'imbrication en résolutions et de composition partielle par extension, tandis que le stockage des dictionnaires d'un quantificateur vectoriel possédant ces deux propriétés structurantes ne requière N lui que _ jT J N. mots, en notant T'N J la taille de =1 l'ensemble D,J N ( J N < T ) . Cependant, de manière générale,multiple, it requires ∑J∑T words in the case of a 7 = 1 i = \ vector quantizer not having the two structuring properties of nesting in resolutions and partial composition by extension, while storing the dictionaries of a vector quantizer having these two structuring properties requires N him only _ jT J N. words, by noting T ' N J the size of = 1 the set D , J N ( J N <T). However, in general,
Tυ N est beaucoup plus petit que T^ , car on cherche bien entendu à favoriser l'ensemble D'j N par rapport àT υ N is much smaller than T ^, because we naturally try to favor the set D ' j N with respect to
1 ' ensemble Dυ N . Quelques exemples numériques de gain en stockage seront donnés dans un mode de réalisation décrit plus loin.1 set D υ N. Some digital examples of gain in storage will be given in an embodiment described below.
L'algorithme de codage qui consiste à rechercher le plus proche voisin x3 dans -D/ d'un vecteur d'entrée = (yo>--->yk>--->yj-ύ comporte préférentiellement les étapes suivantes :The coding algorithm which consists in finding the nearest neighbor x 3 in -D / of an input vector = (yo>---> y k >---> y j -ύ preferably includes the following steps:
L'étape COO) consiste en une étape d'initialisation où 1 ' on pose : dmin = VALMAX; mmirι = -1; mJ=0 Pour tout indice m7 e[0,?V [ :The COO step) consists of an initialization step where one poses: d m in = VALMAX; m mirι = -1; m J = 0 For any index m 7 e [0,? V [:
L'étape suivante COI) consiste en la reconstitution du vecteur-code xJ d'indice m3 et s'effectue préférentiellement comme suit : a) lecture des trois indices j', m ' et lr dans les tables de correspondance associées à DN J , b) lecture dans l'ensemble -D'^, du vecteur x3'' de dimension j' et d'indice m', c) reconstitution du vecteur-code x3 par application à x3' de la propriété de composition partielle par extension contrôlée selon la règle d'insertion d'indice lr.The following step COI) consists in the reconstruction of the code vector x J of index m 3 and is preferably carried out as follows: a) reading of the three indices j ', m' and l r in the correspondence tables associated with D N J , b) reading in the set -D '^ of the vector x 3' 'of dimension j' and of index m ', c) reconstruction of the code vector x 3 by applying to x 3 ' of the property of partial composition by extension controlled according to the rule of insertion of index l r .
L'étape C02) consiste à calculer la distance d(y,x3) entre y et x selon le critère de distorsion choisi. Les étapes suivantes C03) et C04) consistent à répéter les opérations COI) et C02) pour identifier l'indice de vecteur dont la distance au vecteur d'entrée est minimale. Ainsi :Step C02) consists in calculating the distance d (y, x 3 ) between y and x according to the chosen distortion criterion. The following steps C03) and C04) consist in repeating the operations COI) and C02) to identify the vector index whose distance to the input vector is minimum. So :
* si d(y,x3) <dmin alors dmin = d(y,xJ) et mmin = m3 * if d (y, x 3 ) <d min then d min = d (y, x J ) and m min = m 3
* ensuite, on incrémente m3 : m3=m3+l* then, we increment m 3 : m 3 = m 3 + l
* on prévoit un test de fin : si m3' < T aller à l'étape COI), sinon : arrêter. A l'étape de fin C05) , on détermine le vecteur-code plus proche voisin du vecteur d'entrée y en tant que vecteur- code dont 1 ' indice mmin a été identifié en correspondance de la distance la plus petite dmin avec le vecteur d'entrée y-* an end test is planned: if m 3 ' <T go to step COI), otherwise: stop. At the end step C05), the nearest code vector close to the input vector y is determined as a vector code whose index m m i n has been identified in correspondence of the smallest distance d m i n with the input vector y-
Ainsi, l'algorithme se poursuit par l'étape C05) : * Fin le plus proche voisin x de y dans D{ est le vecteur- code d'indice mmin Thus, the algorithm continues with step C05): * End nearest neighbor x of y in D {is the vector-code of index m m i n
L'algorithme de décodage qui consiste à rechercher un vecteur-code de Dj à partir de son index est donné par l'étape COI) de l'algorithme de codage. On indique, en particulier, que le décodage implique la reconstitution complète du vecteur-code x (opération c) de l'étape COI)), quel que soit l'indice à décoder.The decoding algorithm which consists in searching for a code vector of Dj from its index is given by step COI) of the coding algorithm. It is indicated, in particular, that the decoding implies the complete reconstruction of the code vector x (operation c) of step COI)), whatever the index to be decoded.
En revanche, au codage, cette reconstitution peut être partielle. En effet, elle peut parfois être omise si le critère de distorsion dans le calcul de distance de l'étape C02) peut être décomposé en deux termes: un dépendant uniquement de 1 ' indice de la règle d'insertion, et un autre du vecteur-code x3'. Par exemple, dans le cas d'un critère de distorsion de distance euclidienne, on peut, à l'étape d'initialisationOn the other hand, during coding, this reconstruction can be partial. Indeed, it can sometimes be omitted if the distortion criterion in the distance calculation of step C02) can be broken down into two terms: one dependent only on the index of the insertion rule, and another on the vector -code x 3 '. For example, in the case of a Euclidean distance distortion criterion, it is possible, at the initialization stage
COO), pré-calculer, pour chaque règle d'insertion d'indice 7-/-1 , lr utilisée dans D( , la distance dt = 2__ P ~ai f (si la m=0 règle d'insertion d'indice lr consiste à insérer j-j1 composantes at en positions pm , m allant de 0 à j-j'-l) .COO), pre-calculate, for each insertion rule of index 7 - / - 1, l r used in D (, the distance d t = 2__ P ~ a if (if l a m = 0 insertion rule index l r consists in inserting jj 1 components a t in positions p m , m going from 0 to j-j'-l).
Le calcul de la distance entre y et le vecteur x:(j ' , m ' , lr) de l'étape C02) revient alors à calculer laThe calculation of the distance between y and the vector x : (j ', m', l r ) of step C02) then amounts to calculating the
αistan e : ≈ù : x3' est le vecteur obtenu à l'opération b) de l'étape COI) , et y' le vecteur de dimension j ' , obtenu en enlevant à y les j-j' composantes yD , la distance d(y,x3) étant alors obtenue par simple sommation d(y,x)= dl +d (y ' , x3'j.αi s tan e: ≈ù: x 3 'is the vector obtained in operation b) of step COI), and y' the vector of dimension j ', obtained by removing from y the jj' components y D , the distance d (y, x 3 ) then being obtained by simple summation d (y, x) = d l + d (y ', x 3 ' j.
C'est la raison pour laquelle on a défini, ci-avant, de "partielle" la reconstruction d'un vecteur-code x3' de dimension j ' inférieure à la dimension j (qui serait la dimension d'un vecteur-code x3 complètement reconstruit) , pendant le processus de codage.This is the reason for defining, above, "partial" the reconstruction of a code vector x 3 'of dimension j' smaller than dimension j (which would be the dimension of a code vector x 3 completely rebuilt), during the coding process.
D'autre part, si un vecteur x3' intervient plusieurs fois dans la composition de vecteurs-codes de D{ (avec différentes règles d'insertion), on peut aussi précalculer à l'étape d'initialisation, les termes d (y ' , xj ' ) . On voit donc que le compromis stockage (temporaire) /complexité du codage peut être ajusté selon le besoin de l'application.On the other hand, if a vector x 3 'intervenes several times in the composition of vector-codes of D {(with different insertion rules), we can also precompute in the initialization step, the terms d (y ', x i '). So we see that the storage compromise (temporary) / complexity of coding can be adjusted according to the need of the application.
De même, le compromis stockage/complexité d'indexation peut aussi être ajusté au besoin de l'application.Similarly, the storage / indexing complexity compromise can also be adjusted as required by the application.
Pour le codage, dans le cas de la contrainte supplémentaire d'une union de codes à permutations précitée, l'algorithme de recherche du plus proche voisin, pour les codes spheriques du réseau régulier de Gosset en dimension 8, se généralise aisément en se simplifiant à ces dictionnaires, par union de codes à permutation de type II.For coding, in the case of the additional constraint of a union of codes with permutations aforementioned, the algorithm of search of nearest neighbor, for the spherical codes of the regular network of Gosset in dimension 8, is easily generalized by simplifying to these dictionaries, by union of type II permutation codes.
Un tel algorithme de recherche est décrit en particulier dans : "Algori thme de Quantification Vectorielle Algébrique Sphérique par le Réseau de Gosset E8" , C.Lamblin, J.P.Adoul, Annales Des Télécommunications, n° 3-4, 1988.Such a search algorithm is described in particular in: "Algorithm of Spherical Algebraic Vector Quantization by the Gosset Network E 8 ", C. Lamblin, JPAdoul, Annales Des Télécommunications, n ° 3-4, 1988.
Une première simplification est apportée par la "liberté" des signes des codes à permutation de type II que ne possèdent pas les codes à permutation du réseau de Gosset à composantes impaires. Une deuxième simplification est apportée par la prise en compte du nombre de composantes non nulles de chaque leader pour le calcul du produit scalaire. Ceci illustre l'exploitation de la structure induite par la propriété de composition partielle par extension contrôlée par l'algorithme de codage. Une dernière modification tient compte du stockage sous forme entière des leaders de L°, ce qui conduit à introduire dans le calcul du produit scalaire un facteur correctif égal à l'inverse de la norme euclidienne de ces leaders à composantes entières strictement positives.A first simplification is brought about by the "freedom" of the signs of type II permutation codes which the permutation codes of the Gosset network with odd components do not have. A second simplification is provided by taking into account the number of non-zero components of each leader for the calculation of the scalar product. This illustrates the exploitation of the structure induced by the property of partial composition by extension controlled by the coding algorithm. A final modification takes into account the storage of the leaders of L ° in whole form, which leads to the introduction in the scalar product calculation a corrective factor equal to the inverse of the Euclidean norm of these leaders with strictly positive integer components.
On décrit ci-après une réalisation dans laquelle la recherche du plus proche voisin d'un vecteur d'entrée y de dimension j dans le dictionnaire Dj exploite, en plus des deux propriétés structurantes de l'invention, la structure en union de codes à permutation précitée.An embodiment is described below in which the search for the nearest neighbor of an input vector y of dimension j in the dictionary Dj uses, in addition to the two structuring properties of the invention, the union structure of codes with aforementioned permutation.
On prévoit globalement trois étapes supplémentaires : deux étapes préliminaires (avant l'étape de reconstruction COI) ci-avant) pour déterminer le leader absolu et le vecteur signe ε du vecteur à coder (étapes CP1) et CP2) ) , et une dernière étape pour calculer le rang de son plus proche voisin dans le dictionnaire (étape CP5) ) .Overall, three additional steps are planned: two preliminary steps (before the COI reconstruction step) above) to determine the absolute leader and the sign vector ε of the vector to be coded (steps CP1) and CP2)), and a last step to calculate the rank of its closest neighbor in the dictionary (step CP5)).
La recherche décrite ci-avant est effectuée, non plus parmi les T vecteurs-codes de Dj (i.e. non plus pour m 'e [0, T,J [) , mais seulement sur l'ensemble Lj (i) des LDJ The research described above is carried out, no longer among the T code vectors of Dj (ie no longer for m 'e [0, T, J [), but only on the set Lj (i) of L DJ
leaders de Dj (pour m e[0,Zy [, en notant LDJ le nombreDJ leaders (for me [0, Zy [, noting L DJ the number
de leaders ou de codes à permutations de Dj ) .leaders or DJ permutation codes).
Dans ce mode de réalisation, la recherche du plus proche voisin de y dans Dj revient à rechercher d'abord le plus proche voisin de dans l'ensemble Lj (i) (parmi les Lβl In this embodiment, the search for the nearest neighbor of y in Dj amounts to first searching for the most close neighbor of in the set L j (i) (among the L βl
premiers leaders de Lj) . Comme décrit ci-avant, il n'est pas nécessaire de reconstituer complètement ces leaders (opération c) de l'étape COI)), le critère de distorsion (ici le produit scalaire modifié) n'étant calculé que sur les composantes non nulles de chaque leader. Il suffit donc de déterminer pour chaque leader, le leader correspondant dans L° utilisant la table de correspondance des index des leaders de Lj vers les index des leaders de L° associant à chaque index πP d'un leader x3 de Lj un index lm d'un leader x3' de L°.first leaders of Lj). As described above, it is not necessary to completely reconstruct these leaders (operation c) of the COI step)), the distortion criterion (here the modified scalar product) being calculated only on the non-zero components of each leader. It suffices therefore to determine for each leader, the corresponding leader in L ° using the correspondence table of the indexes of the leaders of Lj to the indexes of the leaders of L ° associating with each index πP of a leader x 3 of L j an index l m from a leader x 3 'from L °.
L'algorithme se déroule alors préférentiellement selon 1 ' exemple qui suit :The algorithm then preferably takes place according to the following example:
*Etape CP1) :* Step CP1):
Passage du vecteur d' entrée; = (y0,...,yk,...,yj_l) à son vecteur absolu et à son vecteur signe ε = (ε0,...,εk,...,εj_l) avec εk= l si .y^≥O et εk= -\ sinon.Passing the input vector; = (y 0 , ..., y k , ..., y j _ l ) to its absolute vector and to its sign vector ε = (ε 0 , ..., ε k , ..., ε j _ l ) with ε k = l if .y ^ ≥O and ε k = - \ otherwise.
*Etape CP2) :* Step CP2):
Recherche du leader par permutation de ses composantes pour les arranger dans l'ordre décroissantLeader search by permuting its components to arrange them in descending order
*Etape CP3) :* Step CP3):
*Etape CoO ' ) : Initialisation : psmax = - 1 - ; mmax = - 1 ; mD = 0* Stage CoO '): Initialization: ps m ax = - 1 -; m max = - 1; m D = 0
pour tout indice m3' e [0 , LβS [ *Etape COI'): reconstruction du leader d'indice mj : a) Lecture de l'indice lm du leader x3' associé au leader d'indice m3 de Lj , dans la table de correspondance associant les leaders de Lj à ceux de L°, puis détermination de la dimension j ' du leader x3' et lecture du facteur correctif α (avec b) Lecture dans l ' ensemble L° du leader x3 ' de dimension j ' et d ' indice lm.for any index m 3 ' e [0, L βS [ * COI step '): reconstruction of the leader of index m j : a) Reading of the index l m of the leader x 3 ' associated with the leader of index m 3 of Lj, in the correspondence table associating the leaders of L j to those of L °, then determination of the dimension j 'of the leader x 3 ' and reading of the corrective factor α (with b) Reading in the set L ° of the leader x 3 'of dimension j' and of index l m .
*Etape C02 ' ) Calcul du produit scalaire modifié entre * Step C02 ') Calculation of the scalar product modified between
et x3 ' : ps(\y\xJ') - xk J ) and x 3 ': ps (\ y \ x J' ) - x k J )
Les étapes suivantes consistent à répéter les opérations COI') et C02 ' ) pour identifier l'indice du leader-code dont le produit scalaire modifié avec le leader absolu du vecteur d'entré est maximal. Ainsi : si ps(\y\xJ') > psmax alors psmax m3 The following steps consist in repeating the operations COI ') and C02') to identify the index of the leader-code whose scalar product modified with the absolute leader of the input vector is maximum. So: if ps (\ y \ x J ' )> ps max then ps max m 3
* ensuite, on incrémente m3: m=m+l* then, we increment m 3 : m = m + l
* Test de fin si m < LDj aller à l'étape COI'), sinon arrêter,* End test if m <L Dj go to step COI '), otherwise stop,
A cette étape de fin, on calcule l'index du plus proche voisin de y dans Dj par la procédure d'indexation d'une union de codes à permutation à partir du numéro du code à permutation mmax trouvé à l'étape CP3) , du rang de la permutation effectuée à l'étape CP2) et du vecteur de signes déterminé à l'étape CP1) . Il faut noter que l'étape CP2) peut être accélérée. En effet, si nf est le nombre maximum de composantes non nulles des leaders de Lj(i), il suffit de rechercher les nf plus grandes composantes de \y\ . Il existe plusieurs variantes de l'étape CP3) selon le compromis stockage/complexité désiré. Si l'on veut minimiser le nombre de calculs, on peut tabuler pour tous les leaders de L° simplement leur dimension j ' et leur facteur correctif. La détermination de la dimension j' mentionnée à l'étape CP3) consiste dans ce cas en une lecture de la table de correspondance. A l'inverse, si l'on veut plutôt réduire la mémoire, cette détermination est calculée à partir de l'indice lm. De même, le facteur correctif peut être calculé après la lecture du leader x3'.At this end step, the index of the nearest neighbor of y in Dj is calculated by the procedure of indexing a union of permutation codes from the number of the permutation code m max found in step CP3) , the rank of the permutation carried out in step CP2) and the vector of signs determined in step CP1). It should be noted that step CP2) can be accelerated. Indeed, if nf is the maximum number of non-zero components of the leaders of Lj (i), it suffices to search for the nf largest components of \ y \. There are several variants of step CP3) depending on the desired storage / complexity compromise. If one wants to minimize the number of computations, one can tabulate for all the leaders of L ° simply their dimension j 'and their corrective factor. The determination of the dimension j 'mentioned in step CP3) consists in this case of a reading of the correspondence table. Conversely, if we rather want to reduce memory, this determination is calculated from the index l m . Likewise, the corrective factor can be calculated after reading the leader x 3 '.
Ainsi, l'algorithme de recherche du plus proche voisin d'un vecteur d'entrée y de dimension j dans le dictionnaire Dj , utilisant une structure en union de codes à permutation, peut se résumer préférentiellement comme suit :Thus, the algorithm for finding the nearest neighbor to an input vector y of dimension j in the dictionary Dj, using a union structure of permutation codes, can preferably be summarized as follows:
CP1) on passe du vecteur d'entrée y = (yo,».,yk,.«,yj-ι) à son vecteur absolu l-] = et a son vecteur signe ε = (ε0,...,εk,...,εj-ι) avec si yk≥O et -1 sinon,CP1) we pass from the input vector y = (yo, "., Yk,.", Yj-ι) to its absolute vector l-] = and has its sign vector ε = (ε 0 , ..., εk, ..., εj-ι) with if yk≥O and -1 otherwise,
CP2) on recherche le leader |5>| de |_y| par permutation de ses composantes pour les arranger dans l'ordre décroissant, CP3) on recherche le plus proche voisin de |j7| dansCP2) we are looking for the leader | 5> | of | _y | by permuting its components to arrange them in descending order, CP3) we are looking for the closest neighbor of | j7 | in
l'ensemble Lj (i) des leaders de Dj (en fait parmi les Mjthe set Lj (i) of DJ leaders (in fact among the Mj
premiers leaders de Lj en notant Mj le nombre de codes àfirst leaders of Lj by noting Mj the number of codes to
permutations de Dj ) . Comme indiqué ci-avant, cette étape revient à rechercher le leader de L° qui maximise le produit scalaire modifié parmi la liste des Mj leaders depermutations of Dj). As indicated above, this step amounts to finding the leader of L ° which maximizes the scalar product modified from the list of Mj leaders of
L° indiquée par la table de correspondance des index des leaders de Lj vers les index des leaders de L°. Si la dimension d'un leader x3' de L° est j'(j'≤j), le calcul de son produit scalaire avec n'est effectué que sur les j' premières composantes de , puis multiplié par l'inverse de la norme euclidienne de x3'.L ° indicated by the correspondence table of the Lj leader indexes to the L ° leader indexes. If the dimension of a leader x 3 'of L ° is j'(j'≤j), the computation of its scalar product with is only performed on the j 'first components of , then multiplied by the inverse of the Euclidean norm of x 3 '.
CP4) et on calcule l'index du rang de ce plus proche voisin de y dans Dj par la procédure d'indexation d'une union de codes à permutation à partir du numéro du code à permutation trouvé à l'étape précédente, du rang de la permutation effectuée à l'étape CP2) et du vecteur de signes déterminé à l'étape CP1) .CP4) and the index of the rank of this nearest neighbor of y in Dj is calculated by the procedure of indexing a union of permutation codes from the number of the permutation code found in the previous step, of the rank of the permutation carried out in step CP2) and of the vector of signs determined in step CP1).
En bref, l'étape CP2) peut être accélérée. En effet, si nj est le nombre maximum de composantes non nulles des leaders de Lj (i) , il suffit de rechercher les nj plus grandes composantes de M . On décrit maintenant un algorithme de décodage, au sens général, sans nécessairement utiliser 1imitâtivement une indexation d'union de codes à permutation décrite ci-avant en tant que réalisation avantageuse. L'algorithme de décodage se présente préférentiellement comme suit.In short, step CP2) can be accelerated. Indeed, if nj is the maximum number of non-zero components of the leaders of L j (i), it suffices to search for the nj largest components of M. We will now describe a decoding algorithm, in the general sense, without necessarily using the indexing of union of permutation codes described above as an advantageous embodiment. The decoding algorithm is preferably presented as follows.
A partir d'un index mj reçu, on détermine si cet indice correspond à un vecteur-code appartenant à DN _x ou à π3 From an index mj received, it is determined whether this index corresponds to a vector-code belonging to D N _ x or to π 3
Dans le premier cas, mj est associé à un index unique dansIn the first case, mj is associated with a unique index in
D'- __. , et le vecteur-code est obtenu par une simpleD'- __. , and the vector-code is obtained by a simple
lecture de table de correspondance .correspondence table reading.
Dans le deuxième cas, mj pointe sur un élément E*'^ ,-. (j'<j) et sur une règle d'insertion.In the second case, mj points to an element E * '^, - . (j '<j) and on an insertion rule.
La détermination de l'ap ^p^artenance de x mJ.j à D'{ Nτj - ,1 ou àThe determination of the ap ^ p ^ artenance of xm J. j to D '{N τj -, 1 or to
son complémentaire peut être effectuée de différentes façons. Par exemple, on peut utiliser une indication binaire pour chaque indice. On peut aussi pour chaque résolution i indexer les éléments du complémentaire Dj_,its complement can be carried out in different ways. For example, you can use a binary indication for each index. We can also for each resolution i index the elements of the complementary Dj_,
dans Dj en commençant par les éléments obtenus par extension contrôlée appartenant à £>' , suivis des élémentsin Dj starting with the elements obtained by controlled extension belonging to £> ', followed by the elements
"libres" appartenant à D'f . L'appartenance à D'J N _- ou à"free" belonging to D'f. Belonging to D ' J N _- or to
D,J NMj_,i est alors faite par de simples tests. De même, laD , J N M j_, i is then made by simple tests. Likewise, the
règle d'insertion peut être explicitement indexée ou non. Par exemple, dans les modes de réalisation décrits ci- après, la règle d'insertion est implicitement retrouvée à partir de l'index. On comprendra aussi que le compromis stockage/complexité d'indexation peut être ajusté en fonction des besoins de l'application.insertion rule can be explicitly indexed or not. For example, in the embodiments described below, the insertion rule is implicitly found from the index. It will also be understood that the compromise storage / indexing complexity can be adjusted according to the needs of the application.
On revient ici au cas particulier de la contrainte supplémentaire définie par l'union de codes à permutation.We return here to the particular case of the additional constraint defined by the union of permutation codes.
Préférentiellement, l'algorithme de décodage s'inspire du document : "Algori thme de Quantification Vectorielle Algébrique Sphérique par le Réseau de Gosset E8" , C. Lamblin, J.P. Adoul, Annales Des Télécommunications, n° 3-4, 1988, en utilisant en plus la table de correspondance des indices de leaders de Lj vers ceux de L°.Preferably, the decoding algorithm is inspired by the document: "Algorithm of Spherical Algebraic Vector Quantization by the Gosset Network E 8 ", C. Lamblin, JP Adoul, Annales Des Télécommunications, n ° 3-4, 1988, in additionally using the correspondence table of Lj leader indices to those of L °.
A partir de l'index d'un vecteur-code dans Dj , on détermine l'indice de son leader dans Lj(i), son rang dans son code à permutation et le signe de ses composantes non nulles. La table de correspondance donne alors l'index du leader dans L° qui alors est obtenu par une simple lecture de table stockée en mémoire ainsi que de son facteur de normalisation qui permet de normaliser le vecteur-code décodé .From the index of a vector code in Dj, we determine the index of its leader in L j (i), its rank in its permutation code and the sign of its non-zero components. The correspondence table then gives the leader's index in L ° which is then obtained by a simple reading of the table stored in memory as well as its normalization factor which makes it possible to normalize the decoded vector-code.
Un autre exemple de mise en oeuvre de la présente invention est donné ci-après. Cet exemple repose encore sur le codeur par transformée de type TDAC, mais pour une utilisation pour coder des signaux audio numériques échantillonnés à 32 kHz et de 15 kHz de largeur de bande (bande FM), contrairement à l'exemple donné ci-avant de l'utilisation du codeur TDAC en bande élargie pour coder des signaux audio numériques échantillonnés à 16 kHz.Another example of implementation of the present invention is given below. This example is still based on the TDAC transform coder, but for use in coding digital audio signals sampled at 32 kHz and 15 kHz bandwidth (FM band), in contrast to the example given above of the use of the TDAC encoder in wide band to encode digital audio signals sampled at 16 kHz.
Le principe de ce codeur est similaire à celui du codeur TDAC en bande élargie à 16 kHz. Le signal audio, limité en bande à 16 kHz et échantillonné maintenant à 32 kHz, est aussi découpé en trames de 20 ms . Ceci conduit après transformation MDCT à obtenir 640 coefficients. Le spectre est découpé en 52 bandes de largeurs inégales, la découpe de la bande élargie étant identique à la découpe effectuée par le codeur TDAC en bande élargie.The principle of this coder is similar to that of the TDAC coder in wide band at 16 kHz. The audio signal, band limited to 16 kHz and now sampled at 32 kHz, is also split into 20 ms frames. This leads after MDCT transformation to obtain 640 coefficients. The spectrum is cut into 52 bands of unequal widths, the cutting of the widened band being identical to the cutting carried out by the TDAC encoder in wide band.
Le tableau de la figure 8a donne la découpe en bandes utilisée et la dimension résultante du vecteur des coefficients (correspondant au nombre de coefficients indiqué à la troisième colonne) .The table in FIG. 8a gives the strip cutting used and the resulting dimension of the vector of the coefficients (corresponding to the number of coefficients indicated in the third column).
La quantification de l'enveloppe spectrale utilise aussi un codage d'Huffman et le débit variable restant est alloué dynamiquement aux coefficients à partir de la version déquantifiée de cette enveloppe spectrale.The quantification of the spectral envelope also uses Huffman coding and the remaining variable bit rate is dynamically allocated to the coefficients from the dequantified version of this spectral envelope.
La quantification des coefficients MDCT utilise des dictionnaires construits selon l'invention. Comme dans le cas décrit précédemment, les dictionnaires sont aussi structurés en union de codes à permutation. Pour les dimensions inférieures à 15, les quantificateurs vectoriels sont les mêmes que ceux de la bande élargie. On construit ainsi des dictionnaires pour les dimensions 16, 17,18, 19, 20 et 24. Pour la dimension 24, on a en outre combiné cette structure à la structure en produit cartésien. La dernière bande haute de 24 coefficients est découpée en deux vecteurs de dimension 12 : l'un est formé par les coefficients pairs, l'autre par les coefficients impairs. Ici, les quantificateurs vectoriels construits pour la dimension 12 ont été exploités .The quantification of the MDCT coefficients uses dictionaries constructed according to the invention. As in the case described above, the dictionaries are also structured in union of permutation codes. For dimensions less than 15, the vector quantizers are the same as those for the widened band. We build dictionaries for dimensions 16, 17, 18, 19, 20 and 24. For dimension 24, this structure has also been combined with the structure in Cartesian product. The last high band of 24 coefficients is cut into two vectors of dimension 12: one is formed by the even coefficients, the other by the odd coefficients. Here, the vector quantizers constructed for dimension 12 have been used.
Le tableau de la figure 8b donne le nombre de résolutions différentes ainsi que leurs valeurs pour les dimensions 1 à 24.The table in Figure 8b gives the number of different resolutions and their values for dimensions 1 to 24.
La présente invention fournit ainsi une solution efficace au problème de la quantification vectorielle à débit et à dimension variables. L'invention résout conjointement les deux problèmes de résolution et de dimension variables en prévoyant un quantificateur vectoriel dont les dictionnaires, pour les différentes dimensions et résolutions, possèdent les propriétés structurantes PR et PD ci-avant.The present invention thus provides an effective solution to the problem of vector quantization at variable speed and dimension. The invention jointly solves the two problems of variable resolution and dimension by providing a vector quantizer whose dictionaries, for the different dimensions and resolutions, have the structuring properties PR and PD above.
Pour une dimension donnée, l'imbrication des dictionnaires garantit, d'une part, la décroissance locale de la distorsion en fonction de la résolution et réduit, d'autre part, notablement la quantité de mémoire requise pour le stockage car les dictionnaires des résolutions inférieures n'ont pas à être stockés, tous les éléments de ces dictionnaires étant en effet dans le dictionnaire de résolution maximale. Par rapport au quantificateur vectoriel structuré en arbre des figures la et lb, le choix d'imbriquer les dictionnaires apporte donc déjà deux avantages: l'assurance d'une décroissance de la distorsion locale en fonction des résolutions croissantes et un stockage réduit. Elle permet aussi une grande finesse de résolution avec, si nécessaire, une granularité inférieure au bit, facilitant le choix de dictionnaires de tailles non obligatoirement égales à des puissances de 2. Cette granularité fine des résolutions est particulièrement intéressante si plusieurs vecteurs de dimension et/ou de résolution variables sont à quantifier par trame, en associant à ces quantificateurs de débit par vecteur non entier un algorithme de mise en train binaire des indices.For a given dimension, the nesting of the dictionaries guarantees, on the one hand, the local decrease in distortion depending on the resolution and, on the other hand, significantly reduces the amount of memory required for storage because the dictionaries of the resolutions do not have to be stored, since all the elements of these dictionaries are in the dictionary of maximum resolution. Compared to the vector quantizer structured in a tree of figures la and lb, the choice to nest the dictionaries therefore already brings two advantages: the assurance of a decrease in local distortion according to increasing resolutions and reduced storage. It also allows a great finesse of resolution with, if necessary, a granularity lower than the bit, facilitating the choice of dictionaries of sizes not necessarily equal to powers of 2. This fine granularity of the resolutions is particularly interesting if several vectors of dimension and / or of variable resolution are to be quantified by frame, by associating with these rate quantifiers by non-integer vector an algorithm for binary training of the indices.
La propriété d' imbrication PR des dictionnaires permet de n'avoir à stocker que les dictionnaires de résolution maximale. Grâce à la deuxième propriété PD, la quantité de mémoire de stockage est encore plus réduite. En effet, une partie des éléments des dictionnaires de résolution maximale n'a pas à être stockée car elle se déduit à partir d'éléments pris dans les dictionnaires de résolution maximale mais de dimension inférieure, en tenant compte de règles d'insertion {Rm} prédéfinies. La proportion d'éléments ainsi structurés est aisément adaptable et permet d'ajuster finement la quantité de mémoire de stockage.The PR nesting property of dictionaries means that you only have to store dictionaries of maximum resolution. Thanks to the second PD property, the amount of storage memory is even reduced. Indeed, a part of the elements of the dictionaries of maximum resolution does not have to be stored because it is deduced from elements taken in the dictionaries of maximum resolution but of smaller dimension, by taking account of insertion rules {R m } predefined. The proportion of elements thus structured is easily adaptable and allows fine adjustment of the amount of storage memory.
La structure induite par ces deux propriétés PR et PD permet donc de réduire avantageusement la mémoire nécessaire de stockage. Elle peut évidemment l'être davantage en imposant aux dictionnaires des contraintes structurelles supplémentaires telles que celles déjà mentionnées dans la partie introductive en référence à l'état de l'art ci-avant. Dans des modes de réalisation préférés, on prévoit par exemple l'utilisation de quantificateurs vectoriels spheriques, union de codes à permutation, combinée le cas échéant à la structure en produit cartésien décrite ci-avant.The structure induced by these two properties PR and PD therefore makes it possible to advantageously reduce the memory required for storage. It can obviously be even more so by imposing on dictionaries additional structural constraints such as those already mentioned in the introductory part with reference to the state of the art above. In preferred embodiments, for example, provision is made for the use of spherical vector quantizers, union of permutation codes, combined where appropriate with the Cartesian product structure described above.
Par rapport aux quantificateurs vectoriels algébriques, cette structure de dictionnaires induite par les deux propriétés offre une très grande souplesse de conception tant pour le choix des dimensions que pour celui des résolutions. De plus, ces quantificateurs vectoriels s'adaptent à la statistique de la source à coder et évitent ainsi le problème de la conception délicate d'un "companding vectoriel" obligatoire en quantification vectorielle algébrique pour rendre uniforme la distribution de la source à coder. Compared to the algebraic vector quantizers, this structure of dictionaries induced by the two properties offers a great flexibility of design as well for the choice of the dimensions as for that of the resolutions. In addition, these vector quantifiers adapt to the statistics of the source to be coded and thus avoid the problem of the delicate design of a mandatory "vector companding" in algebraic vector quantization to make the distribution of the source to be coded uniform.

Claims

REVENDICATIONS
1. Dictionnaire comportant des vecteurs-codes de dimension variable et destiné à être utilisé dans un dispositif de codage et/ou décodage en compression de signaux numériques, par quantification vectorielle à débit variable définissant une résolution variable, caractérisé en ce qu'il comporte : - d'une part, pour une dimension donnée, des dictionnaires de résolution croissante imbriqués les uns dans les autres,1. Dictionary comprising vector vectors of variable dimensions and intended for use in a coding and / or decoding device in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution, characterized in that it comprises: - on the one hand, for a given dimension, dictionaries of increasing resolution nested one inside the other,
- et, d'autre part, pour une dimension donnée, une union :- and, on the other hand, for a given dimension, a union:
• d'un premier ensemble constitué de vecteurs-codes construits en insérant, dans des vecteurs-codes de dictionnaires de dimension inférieure, des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion prédéterminées,A first set made up of vector-codes constructed by inserting, into code vectors of dictionaries of lower dimension, elements taken from a finite set of real numbers according to a finite set of predetermined insertion rules,
• et d'un deuxième ensemble constitué de vecteurs-codes ne pouvant être obtenus par insertion dans des vecteurs-codes de dimension inférieure des éléments dudit ensemble fini selon ledit jeu de règles d' insertion.• and of a second set made up of code vectors which cannot be obtained by inserting into code vectors of smaller dimension elements of said finite set according to said set of rules of insertion.
2. Dictionnaire selon la revendication 1, caractérisé en ce que ledit jeu de règles d'insertion est élaboré à partir de règles élémentaires consistant à insérer un seul élément de l'ensemble fini de réels en tant que composante à une position donnée d'un vecteur.2. Dictionary according to claim 1, characterized in that said set of insertion rules is elaborated from elementary rules consisting in inserting a single element of the finite set of real numbers as a component at a given position of a vector.
3. Dictionnaire selon la revendication 2, caractérisé en ce que chaque règle élémentaire est définie par un couple de deux entiers positifs représentatifs : -d'un rang de l'élément dans ledit ensemble fini, -et d'une position d'insertion.3. Dictionary according to claim 2, characterized in that each elementary rule is defined by a pair of two positive integers representative: of a rank of the element in said finished set, and of an insertion position.
4. Procédé pour former un dictionnaire selon l'une des revendications 1 à 3, le dictionnaire comportant des vecteurs-codes de dimension variable et destiné à être utilisé dans un dispositif de codage et/ou décodage en compression de signaux numériques, par quantification vectorielle à débit variable définissant une résolution variable, dans lequel, pour une dimension donnée : a) on construit un premier ensemble constitué de vecteurs- codes formés en insérant/supprimant dans des vecteurs- codes de dictionnaires de dimension inférieure/supérieure des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion/suppression prédéterminées, b) on construit, pour ladite dimension donnée, un premier dictionnaire, intermédiaire, comportant au moins ledit premier ensemble, c) et, pour adapter ledit dictionnaire à une utilisation avec au moins une résolution donnée, on construit, à partir du dictionnaire intermédiaire, un second dictionnaire, définitif, par imbrication/simplification de dictionnaires de résolutions croissantes/décroissantes, les dictionnaires de résolutions croissantes étant imbriqués les uns dans les autres du dictionnaire de plus petite résolution jusqu'au dictionnaire de plus grande résolution. 4. Method for forming a dictionary according to one of claims 1 to 3, the dictionary comprising code vectors of variable dimension and intended for use in a coding and / or decoding device in compression of digital signals, by vector quantization with variable bit rate defining a variable resolution, in which, for a given dimension: a) a first set is constructed consisting of vector-codes formed by inserting / deleting into vector-codes of dictionaries of lower / upper dimension elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, b) a first, intermediate dictionary is constructed for said given dimension, comprising at least said first set, c) and, to adapt said dictionary to a use with at least a given resolution, we build, from the intermediate dictionary, a second di ctionnaire, final, by nesting / simplification of dictionaries of increasing / decreasing resolutions, the dictionaries of increasing resolutions being nested one in the other of the dictionary of lower resolution until the dictionary of higher resolution.
5. Procédé selon la revendication 4, dans lequel, pour une dimension donnée N : aO) on obtient un dictionnaire initial de dimension initiale n, inférieure à ladite dimension donnée N, al) on construit un premier ensemble constitué de vecteurs-codes de dimension n+i formés en insérant dans des vecteurs-codes du dictionnaire initial des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d'insertion prédéterminées, a2) on prévoit un deuxième ensemble constitué de vecteurs- codes de dimension n+i ne pouvant être obtenus par insertion dans les vecteurs-codes du dictionnaire initial des éléments dudit ensemble fini avec ledit jeu de règles d' insertion, a3) on construit un dictionnaire intermédiaire, de dimension n+i comportant une union dudit premier ensemble et dudit second ensemble, et on répète, au plus N-n-1 fois, les étapes al) à a3) , avec ledit dictionnaire intermédiaire en tant que dictionnaire initial, jusqu'à ladite dimension donnée N.5. Method according to claim 4, in which, for a given dimension N: aO) an initial dictionary of initial dimension n is obtained, less than said given dimension N, a1) a first set is constructed consisting of code vectors of dimension n + i formed by inserting into vector codes of the initial dictionary elements taken from a finite set of real numbers according to a finite set of predetermined insertion rules, a2) a second set of code vectors of dimension n is provided + i which cannot be obtained by insertion into the code vectors of the initial dictionary of the elements of said finite set with said set of insertion rules, a3) an intermediate dictionary is constructed, of dimension n + i comprising a union of said first set and of said second set, and steps a1 to a3) are repeated, at most Nn-1 times, with said intermediate dictionary as an initial dictionary, up to said dimen given sion N.
6. Procédé selon la revendication 4, dans lequel, pour une dimension donnée N : a'O) on obtient un dictionnaire initial de dimension initiale n, supérieure à ladite dimension donnée N, a'1) on construit un premier ensemble, de dimension n-i, par sélection et extraction de vecteurs-codes possibles de dimension n-i dans le dictionnaire de dimension n, selon un jeu fini de règles de suppression prédéterminées, a' 2) on prévoit un deuxième ensemble constitué de vecteurs-codes de dimension n-i, ne pouvant être obtenus par suppression, dans les vecteurs-codes du dictionnaire initial, des éléments dudit ensemble fini avec ledit jeu de règles de suppression, a'3) on construit un dictionnaire intermédiaire, de dimension n-i comportant une union dudit premier ensemble et dudit second ensemble, et on répète, . au plus n-N-1 fois, les étapes a'1) à a'3), avec ledit dictionnaire intermédiaire en tant que dictionnaire initial, jusqu'à ladite dimension donnée N.6. Method according to claim 4, in which, for a given dimension N: a'O) an initial dictionary of initial dimension n is obtained, greater than said given dimension N, a'1) a first set is constructed, of dimension neither, by selection and extraction of possible code vectors of dimension nor in the dictionary of dimension n, according to a finite set of predetermined suppression rules, a '2) a second set is made up consisting of code vectors of dimension ni, ne obtainable by deletion, in the code vectors of the initial dictionary, of the elements of said finite set with said set of suppression rules, a'3) an intermediate dictionary, of dimension ni comprising a union of said first set and said second set, is constructed, and we repeat, . at most nN-1 times, steps a'1) to a'3), with said intermediate dictionary as initial dictionary, up to said given dimension N.
7. Procédé selon les revendications 5 et 6 , dans lequel on obtient N dictionnaires successifs de dimensions respectives 1 à N, à partir d'un dictionnaire initial de dimension n, par la mise en œuvre répétée des étapes al) à a3) pour les dimensions n+1 à N, et par la mise en œuvre répétée des étapes a'1) à a'3) pour les dimensions n-l à 1.7. Method according to claims 5 and 6, in which N successive dictionaries of respective dimensions 1 to N are obtained, from an initial dictionary of dimension n, by the repeated implementation of steps a1 to a3) for the dimensions n + 1 to N, and by the repeated implementation of steps a'1) to a'3) for dimensions nl to 1.
8. Procédé selon l'une des revendications 4 à 7, dans lequel ledit jeu de règles d'insertion/suppression est élaboré à partir de règles élémentaires consistant à insérer/supprimer un seul élément de l'ensemble fini de réels en tant que composante à une position donnée d'un vecteur.8. Method according to one of claims 4 to 7, in which said set of insertion / deletion rules is elaborated from elementary rules consisting in inserting / deleting a single element from the finite set of reals as a component at a given position of a vector.
9. Procédé selon la revendication 8, dans lequel chaque règle élémentaire est définie par un couple de deux entiers positifs représentatifs :9. Method according to claim 8, in which each elementary rule is defined by a pair of two representative positive integers:
-d'un rang de l'élément dans ledit ensemble fini, -et d'une position d'insertion/suppression. -a row of the element in said finished set, -and an insertion / removal position.
10. Procédé selon l'une des revendications 4 à 9, dans lequel on définit a priori ledit ensemble fini et ledit jeu de règles d' insertion/suppression, avant de construire le dictionnaire par analyse d'une source à quantifier.10. Method according to one of claims 4 to 9, in which one defines a priori said finite set and said set of rules of insertion / deletion, before constructing the dictionary by analysis of a source to be quantified.
11. Procédé selon la revendication 10, dans lequel ladite source est modélisée par une séquence d'apprentissage et la définition dudit ensemble fini et dudit jeu de règles d' insertion/suppression est effectuée par analyse statistique de ladite source.11. The method of claim 10, wherein said source is modeled by a training sequence and the definition of said finite set and of said set of insertion / deletion rules is carried out by statistical analysis of said source.
12. Procédé selon l'une des revendications 10 et 11, dans lequel ledit ensemble fini est choisi par estimation d'une densité de probabilité monodimensionnelle de ladite source .12. Method according to one of claims 10 and 11, wherein said finite set is chosen by estimation of a one-dimensional probability density of said source.
13. Procédé selon l'une des revendications 4 à 9, dans lequel on définit a posteriori ledit ensemble fini et ledit jeu de règles d'insertion/suppression, après construction de dictionnaires par imbrication/simplification de dictionnaires de résolutions successives, suivie d'une analyse statistique de ces dictionnaires ainsi construits.13. Method according to one of claims 4 to 9, in which said finite set and said set of insertion / deletion rules are defined a posteriori, after construction of dictionaries by nesting / simplification of dictionaries of successive resolutions, followed by a statistical analysis of these dictionaries thus constructed.
14. Procédé selon les revendications 10 et 13, dans lequel :14. Method according to claims 10 and 13, in which:
- on choisit, a priori, un premier ensemble et un premier jeu de règles d'insertion/suppression par analyse d'une séquence d'apprentissage, pour former un ou plusieurs dictionnaires intermédiaires,- a priori, a first set and a first set of insertion / deletion rules are chosen by analysis of a learning sequence, to form one or more intermediate dictionaries,
- on met à jour au moins une partie dudit premier ensemble et/ou dudit premier jeu de règles d'insertion/suppression, par analyse a posteriori desdits un ou plusieurs dictionnaires intermédiaires,- at least part of said first set is updated and / or of said first set of insertion / deletion rules, by a posteriori analysis of said one or more intermediate dictionaries,
- et, le cas échéant, on met à jour aussi au moins une partie de l'ensemble des vecteur-codes formant lesdits un ou plusieurs dictionnaires intermédiaires .- And, if necessary, at least part of the set of vector codes forming said one or more intermediate dictionaries is also updated.
15. Procédé selon l'une des revendications 4 à 14, dans lequel l'étape c) comporte les opérations suivantes : cO) on obtient un dictionnaire initial de résolution initiale rn, inférieure à ladite résolution donnée rN, cl) à partir du dictionnaire initial, on construit un dictionnaire intermédiaire de résolution rn+ι supérieure à la résolution initiale rn, c2) on répète l'opération cl) jusqu'à atteindre la résolution donnée rN.15. Method according to one of claims 4 to 14, in which step c) comprises the following operations: cO) an initial dictionary of initial resolution r n , less than said given resolution r N , cl) is obtained from from the initial dictionary, an intermediate dictionary of resolution r n + ι greater than the initial resolution r n , c2 is constructed. operation cl) is repeated until the given resolution r N is reached.
16. Procédé selon la revendication 15, dans lequel, pour chaque itération de l'opération cl), on prévoit une construction de classes et de centroïdes dans laquelle les centroïdes appartenant au moins aux dictionnaires de résolution supérieure à une résolution courante τ_ sont recalculés et mis à jour.16. The method as claimed in claim 15, in which, for each iteration of operation cl), provision is made for the construction of classes and centroids in which the centroids belonging to at least the dictionaries of resolution higher than a current resolution τ_ are recalculated and update.
17. Procédé selon la revendication 16, dans lequel les centroïdes qui appartiennent aux dictionnaires de résolution inférieure à une résolution courante ri ne sont mis à jour que si les distorsions totales de tous les dictionnaires de résolution inférieure sont décroissantes d'une mise à jour à l'autre. 17. The method as claimed in claim 16, in which the centroids which belong to the dictionaries of resolution lower than a current resolution ri are only updated if the total distortions of all the dictionaries of lower resolution are decreasing from update to the other.
18. Procédé selon l'une des revendications 4 à 14, dans lequel l'étape c) comporte les opérations suivantes : c'O) on obtient un dictionnaire initial de résolution initiale rn/ supérieure à ladite résolution donnée rN, c'I) à partir du dictionnaire initial, on construit un dictionnaire intermédiaire de résolution rn-i inférieure à la résolution initiale rn, par partition du dictionnaire initial en plusieurs sous-ensembles ordonnés selon un critère prédéterminé, et c'2) on répète l'opération c'I) jusqu'à atteindre la résolution donnée rN.18. Method according to one of claims 4 to 14, in which step c) comprises the following operations: c'O) an initial dictionary of initial resolution r n / greater than said given resolution r N , c 'is obtained I) from the initial dictionary, an intermediate dictionary of resolution r n -i lower than the initial resolution r n is constructed , by partitioning the initial dictionary into several subsets ordered according to a predetermined criterion, and c'2) we repeat operation c'I) until reaching the resolution given r N.
19. Procédé selon la revendication 18, dans lequel ledit critère prédéterminé est choisi parmi le cardinal des sous-ensembles, une sollicitation des sous-ensembles dans une séquence d'apprentissage, une contribution des sous- ensembles à une distorsion totale ou préférentiellement à une décroissance de cette distorsion.19. The method of claim 18, wherein said predetermined criterion is chosen from the cardinality of the subsets, a solicitation of the subsets in a learning sequence, a contribution of the subsets to a total distortion or preferably to a decrease of this distortion.
20. Procédé selon l'une des revendications 18 et 19, dans lequel ladite partition utilise une partie au moins desdites règles d'insertion/suppression.20. Method according to one of claims 18 and 19, wherein said partition uses at least part of said insertion / deletion rules.
21. Procédé selon les revendications 15 et 18, dans lequel on obtient N dictionnaires successifs de résolutions respectives ri à rN, à partir d'un dictionnaire initial de résolution intermédiaire rn, par la mise en œuvre répétée de l'étape cl) pour les résolutions croissantes rn+ι à rN, et par la mise en œuvre répétée de l'étape c'I) pour les résolutions décroissantes rn_ι à rx. 21. The method of claims 15 and 18, in which N successive dictionaries of respective resolutions ri to r N are obtained, from an initial dictionary of intermediate resolution r n , by the repeated implementation of step cl) for increasing resolutions r n + ι to r N , and by the repeated implementation of step c'I) for decreasing resolutions r n _ι to r x .
22. Procédé selon l'une des revendications 4 à 21, dans lequel, pour adapter ledit dictionnaire à une utilisation avec une dimension donnée N de vecteurs-codes, on inverse sensiblement les étapes a) et b) , d'une part, et l'étape c) , d'autre part, de sorte que : - à l'étape c) , on construit, à partir d'un dictionnaire initial de résolution rn et de dimension N' , un premier dictionnaire, intermédiaire, toujours de dimension N1 mais de résolution r supérieure/inférieure, par imbrication/simplification de dictionnaires de résolutions croissantes/décroissantes, pour atteindre sensiblement la résolution rN dudit premier dictionnaire,22. Method according to one of claims 4 to 21, in which, to adapt said dictionary to use with a given dimension N of vector-codes, steps a) and b) are substantially reversed, on the one hand, and step c), on the other hand, so that: - in step c), we build, from an initial dictionary of resolution r n and of dimension N ', a first dictionary, intermediate, always of dimension N 1 but of higher / lower resolution r, by nesting / simplification of dictionaries of increasing / decreasing resolutions, in order to substantially reach the resolution r N of said first dictionary,
- à l'étape a), pour atteindre la dimension donnée N, on construit un premier ensemble constitué de vecteurs-codes formés en insérant/supprimant, dans des vecteurs-codes du premier dictionnaire de dimension N' inférieure/supérieure à ladite dimension donnée N, des éléments pris dans un ensemble fini de nombres réels selon un jeu fini de règles d' insertion/suppression prédéterminées, et, à l'étape b) , suite à une étape éventuelle d'adaptation définitive à la résolution rN, on construit, pour ladite dimension donnée N, un second dictionnaire, définitif, comportant au moins ledit premier ensemble.- in step a), to reach the given dimension N, a first set of code vectors formed is constructed by inserting / deleting, in code vectors of the first dictionary of dimension N ′ lower / greater than said given dimension N, elements taken from a finite set of real numbers according to a finite set of predetermined insertion / deletion rules, and, in step b), following a possible step of final adaptation to the resolution r N , we constructs, for said given dimension N, a second dictionary, definitive, comprising at least said first set.
23. Procédé selon l'une des revendications 4 à 22, dans lequel on stocke dans une mémoire, une fois pour toutes, ledit jeu de règles d'insertion/suppression, identifiées chacune par un indice (lr) , et, pour une dimension donnée :23. Method according to one of claims 4 to 22, in which said set of insertion / deletion rules, each identified by an index (l r ), is stored in a memory, once and for all, and, for a given dimension:
- ledit deuxième ensemble constitué de vecteurs-codes ne pouvant être obtenus par application de 1 ' insertion/suppression à des vecteurs-codes de dimension inférieure/supérieure à la dimension donnée selon ledit jeu de règles d' insertion/suppression, - ainsi qu'au moins une table de correspondance permettant de reconstituer un vecteur-code quelconque du dictionnaire de dimension donnée, en utilisant les indices des règles d' insertion/suppression et des indices identifiant des éléments dudit second ensemble, ce qui permet d'éviter le stockage complet du dictionnaire pour ladite dimension donnée, en stockant simplement les éléments dudit second ensemble et des liens dans la table de correspondance pour accéder à ces éléments et aux règles d' insertion/suppression associées.- Said second set consisting of code vectors which cannot be obtained by application of 1 insertion / deletion to code vectors of dimension lower / greater than the dimension given according to said set of rules of insertion / deletion, - as well as at least one correspondence table making it possible to reconstruct any vector code from the dictionary of given dimension, using the indices of the insertion / deletion rules and indices identifying elements of said second set, which makes it possible to avoid the complete storage of the dictionary for said given dimension, by simply storing the elements of said second set and links in the correspondence table to access these elements and the associated insertion / deletion rules.
24. Procédé selon la revendication 23, dans lequel les tables de correspondances sont élaborées au préalable, pour chaque indice (m3) d'un vecteur-code (x3) du dictionnaire (DJNj) de dimension donnée (j) pouvant être reconstruit à partir d'éléments d'indices courants (m') dans le second ensemble de dimension courante (j ' ) , par une tabulation de trois valeurs scalaires entières représentant :24. The method of claim 23, wherein the correspondence tables are prepared beforehand, for each index (m 3 ) of a vector code (x 3 ) of the dictionary (D J N j ) of given dimension (j) can be reconstructed from elements of current indices (m ') in the second set of current dimension (j'), by a tabulation of three integer scalar values representing:
- une dimension courante (j ' ) dudit second ensemble,- a current dimension (j ') of said second set,
- un indice courant (m') d'un élément du second ensemble, et- a current index (m ') of an element of the second set, and
- un indice (lr) de règle d'insertion/suppression, cette règle d'insertion/suppression au moins contribuant à reconstituer ledit vecteur-code (XJ) du dictionnaire (D3 Nj) de dimension donnée (j), en appliquant l'insertion/suppression à l'élément dudit indice courant (m') et de ladite dimension courante (j ' ) . - an index (l r ) of insertion / deletion rule, this insertion / deletion rule at least contributing to reconstruct said vector-code (XJ) of the dictionary (D 3 N j) of given dimension (j), applying the insertion / deletion to the element of said current index (m ') and said current dimension (j').
25. Utilisation du dictionnaire obtenu par la mise en œuvre du procédé selon l'une des revendications 23 et 24, au codage/décodage en compression de signaux numériques, par quantification vectorielle à débit variable définissant une résolution variable, dans laquelle on recherche le vecteur-code (x3) le plus proche voisin d'un vecteur d'entrée y= (yo.—.yk/—#yj-ι) dans un dictionnaire (Dx j) de dimension donnée (j), et comprenant les étapes suivantes :25. Use of the dictionary obtained by the implementation of the method according to one of claims 23 and 24, in coding / decoding in compression of digital signals, by vector quantization at variable bit rate defining a variable resolution, in which the vector is sought. -code (x 3 ) closest to an input vector y = (yo .—. yk / - # yj-ι) in a dictionary (D x j ) of given dimension (j), and including the following steps :
COI) pour un indice courant (m3) dudit vecteur-code (x3) recherché, reconstitution au moins partielle d'un vecteur- code d'indice (m') correspondant audit indice courant (m3) , au moins par lecture préalable des indices (j',m',lr) figurant dans les tables de correspondance permettant d'élaborer ledit dictionnaire,COI) for a current index (m 3 ) of said sought vector code (x 3 ), at least partial reconstruction of an index code vector (m ') corresponding to said current index (m 3 ), at least by reading preliminary indices (j ', m', l r ) appearing in the correspondence tables making it possible to develop said dictionary,
C02) au moins au codage, calcul d'une distance entre le vecteur d'entrée et le vecteur-code reconstitué à l'étape COI) ,C02) at least during coding, calculation of a distance between the input vector and the vector-code reconstructed in step COI),
C03) au moins au codage, répétition des étapes COI) et C02) , pour tous les indices courants dans ledit dictionnaire,C03) at least during coding, repetition of steps COI) and C02), for all the current indices in said dictionary,
C04) au moins au codage, identification de l'indice (mmin) du vecteur-code au moins partiellement reconstitué dont la distance (dmin) avec le vecteur d'entrée, calculée au cours de l'une des itérations de l'étape C02) , est la plus petite, etC04) at least during coding, identification of the index (m m i n ) of the at least partially reconstructed code vector, the distance (d m i n ) of which with the input vector, calculated during one of the iterations of step C02), is the smallest, and
C05) au moins au décodage, détermination du plus proche voisin du vecteur d'entrée (y) en tant que vecteur-code (x3) dont l'indice (mmin) a été identifié à l'étape C04) . C05) at least on decoding, determination of the nearest neighbor of the input vector (y) as a code vector (x 3 ) whose index (m m i n ) was identified in step C04).
26. Utilisation selon la revendication 25, dans laquelle l'étape COI), au moins au décodage, comporte :26. Use according to claim 25, in which step COI), at least during decoding, comprises:
COU) la lecture, dans les tables de correspondance, d'indices représentatifs de liens vers ledit second ensemble et vers les règles d' insertion/suppression et incluant : l'indice d'une dimension courante d'un sous-ensemble dudit second ensemble, l'indice courant d'un élément dudit sous-ensemble, et l'indice de la règle d' insertion/suppression appropriée pour la construction du vecteur-code du dictionnaire de dimension donnée, à partir dudit élément , C012) la lecture, dans le sous-ensemble identifié par sa dimension courante, dudit élément identifié par son indice courant ,COU) reading, in the correspondence tables, indices indicative of links to said second set and to the insertion / deletion rules and including: the index of a current dimension of a subset of said second set , the current index of an element of said subset, and the index of the insertion / deletion rule appropriate for the construction of the vector-code of the dictionary of given dimension, from said element, C012) reading, in the subset identified by its current dimension, of said element identified by its current index,
C013) la reconstitution complète du vecteur-code à ladite dimension donnée en appliquant audit élément lu à l'étape C012) la règle d'insertion/suppression appropriée et identifiée par son indice lu à l'étape COU) .C013) the complete reconstruction of the vector-code at said given dimension by applying to said element read in step C012) the appropriate insertion / deletion rule and identified by its index read in step COU).
27. Utilisation selon la revendication 25, dans laquelle, au codage,27. Use according to claim 25, in which, on coding,
* l'étape COI) comporte :* the COI stage) includes:
COU) la lecture, dans les tables de correspondance, d'indices représentatifs de liens vers ledit second ensemble et vers les règles d'insertion/suppression et incluant : l'indice d'une dimension courante d'un sous-ensemble dudit second ensemble, l'indice courant d'un élément dudit sous-ensemble, - et l'indice de la règle d' insertion/suppression appropriée pour la construction du vecteur-code du dictionnaire de dimension donnée, C012) la lecture, dans le sous-ensemble identifié par sa dimension courante, dudit élément identifié par son indice courant,COU) reading, in the correspondence tables, indices indicative of links to said second set and to the insertion / deletion rules and including: the index of a current dimension of a subset of said second set , the current index of an element of said subset, - and the index of the appropriate insertion / deletion rule for the construction of the vector code of the dictionary of given dimension, C012) the reading, in the subset identified by its current dimension, of said element identified by its current index ,
* à l'étape C02) , on calcule ladite distance en fonction d'un critère de distorsion estimé en fonction de : l'indice de la règle d'insertion/suppression, et de l'élément du sous-ensemble identifié par son indice courant, ce qui permet de ne construire que partiellement le vecteur-code à ladite dimension donnée à l'étape COI), en réservant la reconstruction complète simplement au décodage .* in step C02), said distance is calculated according to a distortion criterion estimated as a function of: the index of the insertion / deletion rule, and of the element of the subset identified by its index current, which makes it possible to only partially construct the vector-code at said dimension given in step COI), by reserving the complete reconstruction simply for decoding.
28. Utilisation selon l'une des revendications 25 à 27, dans laquelle on prévoit en outre une propriété structurante supplémentaire selon une union de codes à permutation et exploitant une indexation de ladite union de codes à permutation, et dans laquelle :28. Use according to one of claims 25 to 27, in which an additional structuring property is further provided according to a union of permutation codes and exploiting an indexing of said union of permutation codes, and in which:
CP1) à partir d'un signal d'entrée, on forme un vecteur d'entrée y=(yo, —, yk, -.-, Yj-i) défini par son vecteur absolu |J| = (|JO|'",»|Λ|'",J yj-ι ) et Par un vecteur signe ε = {εϋ,...,εk,...,εj_λ) avec εk =±l ,CP1) from an input signal, an input vector y = (y o , -, yk, -.-, Yj-i) defined by its absolute vector | J | = (| JO | '" , » | Λ |'" , J yj-ι) and P ar a sign vector ε = {ε ϋ , ..., ε k , ..., ε j _ λ ) with ε k = ± l,
CP2) on range les composantes du vecteur |y| par valeurs décroissantes, par permutation, pour obtenir un vecteur leader |j| ,CP2) the components of the vector | y | by decreasing values, by permutation, to obtain a leading vector | j | ,
CP3) on détermine, parmi les leaders du dictionnaire Di de dimension j, un plus proche voisin x3' du vecteur leader |j| , CP4) on détermine un index du rang dudit plus proche voisin x3' dans le dictionnaire D ,CP3) we determine, among the leaders of the dictionary Di of dimension j, a nearest neighbor x 3 'of the vector leader | j | , CP4) an index of the rank of said nearest neighbor x 3 ′ is determined in the dictionary D,
CP5) et l'on applique une valeur effective de codage/décodage au vecteur d'entrée, qui est fonction dudit index déterminé à l'étape CP4) , de la ladite permutation déterminée à l'étape CP2) et dudit vecteur signe déterminé à l'étape CP1) .CP5) and an effective encoding / decoding value is applied to the input vector, which is a function of said index determined in step CP4), of said permutation determined in step CP2) and of said sign vector determined in step CP1).
29. Utilisation selon l'une des revendications 25 à 28, dans laquelle on stocke au moins lesdites tables de correspondance dans une mémoire d'un dispositif de codage/décodage .29. Use according to one of claims 25 to 28, in which at least said correspondence tables are stored in a memory of an encoding / decoding device.
30. Produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre du procédé selon l'une des revendications 4 à 24.30. Computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal, or on a removable memory medium and intended to cooperate with a reader of the unit treatment, characterized in that it includes instructions for implementing the method according to one of claims 4 to 24.
31. Produit programme d'ordinateur destiné à être stocké dans une mémoire d'une unité de traitement, notamment d'un ordinateur ou d'un terminal mobile intégrant un dispositif de codage/décodage, ou sur un support mémoire amovible et destiné à coopérer avec un lecteur de l'unité de traitement, caractérisé en ce qu'il comporte des instructions pour la mise en œuvre de l'application au codage/décodage en compression selon l'une des revendications 25 à 29, 31. Computer program product intended to be stored in a memory of a processing unit, in particular of a computer or of a mobile terminal incorporating an encoding / decoding device, or on a removable memory medium and intended to cooperate with a reader of the processing unit, characterized in that it includes instructions for implementing the application for coding / decoding in compression according to one of claims 25 to 29,
EP04706703A 2004-01-30 2004-01-30 Dimensional vector and variable resolution quantisation Withdrawn EP1709743A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2004/000219 WO2005083889A1 (en) 2004-01-30 2004-01-30 Dimensional vector and variable resolution quantisation

Publications (1)

Publication Number Publication Date
EP1709743A1 true EP1709743A1 (en) 2006-10-11

Family

ID=34896839

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04706703A Withdrawn EP1709743A1 (en) 2004-01-30 2004-01-30 Dimensional vector and variable resolution quantisation

Country Status (6)

Country Link
US (1) US7680670B2 (en)
EP (1) EP1709743A1 (en)
JP (1) JP4579930B2 (en)
KR (1) KR101190875B1 (en)
CN (1) CN1906855B (en)
WO (1) WO2005083889A1 (en)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007003231A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc Vector crc computation on dsp
US7587314B2 (en) * 2005-08-29 2009-09-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
US7974713B2 (en) * 2005-10-12 2011-07-05 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Temporal and spatial shaping of multi-channel audio signals
FR2897742A1 (en) * 2006-02-17 2007-08-24 France Telecom PERFECT ENCODING / DECODING OF DIGITAL SIGNALS, IN PARTICULAR VECTOR QUANTIFICATION WITH PERMUTATION CODES
BRPI0708267A2 (en) 2006-02-24 2011-05-24 France Telecom binary coding method of signal envelope quantification indices, decoding method of a signal envelope, and corresponding coding and decoding modules
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8285544B2 (en) * 2006-03-21 2012-10-09 France Telecom Restrained vector quantisation
US8091006B2 (en) * 2006-06-02 2012-01-03 Nec Laboratories America, Inc. Spherical lattice codes for lattice and lattice-reduction-aided decoders
WO2008047795A1 (en) * 2006-10-17 2008-04-24 Panasonic Corporation Vector quantization device, vector inverse quantization device, and method thereof
US7953595B2 (en) 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US8019804B2 (en) * 2007-03-26 2011-09-13 City University Of Hong Kong Method and apparatus for calculating an SSD and encoding a video signal
US7925783B2 (en) * 2007-05-23 2011-04-12 Microsoft Corporation Transparent envelope for XML messages
ATE538540T1 (en) * 2007-06-21 2012-01-15 Koninkl Philips Electronics Nv METHOD FOR CODING VECTORS
CN100583649C (en) * 2007-07-23 2010-01-20 华为技术有限公司 Method and apparatus for encoding/decoding vector as well as flow medium player
CN101335004B (en) * 2007-11-02 2010-04-21 华为技术有限公司 Method and apparatus for multi-stage quantization
RU2461079C2 (en) * 2008-02-15 2012-09-10 Нокиа Корпорейшн Simplified vector indexing and deindexing
EP2274833B1 (en) * 2008-04-16 2016-08-10 Huawei Technologies Co., Ltd. Vector quantisation method
FR2931963A1 (en) * 2008-06-02 2009-12-04 Centre Nat Rech Scient METHOD OF PROCESSING DIGITAL DATA
FR2931964A1 (en) * 2008-06-02 2009-12-04 Centre Nat Rech Scient METHOD OF ENCRYPTING VECTORS IN REGULAR NETWORKS OF POINTS.
GB2464447B (en) * 2008-07-01 2011-02-23 Toshiba Res Europ Ltd Wireless communications apparatus
CN101577551A (en) 2009-05-27 2009-11-11 华为技术有限公司 Method and device for generating lattice vector quantization codebook
EP2525354B1 (en) * 2010-01-13 2015-04-22 Panasonic Intellectual Property Corporation of America Encoding device and encoding method
EP2539892B1 (en) * 2010-02-26 2014-04-02 Orange Multichannel audio stream compression
EP2559036A1 (en) * 2010-04-15 2013-02-20 Ramot at Tel-Aviv University Ltd. Multiple programming of flash memory without erase
JP5258915B2 (en) * 2011-02-28 2013-08-07 株式会社デンソーアイティーラボラトリ Feature conversion device, similar information search device including the same, coding parameter generation method, and computer program
US8756262B2 (en) 2011-03-01 2014-06-17 Splunk Inc. Approximate order statistics of real numbers in generic data
US20160019900A1 (en) * 2013-02-01 2016-01-21 Nokia Technologies Oy Method and apparatus for lattice vector quantization of an audio signal
US9444580B2 (en) 2013-08-06 2016-09-13 OptCTS, Inc. Optimized data transfer utilizing optimized code table signaling
US9455799B2 (en) 2013-08-06 2016-09-27 OptCTS, Inc. Dynamic control of quality of service (QOS) using derived QOS measures
US10523490B2 (en) 2013-08-06 2019-12-31 Agilepq, Inc. Authentication of a subscribed code table user utilizing optimized code table signaling
JP6337122B2 (en) * 2013-12-17 2018-06-06 ノキア テクノロジーズ オサケユイチア Audio signal encoder
US9640376B1 (en) 2014-06-16 2017-05-02 Protein Metrics Inc. Interactive analysis of mass spectrometry data
WO2016004185A1 (en) * 2014-07-02 2016-01-07 OptCTS, Inc. Data recovery utilizing optimized code table signaling
US9385751B2 (en) * 2014-10-07 2016-07-05 Protein Metrics Inc. Enhanced data compression for sparse multidimensional ordered series data
SE538512C2 (en) 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
US10354421B2 (en) 2015-03-10 2019-07-16 Protein Metrics Inc. Apparatuses and methods for annotated peptide mapping
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
US20170214413A1 (en) * 2016-01-21 2017-07-27 HGST Netherlands B.V. Joint source-channel coding with dynamic dictionary for object-based storage
EP3335215B1 (en) 2016-03-21 2020-05-13 Huawei Technologies Co., Ltd. Adaptive quantization of weighted matrix coefficients
KR102477070B1 (en) 2016-06-06 2022-12-12 아길렙큐 인코포레이티드 Data conversion system and method
US10319573B2 (en) 2017-01-26 2019-06-11 Protein Metrics Inc. Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data
US10546736B2 (en) 2017-08-01 2020-01-28 Protein Metrics Inc. Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US11626274B2 (en) 2017-08-01 2023-04-11 Protein Metrics, Llc Interactive analysis of mass spectrometry data including peak selection and dynamic labeling
US10510521B2 (en) 2017-09-29 2019-12-17 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US11640901B2 (en) 2018-09-05 2023-05-02 Protein Metrics, Llc Methods and apparatuses for deconvolution of mass spectrometry data
US10936810B2 (en) 2018-12-04 2021-03-02 International Business Machines Corporation Token embedding based on target-context pairs
US11625393B2 (en) * 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
EP3738080A1 (en) * 2019-04-01 2020-11-18 Google LLC Learning compressible features
US11346844B2 (en) 2019-04-26 2022-05-31 Protein Metrics Inc. Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation
TWI777464B (en) * 2019-10-08 2022-09-11 創未來科技股份有限公司 Signal converting apparatus and signal converting method
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
JP2023544647A (en) 2020-08-31 2023-10-24 プロテイン・メトリクス・エルエルシー Data compression for multidimensional time series data
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations
CN116050460B (en) * 2023-03-23 2023-06-27 中南大学 Air temperature data spatial interpolation method based on attention neural network
CN117041359B (en) * 2023-10-10 2023-12-22 北京安视华业科技有限责任公司 Efficient compression transmission method for information data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922535A (en) * 1986-03-03 1990-05-01 Dolby Ray Milton Transient control aspects of circuit arrangements for altering the dynamic range of audio signals
US4969192A (en) * 1987-04-06 1990-11-06 Voicecraft, Inc. Vector adaptive predictive coder for speech and audio
US5182773A (en) * 1991-03-22 1993-01-26 International Business Machines Corporation Speaker-independent label coding apparatus
US5765127A (en) * 1992-03-18 1998-06-09 Sony Corp High efficiency encoding method
JP3404837B2 (en) * 1993-12-07 2003-05-12 ソニー株式会社 Multi-layer coding device
US5890110A (en) * 1995-03-27 1999-03-30 The Regents Of The University Of California Variable dimension vector quantization
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5778335A (en) * 1996-02-26 1998-07-07 The Regents Of The University Of California Method and apparatus for efficient multiband celp wideband speech and music coding and decoding
US5809459A (en) * 1996-05-21 1998-09-15 Motorola, Inc. Method and apparatus for speech excitation waveform coding using multiple error waveforms
JP3707154B2 (en) * 1996-09-24 2005-10-19 ソニー株式会社 Speech coding method and apparatus
JP3707153B2 (en) * 1996-09-24 2005-10-19 ソニー株式会社 Vector quantization method, speech coding method and apparatus
US5832443A (en) * 1997-02-25 1998-11-03 Alaris, Inc. Method and apparatus for adaptive audio compression and decompression
US6233550B1 (en) * 1997-08-29 2001-05-15 The Regents Of The University Of California Method and apparatus for hybrid coding of speech at 4kbps
US6098037A (en) * 1998-05-19 2000-08-01 Texas Instruments Incorporated Formant weighted vector quantization of LPC excitation harmonic spectral amplitudes
US6141638A (en) * 1998-05-28 2000-10-31 Motorola, Inc. Method and apparatus for coding an information signal
FR2783661B1 (en) * 1998-09-17 2000-12-08 Thomson Multimedia Sa METHOD FOR COMPRESSING GRAPHIC DATA
FR2791166B1 (en) * 1999-03-17 2003-01-10 Matra Nortel Communications ENCODING, DECODING AND TRANSCODING METHODS
US6421467B1 (en) * 1999-05-28 2002-07-16 Texas Tech University Adaptive vector quantization/quantizer
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US20040176950A1 (en) * 2003-03-04 2004-09-09 Docomo Communications Laboratories Usa, Inc. Methods and apparatuses for variable dimension vector quantization
US20070067166A1 (en) * 2003-09-17 2007-03-22 Xingde Pan Method and device of multi-resolution vector quantilization for audio encoding and decoding

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US20070162236A1 (en) 2007-07-12
KR101190875B1 (en) 2012-10-15
KR20060129417A (en) 2006-12-15
JP4579930B2 (en) 2010-11-10
CN1906855A (en) 2007-01-31
JP2007523530A (en) 2007-08-16
US7680670B2 (en) 2010-03-16
WO2005083889A1 (en) 2005-09-09
CN1906855B (en) 2014-04-02

Similar Documents

Publication Publication Date Title
WO2005083889A1 (en) Dimensional vector and variable resolution quantisation
RU2326450C2 (en) Method and device for vector quantisation with reliable prediction of linear prediction parameters in voice coding at variable bit rate
EP1692689B1 (en) Optimized multiple coding method
Gray Vector quantization
FR2700632A1 (en) Predictive coding-decoding system for a digital nested code adaptive transform speech signal.
EP2183851A1 (en) Encoding/decoding by symbol planes with dynamic calculation of probability tables
EP1692687B1 (en) Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression
EP2289171B1 (en) Method for processing numerical data
WO2013057453A2 (en) Improved hierarchical coding
WO2007107659A2 (en) Restrained vector quantisation
EP2652735B1 (en) Improved encoding of an improvement stage in a hierarchical encoder
EP2289172B1 (en) Method for enumeration of vectors in a regular lattice of points
EP1756806B1 (en) Method for quantifying an ultra low-rate speech encoder
WO2011144863A1 (en) Encoding with noise shaping in a hierarchical encoder
Motta et al. Trellis vector residual quantization
BOUZID et al. Split Multi-Stage Vector Quantization Based Steganography for Secure Wideband Speech Coder
Bouzid et al. Channel optimized switched split vector quantization for wideband speech LSF parameters
Fischer et al. High-quality audio transform coded excitation using trellis codes
FR2992458A1 (en) Method for compression and decompression of audio, involves providing fast Fourier transform or cosine modified discrete transformed, and taking local redundancies such as successive and non-successive repetitions into account
MXPA06008536A (en) Dimensional vector and variable resolution quantisation
Jahangiri et al. Scalable speech coding at rates below 900 BPS
FR2842670A1 (en) Device and method for an improved compression of digital data, comprises input of two data flows and coding of symbols by use of table and by selecting redundant words
EP1037390A1 (en) Method for coding, decoding and transcoding an audio signal
Oshima et al. Variable-length coding of ACELP gain using Entropy-Constrained VQ
Moreno Variable frame size for vector quantization and application to speech coding

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20060714

AK Designated contracting states

Kind code of ref document: A1

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

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

Owner name: FRANCE TELECOM

17Q First examination report despatched

Effective date: 20120710

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

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

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

18D Application deemed to be withdrawn

Effective date: 20170801