WO2005083889A1 - Quantification vectorielle en dimension et resolution variables - Google Patents

Quantification vectorielle en dimension et resolution variables Download PDF

Info

Publication number
WO2005083889A1
WO2005083889A1 PCT/FR2004/000219 FR2004000219W WO2005083889A1 WO 2005083889 A1 WO2005083889 A1 WO 2005083889A1 FR 2004000219 W FR2004000219 W FR 2004000219W WO 2005083889 A1 WO2005083889 A1 WO 2005083889A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimension
dictionary
vector
resolution
dictionaries
Prior art date
Application number
PCT/FR2004/000219
Other languages
English (en)
Inventor
Claude Lamblin
David Virette
Balazs Kovesi
Dominique Massaloux
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to KR1020067017487A priority Critical patent/KR101190875B1/ko
Priority to US10/587,907 priority patent/US7680670B2/en
Priority to JP2006550218A priority patent/JP4579930B2/ja
Priority to CN200480041141.2A priority patent/CN1906855B/zh
Priority to PCT/FR2004/000219 priority patent/WO2005083889A1/fr
Priority to EP04706703A priority patent/EP1709743A1/fr
Publication of WO2005083889A1 publication Critical patent/WO2005083889A1/fr

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • 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

  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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,
  • 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:
  • 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.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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);
  • the finished set and / or the set of insertion rules may or may not be dependent on the dimensions.
  • 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.
  • 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.
  • 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 second category is preferentially used to build multidimensional and multiresolution dictionaries having the two structuring properties.
  • 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 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 algorithm then preferably takes place according to the following example:
  • 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 '.
  • 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.
  • 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.

Landscapes

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

Abstract

La présente invention concerne le codage et/ou décodage en compression de signaux numériques, en particulier par quantification vectorielle à débit variable définissant une résolution variable. Elle vise à cet effet un dictionnaire à impulsions comportant d'une part, pour une dimension donnée, des dictionnaires de résolution croissante imbriqués les uns dans les autres, et, d'autre part, pour une dimension donnée, une union d'un ensemble (D'iN) de vecteurs-codes construits en insérant, dans des vecteurs-codes de dimension inférieure, des éléments pris dans un ensemble fini (A) selon un jeu fini de règles d'insertion prédéterminées (Fl), et d'un deuxième ensemble constitué de vecteurs-codes (Y') ne pouvant être obtenus par insertion dans des vecteurs-codes de dimension inférieure selon ce jeu de règles d'insertion.

Description

QUANTIFICATION VECTORIELLE EN DIMENSION ET RESOLUTION VARIABLES
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.
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 :
Figure imgf000003_0001
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" .
Le débit par dimension (r) du quantificateur (ou encore sa "résolution" ) est défini par 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.
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) .
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 .
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.
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.
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.
Les techniques décrites ci-dessus relèvent toutes d'une approche statistique.
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.
On présente ci-après certains aspects d'une quantification à dimension variable et les problêmes rencontrés.
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) .
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.
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.
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) .
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.
On présente ci-après certains aspects d'une quantification à résolution variable et les problèmes rencontrés .
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.
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.
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.
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) ;
- 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.
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.
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.
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.
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.
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 Vector
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" .
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) .
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.
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.
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.
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.
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.
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é.
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.
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.
Dans le document :
- "A 16, 24, 32 kbi t/s wideband speech codée based on
ACELP" de P. Combescure, J. Schnitzler, K. Fischer,
R. Kircherr, C. Lamblin, A. Le Guyader, D. Massaloux,
C. Quinquis, J. Stegmann, P. Vary, dans Proceedings IEEE
International Conférence 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.
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.
La présente invention vient améliorer la 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 .
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 :
- d'une part, pour une dimension donnée, des dictionnaires de résolution croissante imbriqués les uns dans les autres ,
- et, d'autre part, pour une dimension donnée, une 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,
• 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.
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.
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.
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«) .
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.
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.
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.
Dans ce cas :
- à 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,
- à 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.
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.
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.
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.
On obtient ainsi tout ou partie de N dictionnaires dont le dictionnaire de plus grande dimension a pour 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.
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.
En combinant des définitions a priori et a posteriori de l'ensemble fini et des règles d'insertion :
- 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 ,
- 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,
- 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 .
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 .
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.
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.
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,
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, et
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) .
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.
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,
C012) la lecture, dans ledit sous-ensemble identifié par sa dimension courante, dudit élément identifié par son indice courant,
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) .
Dans un mode de réalisation particulier, au codage,
* l'étape COI) 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, 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.
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 .
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 :
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 ,
CP2) on range les composantes du vecteur |y| par valeurs décroissantes, par permutation, pour obtenir un vecteur leader |3>| ,
CP3) on détermine, parmi les vecteurs leaders du dictionnaire Djι de dimension j, un plus proche voisin xj' du vecteur leader
Figure imgf000033_0001
,
CP4) on détermine un index du rang dudit plus proche voisin xj' dans le dictionnaire Djι,
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) .
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.
A ce titre, la présente invention vise aussi un tel dispositif de codage/décodage.
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.
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,
- 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" ,
- 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 :
* une découpe en 32 bandes (fig.7a),
* les résolutions par dimension (fig.7b),
* le gain en mémoire apporté par la propriété d'imbrication (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).
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.
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" .
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é.
Cette deuxième propriété, notée PD, est nommée ci-après "propriété de composition partielle par extension contrôlée" .
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.
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".
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,
- 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,
- et on obtient ainsi des dictionnaires de différentes dimensions et résolutions possédant les deux propriétés structurantes PD et 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 .
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) .
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.
La propriété PR d'imbrication des dictionnaires, pour une dimension j se traduit finalement par :
DJ aD{ D D
En notant :
- 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
Figure imgf000039_0001
avec r/ < r < • • • < r < r+l < • • • < r^ _
Df le dictionnaire de dimension j , de résolution r
T la taille du dictionnaire de résolution
T = 2jr'J i.e. r = -log27V La figure 3 illustre l'imbrication des dictionnaires en fonction des résolutions croissantes .
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.
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 _ .
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ι-ι.
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.
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 .
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 .
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) .
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.
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.
Ainsi, la deuxième propriété PD de composition partielle par extension contrôlée se traduit finalement par :
Figure imgf000043_0001
en notant :
- -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'insertion {Rm}/
- D' son complémentaire dans D , ensemble des vecteurs-
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} .
On décrit ci-après un exemple de règles d'insertion pour vérifier la seconde propriété PD.
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 .
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.
Pour définir une règle d'insertion, on note alors :
- 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.
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 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 .
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.
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_ι.
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.
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.
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.
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) ;
- 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" .
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.
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.
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.
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 .
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.
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.
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 .
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.
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.
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.
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.
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.
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 .
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.
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 .
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).
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 :
S -
Figure imgf000055_0001
≡ [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,
- 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.
Par exemple, à partir du vecteur normalisé de coefficients (0., 0.6,0., 0.,0.8), on déduit son leader absolu (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.
La première catégorie de séquences est préférentiellement utilisée pour déterminer les dictionnaires initiaux de
leaders des • La deuxième catégorie est
Figure imgf000056_0001
préférentiellement utilisée pour construire des dictionnaires multidimensionnels et multirésolutions possédant les deux propriétés structurantes.
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.
Pour une dimension j , le dictionnaire initial de 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
Figure imgf000058_0002
= {(l)},
Figure imgf000058_0001
= {(l l),(21),(31),(41),(51),(91)} , complété par les leaders de 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ées
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.
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 final
ordonné des leaders de D , . . A la fin des itérations sur
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 en
les éliminant. On note cet ensemble 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.
Sur la figure 7c, on note :
- j : la dimension,
- Nj : le nombre de résolutions en dimension j ,
- L j : le nombre de leaders du dictionnaire D ,
- Lnj : le nombre de leaders du dictionnaire D _. ,
- • la- mémoire (en nombre de mots) nécessaire pour
Figure imgf000060_0001
stocker les leaders de tous les dictionnaires en dimension j sans la propriété d'imbrication,
- 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.
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 .
Sur la figure 7d, on note :
- j : la dimension
- LDj : le nombre de leaders du dictionnaire 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,
- Lj : le nombre de leaders de 1 ' ensemble Lj ,
- : leur somme des dimensions 1 à j ,
Figure imgf000061_0001
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.
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.
Sur la figure 7e, on note:
- j : la dimension
- Nj : le nombre de résolutions en dimension j
- Ie nombre de leaders en dimension j à stocker
Figure imgf000062_0001
pour les Nj résolutions sans la propriété d'imbrication ni la propriété d'extension partielle contrôlée
- : la mémoire (en nombre de mots) nécessaire pour
Figure imgf000062_0002
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
Figure imgf000062_0003
stocker les leaders de tous les dictionnaires des dimensions 1 à j sans ces deux propriétés
Lj : le nombre de leaders de 1 ' ensemble L°j : leur somme des dimensions 1 à j
Figure imgf000062_0004
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 à :
- 1,5 en dimension 4,
- 3 en dimension 8,
- et 7 en 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.
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.
Pour mettre en oeuvre un quantificateur vectoriel de dimension j et de résolution r±, il faut résoudre les trois problèmes suivants :
- recherche du plus proche voisin d'un vecteur d'entrée
Figure imgf000064_0001
- recherche de l'index d'un vecteur-code de D , et réciproquement, recherche d'un vecteur-code de Df à partir de son 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 .
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 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 formules
de numérotation des permutations, on a choisi la formule dite de Schalk ijk.
En plus de cette numérotation classique des vecteurs-codes de Dtf . _ι ' on utilise une table de correspondance des
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'.
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.
Sur la figure 7f, on note :
-1 : l'indice du leader dans L° (parmi les 516),
- j : sa dimension,
- 1J : son indice dans les leaders de Lj .
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°.
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.
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) à
partir de L vecteurs-codes xj~n de dimension j-n d'un
dictionnaire Dj, ~n , le calcul des L distances des
vecteurs— codes xj à un vecteur ^d'entrée Peut être accéléré en calculant
Figure imgf000066_0001
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
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.
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.
On indique tout d'abord qu'au lieu de stocker, pour toutes les dimensions j à considérer, l'ensemble de tous les dictionnaires
Figure imgf000067_0002
, 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 (on
rappelle que Tij est la taille du dictionnaire Dij) . Quant au stockage proprement dit des dictionnaires d'un quantificateur vectoriel à résolutions et 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,
Tυ N est beaucoup plus petit que T^ , car on cherche bien entendu à favoriser l'ensemble D'j N par rapport à
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.
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 :
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 [ :
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.
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 :
* si d(y,x3) <dmin alors dmin = d(y,xJ) et mmin = m3
* ensuite, on incrémente m3 : m3=m3+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-
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
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.
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'initialisation
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) .
Le calcul de la distance entre y et le vecteur x:(j ' , m ' , lr) de l'étape C02) revient alors à calculer la
αistan e : ≈ù :
Figure imgf000071_0001
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.
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.
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.
De même, le compromis stockage/complexité d'indexation peut aussi être ajusté au besoin de l'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.
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.
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.
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.
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
Figure imgf000073_0001
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) ) .
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
leaders de Dj (pour m e[0,Zy [, en notant LDJ le nombre
de leaders ou de codes à permutations de Dj ) .
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
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°.
L'algorithme se déroule alors préférentiellement selon 1 ' exemple qui suit :
*Etape CP1) :
Passage du vecteur d' entrée; = (y0,...,yk,...,yj_l) à son vecteur absolu
Figure imgf000074_0001
et à son vecteur signe ε = (ε0,...,εk,...,εj_l) avec εk= l si .y^≥O et εk= -\ sinon.
*Etape CP2) :
Recherche du leader
Figure imgf000074_0002
par permutation de ses composantes pour les arranger dans l'ordre décroissant
*Etape CP3) :
*Etape CoO ' ) : Initialisation : psmax = - 1 - ; mmax = - 1 ; mD = 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
Figure imgf000075_0001
b) Lecture dans l ' ensemble L° du leader x3 ' de dimension j ' et d ' indice lm.
*Etape C02 ' ) Calcul du produit scalaire modifié entre
Figure imgf000075_0002
et x3 ' : ps(\y\xJ') - xk J )
Figure imgf000075_0003
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
Figure imgf000075_0004
m3
* ensuite, on incrémente m3: m=m+l
* Test de fin si m < LDj aller à l'étape COI'), sinon arrêter,
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'.
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 :
CP1) on passe du vecteur d'entrée y = (yo,».,yk,.«,yj-ι) à son vecteur absolu l-] =
Figure imgf000076_0001
et a son vecteur signe ε = (ε0,...,εk,...,εj-ι) avec
Figure imgf000076_0002
si yk≥O et
Figure imgf000076_0003
-1 sinon,
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| dans
l'ensemble Lj (i) des leaders de Dj (en fait parmi les Mj
premiers leaders de Lj en notant Mj le nombre de codes à
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 de
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
Figure imgf000077_0001
, puis multiplié par l'inverse de la norme euclidienne de x3'.
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) .
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.
A partir d'un index mj reçu, on détermine si cet indice correspond à un vecteur-code appartenant à DN _x ou à π3
Dans le premier cas, mj est associé à un index unique dans
D'- __. , et le vecteur-code est obtenu par une simple
lecture de table de correspondance .
Dans le deuxième cas, mj pointe sur un élément E*'^ ,-. (j'<j) et sur une règle d'insertion.
La détermination de l'ap ^p^artenance de x mJ.j à D'{ Nτj - ,1 ou à
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_,
dans Dj en commençant par les éléments obtenus par extension contrôlée appartenant à £>' , suivis des éléments
"libres" appartenant à D'f . L'appartenance à D'J N _- ou à
D,J NMj_,i est alors faite par de simples tests. De même, la
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.
On revient ici au cas particulier de la contrainte supplémentaire définie par l'union de codes à permutation.
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°.
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é .
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.
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.
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) .
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.
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 .
Le tableau de la figure 8b donne le nombre de résolutions différentes ainsi que leurs valeurs pour les dimensions 1 à 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.
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.
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.
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.
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.

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,
- et, d'autre part, pour une dimension donnée, une 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,
• 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.
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.
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.
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.
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.
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.
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.
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.
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 :
-d'un rang de l'élément dans ledit ensemble fini, -et d'une position d'insertion/suppression.
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.
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.
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 .
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.
14. Procédé selon les revendications 10 et 13, dans lequel :
- 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,
- 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,
- 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 .
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.
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.
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.
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.
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.
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.
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.
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,
- à 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.
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 :
- 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.
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 :
- une dimension courante (j ' ) dudit second ensemble,
- un indice courant (m') d'un élément du second ensemble, et
- 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 ' ) .
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 :
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,
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,
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, et
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) .
26. Utilisation selon la revendication 25, dans laquelle 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 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 ,
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) .
27. Utilisation selon la revendication 25, dans laquelle, au codage,
* l'étape COI) comporte :
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,
* à 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 .
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 :
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 ,
CP2) on range les composantes du vecteur |y| par valeurs décroissantes, par permutation, pour obtenir un vecteur leader |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 ,
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) .
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 .
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.
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,
PCT/FR2004/000219 2004-01-30 2004-01-30 Quantification vectorielle en dimension et resolution variables WO2005083889A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020067017487A KR101190875B1 (ko) 2004-01-30 2004-01-30 차원 벡터 및 가변 분해능 양자화
US10/587,907 US7680670B2 (en) 2004-01-30 2004-01-30 Dimensional vector and variable resolution quantization
JP2006550218A JP4579930B2 (ja) 2004-01-30 2004-01-30 次元ベクトルおよび可変解像度量子化
CN200480041141.2A CN1906855B (zh) 2004-01-30 2004-01-30 空间矢量和可变分辨率量化
PCT/FR2004/000219 WO2005083889A1 (fr) 2004-01-30 2004-01-30 Quantification vectorielle en dimension et resolution variables
EP04706703A EP1709743A1 (fr) 2004-01-30 2004-01-30 Quantification vectorielle en dimension et resolution variables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2004/000219 WO2005083889A1 (fr) 2004-01-30 2004-01-30 Quantification vectorielle en dimension et resolution variables

Publications (1)

Publication Number Publication Date
WO2005083889A1 true WO2005083889A1 (fr) 2005-09-09

Family

ID=34896839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/000219 WO2005083889A1 (fr) 2004-01-30 2004-01-30 Quantification vectorielle en dimension et resolution variables

Country Status (6)

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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007026295A2 (fr) * 2005-08-29 2007-03-08 Nokia Corporation Quantification de vecteurs a livre de codes unique, destinee aux applications a taux multiple
WO2007096551A2 (fr) 2006-02-24 2007-08-30 France Telecom Procede de codage binaire d'indices de quantification d'une enveloppe d'un signal, procede de decodage d'une enveloppe d'un signal et modules de codage et decodage correspondants
WO2008047795A1 (fr) * 2006-10-17 2008-04-24 Panasonic Corporation Dispositif de quantification vectorielle, dispositif de quantification vectorielle inverse et procédé associé
JP2009511966A (ja) * 2005-10-12 2009-03-19 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ マルチチャンネル音声信号の時間的および空間的整形
JP2009530940A (ja) * 2006-03-21 2009-08-27 フランス テレコム 抑制されたベクトル量子化
JP2010021998A (ja) * 2008-07-01 2010-01-28 Toshiba Corp 無線通信装置
JP2010532112A (ja) * 2007-06-21 2010-09-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ベクトルを符号化する方法
EP2428786A1 (fr) * 2009-05-27 2012-03-14 Huawei Technologies Co., Ltd. Procédé permettant de générer une liste de codage par quantification vectorielle de réseau et son appareil
RU2494536C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами
WO2015092483A1 (fr) * 2013-12-17 2015-06-25 Nokia Technologies Oy Codeur de signal audio

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007003231A1 (fr) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc Calcul de controle de redondance cyclique vectoriel sur processeur de signaux numeriques
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
US8091006B2 (en) * 2006-06-02 2012-01-03 Nec Laboratories America, Inc. Spherical lattice codes for lattice and lattice-reduction-aided decoders
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US7953595B2 (en) 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
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
CN100583649C (zh) * 2007-07-23 2010-01-20 华为技术有限公司 矢量编/解码方法、装置及流媒体播放器
CN101335004B (zh) * 2007-11-02 2010-04-21 华为技术有限公司 一种多级量化的方法及装置
RU2461079C2 (ru) * 2008-02-15 2012-09-10 Нокиа Корпорейшн Упрощенная индексация и деиндексация векторов
EP2274833B1 (fr) * 2008-04-16 2016-08-10 Huawei Technologies Co., Ltd. Procédé de quantification vectorielle
FR2931963A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de traitement de donnees numeriques
FR2931964A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
EP2525354B1 (fr) * 2010-01-13 2015-04-22 Panasonic Intellectual Property Corporation of America Dispositif de codage et procédé de codage
WO2011104463A1 (fr) * 2010-02-26 2011-09-01 France Telecom Compression de flux audio multicanal
KR101438072B1 (ko) * 2010-04-15 2014-09-03 라모트 앳 텔-아비브 유니버시티 리미티드 소거 없는 플래시 메모리의 다중 프로그래밍
JP5258915B2 (ja) * 2011-02-28 2013-08-07 株式会社デンソーアイティーラボラトリ 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
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
US9455799B2 (en) 2013-08-06 2016-09-27 OptCTS, Inc. Dynamic control of quality of service (QOS) using derived QOS measures
US9444580B2 (en) 2013-08-06 2016-09-13 OptCTS, Inc. Optimized data transfer utilizing optimized code table signaling
US10523490B2 (en) 2013-08-06 2019-12-31 Agilepq, Inc. Authentication of a subscribed code table user utilizing optimized code table signaling
US9640376B1 (en) 2014-06-16 2017-05-02 Protein Metrics Inc. Interactive analysis of mass spectrometry data
US10056919B2 (en) 2014-07-02 2018-08-21 Agilepq, 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 (sv) * 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
CN108701462B (zh) * 2016-03-21 2020-09-25 华为技术有限公司 加权矩阵系数的自适应量化
WO2017214060A1 (fr) 2016-06-06 2017-12-14 Agilepq, Inc. Systèmes et procédés de conversion de données
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
US11531695B2 (en) * 2017-08-23 2022-12-20 Google Llc Multiscale quantization for fast similarity search
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 (fr) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Système et procédés de communication collective
WO2020204904A1 (fr) * 2019-04-01 2020-10-08 Google Llc Apprentissage de caractéristiques compressibles
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
US11165435B2 (en) 2019-10-08 2021-11-02 Tron Future Tech Inc. Signal converting apparatus
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
US11276204B1 (en) 2020-08-31 2022-03-15 Protein Metrics Inc. 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 (zh) * 2023-03-23 2023-06-27 中南大学 基于注意力神经网络的气温数据空间插值方法
CN117041359B (zh) * 2023-10-10 2023-12-22 北京安视华业科技有限责任公司 一种信息数据高效压缩传输方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003103151A1 (fr) * 2002-05-31 2003-12-11 Voiceage Corporation Procede et systeme de quantification vectorielle multi-debit en treillis d'un signal

Family Cites Families (20)

* 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 (ja) * 1993-12-07 2003-05-12 ソニー株式会社 多層符号化装置
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
JP3707153B2 (ja) * 1996-09-24 2005-10-19 ソニー株式会社 ベクトル量子化方法、音声符号化方法及び装置
JP3707154B2 (ja) * 1996-09-24 2005-10-19 ソニー株式会社 音声符号化方法及び装置
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 (fr) * 1998-09-17 2000-12-08 Thomson Multimedia Sa Procede de compression de donnees graphiques
FR2791166B1 (fr) * 1999-03-17 2003-01-10 Matra Nortel Communications Procedes de codage, de decodage et de transcodage
US6421467B1 (en) * 1999-05-28 2002-07-16 Texas Tech University Adaptive vector quantization/quantizer
US20040176950A1 (en) * 2003-03-04 2004-09-09 Docomo Communications Laboratories Usa, Inc. Methods and apparatuses for variable dimension vector quantization
EP1667109A4 (fr) * 2003-09-17 2007-10-03 Beijing E World Technology Co Procede et dispositif de quantification de vecteur multi-resolution multiple pour codage et decodage audio

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003103151A1 (fr) * 2002-05-31 2003-12-11 Voiceage Corporation Procede et systeme de quantification vectorielle multi-debit en treillis d'un signal

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COMBESCURE P ET AL: "A 16, 24, 32 kbit/s wideband speech codec based on ATCELP", 1999 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 15 March 1999 (1999-03-15), PHOENIX, AZ, USA, pages 5 - 8, XP010327999, ISBN: 0-7803-5041-3 *
CONWAY J. H., SLOANE N. J. A.: "Fast Quantizing and Decoding Algorithms for lattice Quantizers and Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 28, no. 2, March 1982 (1982-03-01), NEW YORK, IEEE, US, pages 227 - 232, XP002300007 *
LAMBLIN C ET AL: "ALGORITHME DE QUANTIFICATION VECTORIELLE SPHERIQUE A PARTIR DU RESEAU DE GOSSET D'ORDRE 8 SPHERICAL VECTOR QUANTIZATION ALGORITHM BASED ON AN EIGHT DIMENSIONAL GOSSET LATTICE", ANNALES DES TELECOMMUNICATIONS, LES MOULINEAUX, FR, vol. 43, no. 3/4, 1 March 1988 (1988-03-01), pages 172 - 186, XP000572495 *
MINJIE XIE ET AL: "Embedded algebraic vector quantizers (EAVQ) with application to wideband speech coding", 1996 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, vol. 1, 7 May 1996 (1996-05-07), NEW YORK, IEEE, US, pages 240 - 243, XP002252600, ISBN: 0-7803-3193-1 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007026295A3 (fr) * 2005-08-29 2007-07-05 Nokia Corp Quantification de vecteurs a livre de codes unique, destinee aux applications a taux multiple
WO2007026295A2 (fr) * 2005-08-29 2007-03-08 Nokia Corporation Quantification de vecteurs a livre de codes unique, destinee aux applications a taux multiple
US7587314B2 (en) 2005-08-29 2009-09-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
JP2009511966A (ja) * 2005-10-12 2009-03-19 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ マルチチャンネル音声信号の時間的および空間的整形
RU2494536C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами
RU2494537C2 (ru) * 2006-02-17 2013-09-27 Франс Телеком Усовершенствованное кодирование/декодирование цифровых сигналов, в частности, при векторном квантовании с перестановочными кодами
WO2007096551A2 (fr) 2006-02-24 2007-08-30 France Telecom Procede de codage binaire d'indices de quantification d'une enveloppe d'un signal, procede de decodage d'une enveloppe d'un signal et modules de codage et decodage correspondants
JP2009530940A (ja) * 2006-03-21 2009-08-27 フランス テレコム 抑制されたベクトル量子化
WO2008047795A1 (fr) * 2006-10-17 2008-04-24 Panasonic Corporation Dispositif de quantification vectorielle, dispositif de quantification vectorielle inverse et procédé associé
JP2010532112A (ja) * 2007-06-21 2010-09-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ベクトルを符号化する方法
JP2010021998A (ja) * 2008-07-01 2010-01-28 Toshiba Corp 無線通信装置
US8489395B2 (en) 2009-05-27 2013-07-16 Huawei Technologies Co., Ltd. Method and apparatus for generating lattice vector quantizer codebook
EP2428786A4 (fr) * 2009-05-27 2012-08-08 Huawei Tech Co Ltd Procédé permettant de générer une liste de codage par quantification vectorielle de réseau et son appareil
EP2428786A1 (fr) * 2009-05-27 2012-03-14 Huawei Technologies Co., Ltd. Procédé permettant de générer une liste de codage par quantification vectorielle de réseau et son appareil
WO2015092483A1 (fr) * 2013-12-17 2015-06-25 Nokia Technologies Oy Codeur de signal audio
CN106030703A (zh) * 2013-12-17 2016-10-12 诺基亚技术有限公司 音频信号编码器
US9892742B2 (en) 2013-12-17 2018-02-13 Nokia Technologies Oy Audio signal lattice vector quantizer
RU2665287C2 (ru) * 2013-12-17 2018-08-28 Нокиа Текнолоджиз Ой Кодер звукового сигнала
CN106030703B (zh) * 2013-12-17 2020-02-04 诺基亚技术有限公司 音频信号编码器

Also Published As

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

Similar Documents

Publication Publication Date Title
EP1709743A1 (fr) Quantification vectorielle en dimension et resolution variables
RU2326450C2 (ru) Способ и устройство для векторного квантования с надежным предсказанием параметров линейного предсказания в кодировании речи с переменной битовой скоростью
EP1692689B1 (fr) Procede de codage multiple optimise
Gray Vector quantization
FR2700632A1 (fr) Système de codage-décodage prédictif d&#39;un signal numérique de parole par transformée adaptative à codes imbriqués.
EP2183851A1 (fr) Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites
EP1692687B1 (fr) Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
EP2289171B1 (fr) Procède de traitement de donnees numeriques
WO2013057453A2 (fr) Codage hierarchique perfectionne
WO2007107659A2 (fr) Quantification vectorielle contrainte
EP2652735B1 (fr) Codage perfectionne d&#39;un etage d&#39;amelioration dans un codeur hierarchique
EP2289172B1 (fr) Procédé de dénombrement des vecteurs dans les réseaux réguliers de points
EP1756806B1 (fr) Procede de quantification d&#39;un codeur de parole a tres bas debit
WO2011144863A1 (fr) Codage avec mise en forme du bruit dans un codeur hierarchique
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 (fr) Methodes de compression audio additionnelles a tres bas debit exploitant les redondances locales et utilisant le codage par dictionnaire adaptatif
MXPA06008536A (en) Dimensional vector and variable resolution quantisation
Jahangiri et al. Scalable speech coding at rates below 900 BPS
FR2842670A1 (fr) Perfectionnement a la compression de donnees numeriques
EP1037390A1 (fr) Procédé de codage, de décodage et de transcodage
Oshima et al. Variable-length coding of ACELP gain using Entropy-Constrained VQ

Legal Events

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

Ref document number: 200480041141.2

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004706703

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2025/KOLNP/2006

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2007162236

Country of ref document: US

Ref document number: 10587907

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2006550218

Country of ref document: JP

Ref document number: PA/a/2006/008536

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 1020067017487

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004706703

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10587907

Country of ref document: US