[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP2005756A2 - Restrained vector quantisation - Google Patents

Restrained vector quantisation

Info

Publication number
EP2005756A2
EP2005756A2 EP07731724A EP07731724A EP2005756A2 EP 2005756 A2 EP2005756 A2 EP 2005756A2 EP 07731724 A EP07731724 A EP 07731724A EP 07731724 A EP07731724 A EP 07731724A EP 2005756 A2 EP2005756 A2 EP 2005756A2
Authority
EP
European Patent Office
Prior art keywords
vectors
dictionary
signal
vector
code vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP07731724A
Other languages
German (de)
French (fr)
Inventor
Stéphane RAGOT
Cyril Guillaume
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2005756A2 publication Critical patent/EP2005756A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Definitions

  • the present invention relates to quantization dictionaries for coding and decoding signals such as audio, video signals, and more generally multimedia signals, for storage or transmission.
  • the quantizer "Fine-coarse” suffers from the same disadvantages as those indicated above for the statistical vector quantization. Indeed, the link between the fine-resolution quantizer and the quantizer Coarse resolution is a simple look-up table and therefore, even if the high-resolution vector quantizer is a finite subset of a regular network with a minimal distance between code vectors, this constraint is not imposed on the vector quantizer with coarse resolution that is constructed by conventional techniques of statistical vector quantization.
  • the statistical analysis step further comprises a sub-step of calculating the distortion of the initial dictionary and a substep of comparing this distortion with a tolerance threshold, said statistical analysis step being repeated if said comparison is negative.
  • the method then comprises a substep 14 for initializing common variables and in particular for initializing an ITER variable corresponding to an iteration number and a DITER variable corresponding to a value of distortion.
  • Step 10 then comprises a substep 16 of classification of the training vectors with respect to the initial dictionary CO to form classification regions and a sub-step 18 of determining a centroid for each region. More precisely, during the sub-step 16 of classification, for each training vector, the whole of the current dictionary, that is to say of the CO dictionary modified by successive iterations, is scanned, and one chooses the dictionary code vector minimizing quadratic error with drive vector. Sub-step 18 is performed as follows: for each class or region Vi, the new centroids are calculated.
  • step 30 delivers a new dictionary C obtained by rounding the CITER dictionary obtained in step 10, on the regular network.
  • the optimization phase comprises a step 50 of measuring the distortion and a test 52 to determine if the distortion is less than a tolerance threshold or if a maximum number of iterations has been reached. Such an optimization phase makes it possible to further improve the quality of the dictionary.
  • This module 1 12 is supplied to a temporal shaping module 114.
  • This module 1 14 also receives a synthetic excitation signal generated by a module 116 from the CELP excitation parameters supplied by the decoder CELP 104
  • the unit 1 10 finally comprises a frequency shaping module

Landscapes

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

Abstract

The invention relates to a method for generating a dictionary for the vector quantisation of a signal. Said method comprises a step (10) of the statistical analysis of driving vectors representing the signal determining a finished set of code vectors (CITER) representing said driving vectors. The inventive method is characterised in that it also comprises a step (3) of modifying the finished set of code vectors in order to impose a minimum distance between the code vectors modified two-by-two, the set of said modified code vectors forming the dictionary.

Description

QUANTIFICATION VECTORIELLE CONTRAINTE QUANTIFICATION VECTORIAL CONSTRAINT
La présente invention concerne les dictionnaires de quantification pour le codage et le décodage de signaux tels que les signaux audio, vidéo, et plus généralement les signaux multimédia, en vue de leur stockage ou de leur transmission.The present invention relates to quantization dictionaries for coding and decoding signals such as audio, video signals, and more generally multimedia signals, for storage or transmission.
Plus précisément, la présente invention propose une solution au problème de la quantification vectorielle statistique non-structurée intégrant la connaissance a priori d'un seuil de distorsion.More precisely, the present invention proposes a solution to the problem of unstructured statistical vector quantization integrating a priori knowledge of a distortion threshold.
Une solution très répandue pour le traitement des signaux notamment numériques est la quantification vectorielle (QV) qui, de manière générale, représente un vecteur d'entrée par un vecteur de même dimension choisi dans un ensemble fini. Cet ensemble fini est appelé alphabet de reproduction ou dictionnaire ou encore répertoire, et ses éléments des vecteurs de code, des mots de code, des points de sortie ou des représentants. En quantification vectorielle, un bloc de n échantillons d'un signal est traité comme un vecteur de dimension n. Le vecteur est codé en choisissant, dans un dictionnaire fini, le vecteur de code qui lui « ressemble » le plus. Par exemple, 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 cet élément et le vecteur d'entrée.A very widespread solution for the processing of particularly digital signals is the vector quantization (QV) which, in general, represents an input vector by a vector of the same dimension chosen in a finite set. This finite set is called the reproduction alphabet or dictionary or directory, and its elements are code vectors, code words, exit points, or representatives. In vector quantization, a block of n samples of a signal is treated as a vector of dimension n. The vector is encoded by choosing, in a finite dictionary, the code vector that "most" resembles it. For example, an exhaustive search is made among all elements of the dictionary to select the dictionary element that minimizes a measure of distance between that element and the input vector.
En général, les dictionnaires de quantification vectorielle sont conçus à partir de l'analyse d'échantillons du signal à coder formant une séquence d'entraînement, à l'aide de méthodes statistiques telles que les algorithmes de Lloyd-Max généralisé (GLA: Generalized Lloyd-Max Algorithm) ou LBG (pour Linde, Buzo et Gray). Un tel type d'algorithme est décrit par exemple dans l'ouvrage Gersho A., Gray R. M, « Vector Quantization and Signal Compression », Kluwer Académie Publishers, 1992.In general, vector quantization dictionaries are designed from the analysis of samples of the signal to be coded forming a training sequence, using statistical methods such as generalized Lloyd-Max algorithms (GLA: Generalized Lloyd-Max Algorithm) or LBG (for Linde, Buzo and Gray). Such a type of algorithm is described for example in Gersho A., Gray R. M, "Vector Quantization and Signal Compression", Kluwer Academy Publishers, 1992.
A partir de la séquence d'entraînement, et d'un dictionnaire initial, le dictionnaire est construit de façon itérative. Chaque itération comprend une étape de classification des vecteurs d'entraînement pour construire des régions de quantification de la séquence d'entraînement selon la règle du plus proche voisin, et une étape d'amélioration du dictionnaire en remplaçant les anciens vecteurs de code par les centroïdes des régions, selon la règle dite des centroïdes.From the training sequence, and from an initial dictionary, the dictionary is built iteratively. Each iteration includes a step of classifying the training vectors to build quantization regions of the training sequence according to the rule of closest neighbor, and a step of improving the dictionary by replacing the old code vectors by the centroids of the regions, according to the so-called centroid rule.
Pour éviter la convergence vers un minimum local de cet algorithme itératif déterministe, des variantes dites de relaxation stochastique (SKA: Stochastic K-means algorithm) 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. Une telle modification est décrite par exemple dans la publication Kovesi, B.; Saoudi, S.; Boucher, J. M.; Reguly, Z., « A fast robust stochastic algorithm for vector quantizer design for nonstationary channels », IEEE International Conférence on Acoustics, Speech, and Signal Processing, Vol. 1 , pp. 269-272, 1995.To avoid convergence towards a local minimum of this deterministic iterative algorithm, so-called stochastic relaxation variants (SKA: Stochastic K-means algorithm) have been proposed by introducing a random part in the centroid construction step and / or in that of class construction. Such a modification is described for example in Kovesi, B .; Saoudi, S .; Boucher, J. M .; Reguly, Z., "A robust robust stochastic algorithm for vector quantizer design for nonstationary channels," IEEE International Conference on Acoustics, Speech, and Signal Processing, Vol. 1, pp. 269-272, 1995.
Les dictionnaires, ou quantificateurs vectoriels statistiques, ainsi obtenus ne possèdent aucune structure particulière, ce qui rend leur exploration coûteuse en calculs et gourmande en mémoire. De fait, l'utilisation, notamment en temps réel, de tels dictionnaires obtenus par quantification vectorielle statistique classique est souvent limitée à des codages de faible dimension et/ou des bas débits de l'ordre de 4 à 10 bits par vecteur.The dictionaries, or statistical vector quantizers, thus obtained have no particular structure, which makes their exploration expensive in calculations and greedy in memory. In fact, the use, particularly in real time, of such dictionaries obtained by conventional statistical vector quantization is often limited to small coding and / or low bit rates of the order of 4 to 10 bits per vector.
De manière générale, la quantification vectorielle statistique exploite la forme de la distribution de probabilité du signal à traiter et cela se retrouve dans la distribution des vecteurs de code du dictionnaire d'un quantificateur vectoriel statistique. Les algorithmes de construction utilisés dans la quantification vectorielle visent la minimisation de la distorsion moyenne; ils ont donc tendance à placer beaucoup de vecteurs de code dans les zones à forte densité. Cette concentration des centroïdes dans les zones de forte densité du signal à coder n'est pas toujours pertinente d'un point de vue perceptuel. Ainsi, il se peut que deux vecteurs de code d'une zone de forte densité soient si proches que la distorsion générée par la substitution de l'un par l'autre ne soit pas perceptible. De plus, pour des quantificateurs à faible résolution, c'est-à-dire avec peu de vecteurs de code, cette concentration se fait au détriment de zones moins denses de la distribution de probabilité du signal à coder qui sont mal représentées, c'est-à-dire mal codées.In general, statistical vector quantization exploits the shape of the probability distribution of the signal to be processed and this is reflected in the distribution of code vectors of the dictionary of a statistical vector quantizer. The construction algorithms used in vector quantization are aimed at minimizing mean distortion; they therefore tend to place a lot of code vectors in high density areas. This concentration of centroids in areas of high density of the signal to be encoded is not always relevant from a perceptual point of view. Thus, it is possible that two code vectors of a zone of high density are so close that the distortion generated by the substitution of one by the other is not perceptible. Moreover, for low-resolution quantizers, that is to say with few code vectors, this concentration is done to the detriment of zones less dense of the probability distribution of the signal to be encoded which are poorly represented, that is to say poorly coded.
Pour s'affranchir des contraintes de taille et de dimension, plusieurs variantes de quantification vectorielle statistiques furent développées, notamment pour tenter de remédier à l'absence de structure du dictionnaire et 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. Beaucoup de schémas de quantificateurs vectoriels contraints ont été proposés dans la littérature. On peut notamment citer le quantificateur vectoriel en arbre, le quantificateur vectoriel à étages multiples, le quantificateur vectoriel « produit cartésien » ou encore le quantificateur vectoriel « gain/orientation », cas particulier du quantificateur vectoriel produit cartésien. Comme en quantification vectorielle non-structurée, les dictionnaires obtenus par des méthodes contraintes présentent toujours une quantité importante de vecteurs de code proches les uns des autres et notamment de vecteurs de code dont les différences sont non discernables par le récepteur. Ceci conduit à une qualité non optimale. Une autre approche, appelée quantification vectorielle algébrique, a aussi été proposée. La quantification vectorielle algébrique utilise des dictionnaires fortement structurés, issus de réseaux réguliers de points ou des codes correcteurs d'erreur. Un exemple simple de réseau régulier est le réseau cubique, formé par exemple d'un ensemble de points à coordonnées entières. Grâce aux propriétés algébriques de leurs dictionnaires, les quantificateurs vectoriels algébriques sont simples à mettre en œuvre et n'ont pas à être stockés en mémoire. L'exploitation de la structure régulière de ces dictionnaires permet le développement d'algorithmes de recherche optimaux et rapides et de mécanismes pour associer l'index à un vecteur de code correspondant, par exemple par une formule. Les techniques de quantification vectorielle algébrique développées dans l'état de l'art aboutissent à des dictionnaires qui sont des sous-ensembles de réseaux réguliers.To overcome the constraints of size and dimension, several statistical vector quantization variants were developed, in particular to try to remedy the lack of structure of the dictionary and thus reduce complexity at the expense of quality. However, the performance-complexity trade-off is improved, which increases the range of resolutions and / or dimensions over which vector quantization can be effectively applied. Many constrained vector quantizer schemes have been proposed in the literature. We can cite in particular the tree vector quantizer, the multi-stage vector quantizer, the vector quantizer "cartesian product" or the vector quantizer "gain / orientation", a particular case of the Cartesian product vector quantizer. As in unstructured vector quantization, the dictionaries obtained by constrained methods always have a large amount of code vectors close to each other and in particular code vectors whose differences are not discernible by the receiver. This leads to a non-optimal quality. Another approach, called algebraic vector quantization, has also been proposed. Algebraic vector quantization uses strongly structured dictionaries, derived from regular networks of points or error correcting codes. A simple example of a regular network is the cubic network, formed for example of a set of points with integer coordinates. Thanks to the algebraic properties of their dictionaries, the algebraic vector quantizers are simple to implement and do not have to be stored in memory. The exploitation of the regular structure of these dictionaries allows the development of optimal and fast search algorithms and mechanisms for associating the index with a corresponding code vector, for example by a formula. The algebraic vector quantization techniques developed in the state of the art lead to dictionaries that are subsets of regular networks.
Un des paramètres principaux d'un réseau régulier est sa distance quadratique minimale entre deux points sur lesquels sont placés les vecteurs de code. Pour faciliter l'indexation, le dictionnaire est généralement choisi comme l'intersection du réseau avec un polytope régulier, tel qu'un hypercube ou une hypersphère, ou avec sa surface. Les points en dehors de cette intersection sont alors des outliers. Pour un débit donné, c'est-à-dire un nombre fixé de points de l'intersection, limiter le nombre d'outliers conduit à augmenter la distance minimale entre deux vecteurs de code.One of the main parameters of a regular network is its minimum quadratic distance between two points on which the code vectors are placed. To facilitate indexing, the dictionary is generally chosen as the intersection of the network with a regular polytope, such as a hypercube or hypersphere, or with its surface. The points outside this intersection are then outliers. For a given bit rate, that is to say a fixed number of points of the intersection, limiting the number of outliers leads to increasing the minimum distance between two code vectors.
Si les quantificateurs vectoriels algébriques sont moins complexes à mettre en oeuvre et nécessitent moins de mémoire, ils ne sont optimaux que pour coder des signaux avec une distribution uniforme. II faut aussi noter que les opérations d'indexation des vecteurs de code, ou numérotage, et les opérations inverses de 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 tables.While algebraic vector quantizers are less complex to implement and require less memory, they are only optimal for encoding signals with uniform distribution. It should also be noted that the operations of indexing the code vectors, or numbering, and the reverse decoding operations require more calculations than in the case of statistical vector quantizers, for which these operations are performed by simple reads of tables.
Enfin, une autre forme de quantification vectorielle combine la quantification algébrique et la quantification statistique. C'est le cas du quantificateur vectoriel fin-grossier « Fine-Coarse Vector Quantization » décrit dans la publication « Moayeri, N., Neuhoff D. L, ; Stark, W.E, « Fine-coarse vector quantization » IEEE Trans. on Information Theory, Vol. 37, Issue 4, pp. 1503-1515, JuIy 1991 ». Cette quantification comprend deux quantificateurs. Le premier quantificateur à haute résolution, ou à résolution fine, est généralement bien structuré et peu complexe à mettre en œuvre tandis que le deuxième, à résolution grossière est un quantificateur vectoriel statistique non structuré. Le premier étage sert de pré-calcul pour accélérer la recherche dans le second étage. Le quantificateur « Fine-coarse » souffre des mêmes inconvénients que ceux indiqués précédemment pour la quantification vectorielle statistique. En effet, le lien entre le quantificateur à résolution fine et le quantificateur à résolution grossière est une simple table de correspondance et donc, même si le quantificateur vectoriel à haute résolution est un sous-ensemble fini d'un réseau régulier avec une distance minimale entre les vecteurs de code, cette contrainte n'est pas imposée au quantificateur vectoriel à résolution grossière qui est construit par les techniques classiques de quantification vectorielle statistique.Finally, another form of vector quantization combines algebraic quantization and statistical quantization. This is the case of the fine-coarse vector quantizer "Fine-Coarse Vector Quantization" described in the publication "Moayeri, N., Neuhoff D. L,; Stark, WE, "Fine-coarse vector quantization" IEEE Trans. on Information Theory, Vol. 37, Issue 4, pp. 1503-1515, July 1991 ". This quantization comprises two quantifiers. The first high-resolution, or fine-resolution, quantizer is generally well structured and uncomplicated to implement, while the second, coarse-resolution quantizer is an unstructured statistical vector quantizer. The first floor serves as a pre-calculation to speed up search in the second floor. The quantizer "Fine-coarse" suffers from the same disadvantages as those indicated above for the statistical vector quantization. Indeed, the link between the fine-resolution quantizer and the quantizer Coarse resolution is a simple look-up table and therefore, even if the high-resolution vector quantizer is a finite subset of a regular network with a minimal distance between code vectors, this constraint is not imposed on the vector quantizer with coarse resolution that is constructed by conventional techniques of statistical vector quantization.
Il apparaît donc que la quantification vectorielle statistique aboutit à des dictionnaires dont la répartition des points est mal adaptée, une partie de ces points étant redondants car indiscernables au niveau du récepteur. Inversement, la quantification vectorielle algébrique aboutit à des dictionnaires dont la distribution n'est adaptée que pour des signaux à distribution de probabilité uniforme et aboutit à dégrader la qualité du codage pour les autres signaux.It thus appears that statistical vector quantization results in dictionaries whose distribution of points is poorly adapted, some of these points being redundant because they are indistinguishable at the level of the receiver. Conversely, the algebraic vector quantization results in dictionaries whose distribution is suitable only for signals with a uniform probability distribution and results in degrading the quality of the coding for the other signals.
L'invention a notamment pour avantage de définir un procédé d'obtention d'un dictionnaire par quantification vectorielle statistique adapté au signal à coder et prenant en compte les seuils perceptuels.The invention has the particular advantage of defining a method for obtaining a dictionary by statistical vector quantization adapted to the signal to be encoded and taking into account the perceptual thresholds.
A cet effet, l'invention a pour objet un procédé de génération d'un dictionnaire de quantification vectorielle d'un signal, du type comportant une étape d'analyse statistique de vecteurs d'entraînement représentatifs du signal déterminant un ensemble fini de vecteurs de code représentants lesdits vecteurs d'entraînement, caractérisé en ce que le procédé comporte en outre une étape de modification dudit ensemble fini de vecteurs de code pour imposer une distance minimale entre les vecteurs de code modifiés deux à deux, ces vecteurs modifiés formant ledit dictionnaire. Ainsi, l'invention aboutit à un dictionnaire adapté au signal du fait d'une étape d'analyse statistique des vecteurs d'entraînement mais avec une distance minimale entre les vecteurs de code, ce qui permet de prendre en compte le fait que des vecteurs de code trop proches sont indiscernables au niveau de la perception. Selon d'autres caractéristiques de l'invention, l'étape d'analyse statistique comprend une sous-étape de création d'un dictionnaire initial, une sous-étape de classification des vecteurs d'entraînement à partir du dictionnaire initial pour former des régions de quantification et une sous-étape de détermination d'un centroïde pour chaque région, lesdits centroïdes étant lesdits vecteurs de code. Un tel mode de réalisation correspond à une mise en œuvre particulière d'analyse statistique. Avantageusement, ladite sous-étape de création d'un dictionnaire initial est réalisée à partir desdits vecteurs d'entraînement et comprend le remplacement de chaque vecteur d'entraînement par un vecteur arrondi choisi sur un réseau régulier de points et l'élimination sélective de vecteurs arrondis en fonction de leur fréquence d'apparition. Dans un mode particulier de réalisation de l'invention, l'étape d'analyse statistique comporte en outre une sous-étape de calcul de la distorsion du dictionnaire initial et une sous-étape de comparaison de cette distorsion avec un seuil de tolérance, ladite étape d'analyse statistique étant répétée si ladite comparaison est négative. Une telle approche itérative permet d'obtenir un dictionnaire initial de meilleure qualité.To this end, the subject of the invention is a method for generating a vector quantization dictionary of a signal, of the type comprising a step of statistical analysis of training vectors representative of the signal determining a finite set of vectors of a signal. code representing said drive vectors, characterized in that the method further comprises a step of modifying said finite set of code vectors to impose a minimum distance between the modified code vectors two by two, these modified vectors forming said dictionary. Thus, the invention results in a dictionary adapted to the signal because of a step of statistical analysis of the drive vectors but with a minimum distance between the code vectors, which makes it possible to take into account the fact that vectors too close code are indistinguishable at the level of perception. According to other characteristics of the invention, the statistical analysis step comprises a sub-step of creating an initial dictionary, a substep of classification of the training vectors from the initial dictionary for forming quantization regions and a sub-step for determining a centroid for each region, said centroids being said code vectors. Such an embodiment corresponds to a particular implementation of statistical analysis. Advantageously, said substep of creating an initial dictionary is made from said training vectors and comprises replacing each training vector with a rounded vector chosen on a regular network of points and the selective elimination of vectors. rounded according to their frequency of appearance. In a particular embodiment of the invention, the statistical analysis step further comprises a sub-step of calculating the distortion of the initial dictionary and a substep of comparing this distortion with a tolerance threshold, said statistical analysis step being repeated if said comparison is negative. Such an iterative approach makes it possible to obtain an initial dictionary of better quality.
Dans une variante, l'étape de modification comprend le remplacement de chacun desdits vecteurs de code par un vecteur de code voisin choisi sur un réseau régulier de points. Un tel mode de réalisation permet d'assurer une distance minimale entre les vecteurs de code. Avantageusement, le procédé comporte en outre une étape d'élimination des doublons parmi lesdits vecteurs de code modifiés ce qui a pour conséquence de réduire la taille du dictionnaire.Alternatively, the modifying step includes replacing each of said code vectors with a neighbor code vector selected on a regular network of points. Such an embodiment makes it possible to ensure a minimum distance between the code vectors. Advantageously, the method further comprises a step of eliminating duplicates among said modified code vectors, which has the effect of reducing the size of the dictionary.
Dans un mode de réalisation particulier, ladite étape d'élimination des doublons comporte une sous-étape de recherche des doublons par comparaison des vecteurs de code modifiés entre eux et une sous-étape de suppression des doublons.In a particular embodiment, said duplicate elimination step includes a sub-step of searching for duplicates by comparing the modified code vectors with each other and a sub-step of deleting duplicates.
Avantageusement, le procédé comporte une étape de fusion des vecteurs de code modifiés avec les vecteurs d'entraînement présentant au moins ladite distance minimale entre eux et avec lesdits vecteurs de code modifiés afin d'améliorer la répartition des vecteurs de code du dictionnaire.Advantageously, the method comprises a step of merging the modified code vectors with the drive vectors having at least said minimum distance between them and with said modified code vectors in order to improve the distribution of the code vectors of the dictionary.
Dans un mode de réalisation particulier, cette étape de fusion comporte une sous-étape de remplacement de chaque vecteur d'entraînement par un vecteur arrondi choisi sur un réseau régulier de points et une sous-étape de combinaison des vecteurs de code modifiés et des vecteurs d'entraînement arrondis. Ainsi, les vecteurs d'entraînement arrondi qui sont combinés aux vecteurs de code modifiés, présentent également une distance minimale deux à deux.In a particular embodiment, this melting step includes a substep of replacing each training vector with a rounded vector chosen over a regular network of points and a substep of combining modified code vectors and rounded training vectors. Thus, the rounded training vectors that are combined with the modified code vectors also have a minimum distance of two to two.
Dans encore une variante, ladite étape de fusion comprend en outre l'ordonnancement des vecteurs d'entraînement arrondis selon leur fréquence d'apparition et la sélection d'un nombre fini de ces vecteurs pour les combiner avec les vecteurs de code modifiés. Dans un mode de réalisation, ladite sous-étape de combinaison comprend l'adjonction auxdits vecteurs de code modifiés d'un nombre fini de vecteurs d'entraînement arrondis distincts desdits vecteurs de code modifiés.In yet another variation, said merging step further comprises scheduling the rounded training vectors according to their occurrence frequency and selecting a finite number of these vectors to combine them with the modified code vectors. In one embodiment, said combining sub-step includes adding to said modified code vectors a finite number of rounded training vectors separate from said modified code vectors.
Dans une variante, le réseau régulier de points a un pas correspondant à un niveau de sensibilité d'un récepteur destinataire dudit signal, ce qui permet d'imposer une distance minimale entre deux vecteurs de code correspondant à une réalité perceptuelle.In one variant, the regular network of points has a step corresponding to a sensitivity level of a recipient receiver of said signal, which makes it possible to impose a minimum distance between two code vectors corresponding to a perceptual reality.
Dans encore un autre mode de réalisation, le procédé comporte en outre une phase d'optimisation dudit dictionnaire.In yet another embodiment, the method further comprises an optimization phase of said dictionary.
Par exemple, la phase d'optimisation comporte une étape de calcul de la distorsion du dictionnaire et une étape de comparaison de cette distorsion avec un seuil de tolérance, lesdites étapes d'analyse statistique et de modification étant répétées si ladite comparaison est négative.For example, the optimization phase comprises a step of calculating the distortion of the dictionary and a step of comparing this distortion with a tolerance threshold, said steps of statistical analysis and modification being repeated if said comparison is negative.
Alternativement, la phase d'optimisation comporte au moins une itération du procédé mis en œuvre à partir du dictionnaire formé desdits vecteurs de code modifiés.Alternatively, the optimization phase comprises at least one iteration of the method implemented from the dictionary formed of said modified code vectors.
Par ailleurs, l'invention a également pour objet un programme d'ordinateur comportant des instructions de code pour mettre en œuvre le procédé tel que mentionné précédemment, ainsi qu'un dispositif comportant des moyens tels que, par exemple, une mémoire travail et un processeur, pour exécuter ce programme d'ordinateur et générer ainsi un dictionnaire de quantification vectorielle au sens de l'invention. La présente invention vise aussi des procédés de codage et de décodage, ainsi qu'un décodeur utilisant un dictionnaire obtenu selon l'invention.Moreover, the subject of the invention is also a computer program comprising code instructions for implementing the method as mentioned above, as well as a device comprising means such as, for example, a working memory and a device. processor, to execute this computer program and thus generate a vector quantization dictionary within the meaning of the invention. The present invention also relates to encoding and decoding methods, and a decoder using a dictionary obtained according to the invention.
L'invention sera mieux comprise à la lumière de la description qui suit, faite à titre d'exemple non limitatif en référence aux figures annexées sur lesquelles :The invention will be better understood in the light of the description which follows, given by way of non-limiting example with reference to the appended figures in which:
- la figure 1 est un organigramme du procédé de l'invention ;FIG. 1 is a flowchart of the method of the invention;
- les figures 2 et 3 sont des représentations d'un dictionnaire à différentes étapes du procédé de l'invention ; - la figure 4 est un organigramme d'un procédé d'optimisation ;FIGS. 2 and 3 are representations of a dictionary at different stages of the method of the invention; FIG. 4 is a flowchart of an optimization method;
- les figures 5 et 6 sont des schémas bloc d'un codeur et d'un décodeur mettant en œuvre le dictionnaire obtenu grâce au procédé de l'invention.- Figures 5 and 6 are block diagrams of an encoder and a decoder implementing the dictionary obtained by the method of the invention.
En référence à la figure 1 , on va maintenant décrire un procédé d'obtention d'un dictionnaire de quantification vectorielle selon l'invention.With reference to FIG. 1, a method for obtaining a vector quantization dictionary according to the invention will now be described.
Dans le mode de réalisation décrit, ce procédé est mis en œuvre sur des vecteurs d'entraînement représentatifs d'un signal audiophonique numérisé tel qu'un signal de parole.In the embodiment described, this method is implemented on training vectors representative of a digitized audiophonic signal such as a speech signal.
Ce procédé comprend tout d'abord une étape 10 d'analyse statistique des vecteurs d'entraînement. Dans le mode de réalisation décrit, l'étape 10 correspond à l'application de l'algorithme de Lloyd-Max généralisé.This method firstly comprises a step 10 of statistical analysis of the training vectors. In the embodiment described, step 10 corresponds to the application of the generalized Lloyd-Max algorithm.
L'étape 10 débute par une sous-étape 12 de création d'un dictionnaire initial noté CO. Ce dictionnaire est crée à partir de l'analyse des vecteurs d'entraînement ou par d'autre moyens connus en soi tels qu'une sélection aléatoire d'un nombre fini des vecteurs d'entrainement, ou des algorithmes dits « de splitting », « algorithme LBG », ou autre. Ce dictionnaire initial CO est d'une taille déterminée.Step 10 begins with a sub-step 12 of creating an initial dictionary marked CO. This dictionary is created from the analysis of the training vectors or by other means known per se such as a random selection of a finite number of the training vectors, or so-called "splitting" algorithms, "LBG algorithm", or other. This initial dictionary CO is of a determined size.
Dans le mode de réalisation décrit, le procédé comprend ensuite une sous-étape 14 d'initialisation de variables courantes et notamment d'initialisation d'une variable ITER correspondant à un nombre d'itération et d'une variable DITER correspondant à une valeur de distorsion. L'étape 10 comporte ensuite une sous-étape 16 de classification des vecteurs d'entraînement par rapport au dictionnaire initial CO pour former des régions de classification et une sous-étape 18 de détermination d'un centroïde pour chaque région. Plus précisément, lors de la sous-étape 16 de classification, pour chaque vecteur d'entraînement, on parcourt l'ensemble du dictionnaire courant, c'est-à-dire du dictionnaire CO modifié par itérations successives, et l'on choisit le vecteur de code du dictionnaire minimisant l'erreur quadratique avec le vecteur d'entraînement. La sous-étape 18 est réalisée de la manière suivante : pour chaque classe ou région Vi, on calcule les nouveaux centroïdes.In the embodiment described, the method then comprises a substep 14 for initializing common variables and in particular for initializing an ITER variable corresponding to an iteration number and a DITER variable corresponding to a value of distortion. Step 10 then comprises a substep 16 of classification of the training vectors with respect to the initial dictionary CO to form classification regions and a sub-step 18 of determining a centroid for each region. More precisely, during the sub-step 16 of classification, for each training vector, the whole of the current dictionary, that is to say of the CO dictionary modified by successive iterations, is scanned, and one chooses the dictionary code vector minimizing quadratic error with drive vector. Sub-step 18 is performed as follows: for each class or region Vi, the new centroids are calculated.
On définit Vi l'ensemble des vecteurs d'entraînement xj vérifiant Q(xj) = yi, où Q() est la fonction de quantification et yi est un vecteur de code du dictionnaire. Soit Ni le nombre de vecteurs de Vi, et Vi(j,k) le kième élément du jième vecteur de Vi.We define Vi the set of training vectors xj satisfying Q (xj) = yi, where Q () is the quantization function and yi is a code vector of the dictionary. Let Ni be the number of vectors of Vi, and Vi (j, k) be the kth element of the jth vector of Vi.
On a, pour le kième élément du centroïde yi :We have, for the kth element of the centroid yi:
Lors d'une sous-étape 20, une valeur de distorsion pour le dictionnaire courant est calculée.In a substep 20, a distortion value for the current dictionary is calculated.
Lors de cette sous-étape 20, les vecteurs d'entraînement sont quantifiés avec le dictionnaire courant fourni par les étapes précédentes. L'erreur quadratique entre les vecteurs d'entraînement et leur version quantifiée constitue la mesure de distorsion. Les sous-étapes 16, 18 et 20 sont ensuite répétées de manière itérative jusqu'à ce qu'un nombre maximal d'itérations ITERMAX soit atteint ou que la distorsion soit inférieure à un seuil de tolérance, les tests étant effectués lors d'une sous-étape 22.During this substep 20, the drive vectors are quantized with the current dictionary provided by the preceding steps. The quadratic error between the drive vectors and their quantized version is the distortion measure. The substeps 16, 18 and 20 are then repeated iteratively until a maximum number of ITERMAX iterations is reached or the distortion is less than a tolerance threshold, the tests being carried out at a later time. sub-step 22.
Comme indiqué précédemment, dans l'exemple, cette étape 10, avec notamment la répétition des sous-étapes 16, 18, 20 et 22, correspond à l'application de l'algorithme de Lloyd-Max généralisé. A l'issue de l'étape 10, le procédé délivre ainsi un dictionnaire CITER formé par une analyse statistique itérative des vecteurs d'entraînement.As indicated above, in the example, this step 10, in particular with the repetition of substeps 16, 18, 20 and 22, corresponds to the application of the generalized Lloyd-Max algorithm. At the end of step 10, the method thus delivers a CITER dictionary formed by an iterative statistical analysis of the training vectors.
Une représentation en deux dimensions du dictionnaire CITER est donnée sur la figure 2 sur laquelle les vecteurs de code sont représentés par un nuage de points. Sur cette représentation, les points gris correspondent aux vecteurs d'entraînement ou vecteurs du signal et les points noirs aux vecteurs du dictionnaire. On voit que la répartition des vecteurs du dictionnaire CITER suit la densité des vecteurs d'entraînement et que de nombreux vecteurs sont proches les uns des autres. Le procédé comporte ensuite une étape 30 de modification du dictionnaire CITER pour imposer une distance minimale entre les vecteurs de code deux à deux.A two-dimensional representation of the CITER dictionary is given in Figure 2 in which the code vectors are represented by a scatter plot. In this representation, the gray dots correspond to the training vectors or vectors of the signal and the black dots to the vectors of the dictionary. It can be seen that the distribution of the CITER dictionary vectors follows the density of the drive vectors and that many vectors are close to each other. The method then comprises a step of modifying the CITER dictionary to impose a minimum distance between the two-to-two code vectors.
Cette étape 30 de modification comprend le remplacement de chacun des vecteurs de code par un vecteur voisin choisi sur un réseau régulier de points tel qu'une grille cartésienne. Ces vecteurs modifiés sont également appelés vecteurs arrondis. Dans le mode de réalisation décrit, le vecteur voisin choisi est le vecteur placé sur le réseau régulier le plus proche du vecteur de code. En fonction des modes de réalisation et des types de vecteurs, d'autres critères que la distance entre les vecteurs peuvent être retenus pour déterminer le vecteur voisin d'un vecteur de code.This modification step comprises the replacement of each of the code vectors by a neighboring vector chosen on a regular network of points such as a Cartesian grid. These modified vectors are also called rounded vectors. In the embodiment described, the neighboring vector chosen is the vector placed on the regular network closest to the code vector. Depending on the embodiments and types of vectors, criteria other than the distance between the vectors may be retained to determine the neighboring vector of a code vector.
Ainsi, l'étape 30 délivre un nouveau dictionnaire C obtenu en arrondissant le dictionnaire CITER obtenu à l'étape 10, sur le réseau régulier.Thus, step 30 delivers a new dictionary C obtained by rounding the CITER dictionary obtained in step 10, on the regular network.
L'arrondi des mots de code sur le réseau régulier est réalisé de la manière suivante, en considérant p le pas du réseau :The rounding of the code words on the regular network is done in the following way, considering the pace of the network:
où i =1 ...M, k = 1 ...n et [.jindique l'arrondi à l'entier le plus proche. Le procédé comprend ensuite une étape 32 d'élimination des doublons parmi les vecteurs de code modifiés formant le dictionnaire C. where i = 1 ... M, k = 1 ... n and [.jindicates the rounding to the nearest integer. The method then comprises a step 32 of eliminating duplicates among the modified code vectors forming the dictionary C.
L'étape 32 comprend une sous-étape de recherche des doublons effectuée sur l'ensemble du dictionnaire C en comparant chacun des vecteurs de code aux autres vecteurs de code du dictionnaire puis une sous-étape de suppression de doublons.Step 32 comprises a substep of searching for duplicates performed on the set of dictionary C by comparing each of the vectors code to the other code vectors of the dictionary and then a sub-step of deleting duplicates.
A l'issue de cette étape 32, le dictionnaire C peut comprendre moins de vecteurs de code que le dictionnaire CITER. Le procédé comporte ensuite une étape 34 de fusion du dictionnaire modifié avec les vecteurs d'entraînement arrondis afin de compléter le dictionnaire si sa taille a été réduite.At the end of this step 32, the dictionary C may comprise fewer code vectors than the CITER dictionary. The method then comprises a step 34 of melting the modified dictionary with the rounded training vectors in order to complete the dictionary if its size has been reduced.
Cette étape 34 débute par une sous-étape 36 de remplacement de chaque vecteur d'entraînement par un vecteur voisin, dit vecteur d'entraînement arrondi, choisi sur un réseau régulier de points. Avantageusement, le même réseau que celui de l'étape 30 est utilisé. Les vecteurs d'entraînement arrondis sont ensuite ordonnés selon leur fréquence d'apparition dans un ordre décroissant, avantageusement après avoir éliminé les doublons. Le procédé comporte ensuite une sous-étape 38 de combinaison du dictionnaire C de vecteurs de code modifiés avec les vecteurs d'entraînement arrondis. Au cours de cette sous-étape, le dictionnaire C est complété par l'adjonction des vecteurs d'entraînement arrondis non présents dans le dictionnaire, avantageusement en suivant l'ordre des fréquences d'apparition décroissantes.This step 34 begins with a substep 36 of replacing each training vector with a neighboring vector, called a rounded training vector, chosen on a regular network of points. Advantageously, the same network as that of step 30 is used. The rounded training vectors are then ordered according to their frequency of occurrence in descending order, advantageously after eliminating the duplicates. The method then comprises a sub-step 38 of combining the dictionary C of modified code vectors with the rounded training vectors. During this sub-step, the dictionary C is completed by the addition of the rounded training vectors not present in the dictionary, advantageously following the order of decreasing occurrence frequencies.
Ainsi, le dictionnaire C" est construit de telle sorte qu'une distance minimale soit garantie entre les centroïdes formant les vecteurs de code du dictionnaire de sorte qu'il est qualifié de contraint. Dans l'exemple, les paramètres à quantifier sont pris sur une échelle logarithmique, un pas constant dans ce domaine équivaut à un pas logarithmique dans le domaine des énergies, ce qui correspond à la sensibilité de l'oreille humaine. En choisissant le pas p en fonction d'un seuil perceptuel, il est donc possible, grâce au procédé de l'invention, de générer un dictionnaire de quantification vectorielle statistique prenant en compte les seuils perceptuels. De plus, en combinant le dictionnaire avec les vecteurs d'entraînement arrondis, une meilleure répartition des vecteurs de code est obtenue. La figure 3 représente le dictionnaire C" sous la forme d'un nuage de points en deux dimensions. On remarque, sur la figure 3, que le dictionnaire C" obtenu suivant la méthode décrite précédemment, couvre une zone importante des vecteurs d'entraînement et présente une distance minimale entre les vecteurs de code deux à deux.Thus, the dictionary C "is constructed in such a way that a minimum distance is guaranteed between the centroids forming the code vectors of the dictionary so that it is called constraint, In the example, the parameters to be quantified are taken from a logarithmic scale, a constant step in this domain is equivalent to a logarithmic step in the field of energies, which corresponds to the sensitivity of the human ear.by choosing the pitch p as a function of a perceptual threshold, it is therefore possible by means of the method of the invention, generating a statistical vector quantization dictionary taking into account the perceptual thresholds Moreover, by combining the dictionary with the rounded training vectors, a better distribution of the code vectors is obtained. FIG. 3 shows the dictionary C "in the form of a two-dimensional point cloud. It will be noted in FIG. 3 that the dictionary C" obtained according to the method described above covers a large area of the drive vectors. and has a minimum distance between the two-to-two code vectors.
Le nombre de points apparents du dictionnaire sur la figure 3 est inférieur à celui de la figure 2 même si les deux dictionnaires ont en fait le même nombre de vecteurs de code. En effet les figures 2 et 3 ne représentent que la projection en deux dimensions de vecteurs de dimension plus importante. Les vecteurs de code du dictionnaire illustré à la figure 3 étant arrondis sur un réseau régulier, plusieurs vecteurs sont réduits à un seul point, ce qui n'est pas le cas pour le dictionnaire illustré à la figure 2.The number of apparent points of the dictionary in FIG. 3 is smaller than that of FIG. 2 even if the two dictionaries actually have the same number of code vectors. Indeed, Figures 2 and 3 show only the two-dimensional projection of vectors of larger size. Since the code vectors of the dictionary illustrated in FIG. 3 are rounded on a regular network, several vectors are reduced to a single point, which is not the case for the dictionary illustrated in FIG.
Avantageusement, le procédé comporte en outre une phase 40 d'optimisation du dictionnaire C" dont un organigramme est représenté en référence à la figure 4.Advantageously, the method further comprises a phase 40 for optimizing the dictionary C "whose flowchart is shown with reference to FIG. 4.
L'optimisation débute avec la réception du dictionnaire C" tel qu'obtenu à l'issue du procédé décrit en référence aux figures 1 à 3.The optimization starts with the reception of the dictionary C "as obtained at the end of the process described with reference to FIGS. 1 to 3.
Cette phase d'optimisation consiste, dans le mode de réalisation décrit, à reprendre les mêmes étapes de traitement en les appliquant sur les vecteurs de code du dictionnaire C". Toutefois, dans la phase d'optimisation décrite, à chaque itération, la classification, la détermination des centroïdes, la modification des vecteurs de code et l'élimination des doublons sont réalisées.This optimization phase consists, in the embodiment described, in taking over the same processing steps by applying them to the code vectors of the dictionary C.sub.H However, in the optimization phase described, at each iteration, the classification , the determination of the centroids, the modification of the code vectors and the elimination of the duplicates are carried out.
Ainsi, la phase 40 débute par une étape 42 de classification appliquée sur les vecteurs de code du dictionnaire C" suivie d'une étape 44 de détermination des centroïdes. Ces étapes 42 et 44 sont similaires aux étapes 16 et 18 décrites précédemment.Thus, the phase 40 begins with a classification step 42 applied to the code vectors of the dictionary C "followed by a step 44 of determining the centroids.These steps 42 and 44 are similar to the steps 16 and 18 described above.
Par la suite, une étape 46 de modification par arrondi sur le réseau régulier est réalisée. Cette étape 46 est suivie d'une étape 48 de remplacement des doublons. Enfin, la phase d'optimisation comprend une étape 50 de mesure de la distorsion et un test 52 pour déterminer si la distorsion est inférieure à un seuil de tolérance ou si un nombre maximal d'itérations a été atteint. Une telle phase d'optimisation permet d'améliorer encore la qualité du dictionnaire.Subsequently, a step 46 of modification by rounding on the regular network is performed. This step 46 is followed by a step 48 of replacing the duplicates. Finally, the optimization phase comprises a step 50 of measuring the distortion and a test 52 to determine if the distortion is less than a tolerance threshold or if a maximum number of iterations has been reached. Such an optimization phase makes it possible to further improve the quality of the dictionary.
Bien entendu, d'autres modes de réalisation sont possibles.Of course, other embodiments are possible.
En variante, le dictionnaire initial est créé par élagage des vecteurs d'entraînement arrondis sur le réseau régulier. C'est-à-dire que la création de ce dictionnaire initial comprend le remplacement des vecteurs d'entraînement par des vecteurs voisin choisis sur le réseau régulier puis l'élimination sélective, en fonction de leur fréquence d'apparition, des vecteurs d'entraînement arrondis. Dans encore une autre variante, la phase d'optimisation consiste à répéter le procédé de la figure 1 à l'identique en utilisant comme dictionnaire initial le dictionnaire obtenu précédemment.Alternatively, the initial dictionary is created by pruning rounded training vectors on the regular network. That is to say, the creation of this initial dictionary comprises the replacement of the drive vectors by neighboring vectors selected on the regular network and then the selective elimination, according to their frequency of appearance, of the vectors of rounded training. In yet another variant, the optimization phase consists in repeating the method of FIG. 1 identically, using as initial dictionary the dictionary obtained previously.
Dans une autre variante, l'étape de fusion est mise en œuvre entre les vecteurs de code modifiés et les vecteurs d'entraînement non arrondis. Dans un tel mode de réalisation, les vecteurs d'entraînement utilisés sont toutefois choisis afin de garantir le maintient de la distance minimale entre les vecteurs de code du dictionnaire.In another variant, the melting step is implemented between the modified code vectors and the unrounded training vectors. In such an embodiment, however, the drive vectors used are chosen to ensure the maintenance of the minimum distance between the code vectors of the dictionary.
Le procédé de génération d'un dictionnaire tel que décrit précédemment peut être mis en œuvre grâce à un programme pour tout type de calculateur et d'ordinateur.The method of generating a dictionary as described above can be implemented through a program for any type of computer and computer.
En référence aux figures 5 et 6, un codeur et un décodeur utilisant des dictionnaires obtenus selon le procédé de l'invention sont décrits.With reference to FIGS. 5 and 6, an encoder and a decoder using dictionaries obtained according to the method of the invention are described.
Ces codeurs et décodeurs font partie d'un système global de codage et décodage audio hiérarchique en sous-bandes qui fonctionne à trois débits possibles : 8, 12 ou 13.65 Kbit/s. En pratique le codeur fonctionne toujours au débit maximal de 13.65 Kbit/s, tandis que le décodeur peut recevoir le cœur à 8 kbit/s, ainsi qu'une ou deux couches d'amélioration, respectivement à 12 ou 13.65 kbit/s.These encoders and decoders are part of a global hierarchical subband audio coding and decoding system that operates at three possible bit rates: 8, 12 or 13.65 Kbit / s. In practice the encoder always operates at the maximum rate of 13.65 kbit / s, while the decoder can receive the heart at 8 kbit / s, and one or two enhancement layers, respectively 12 or 13.65 kbit / s.
Le codeur 60 représenté sur la figure 5, comporte deux voies recevant le signal d'entrée. La première voie comporte une unité 62 de filtrage apte à extraire une bande basse BF de 0 à 4000 Hz du signal. La seconde voie comporte une unité similaire 64 apte à extraire une bande haute HF s'étalant de 4000 à 8000Hz. Ces unités 62 et 64 comportent par exemple, des filtres et des modules de décimation réalisés de manière classique.The encoder 60 shown in FIG. 5 comprises two channels receiving the input signal. The first channel comprises a filter unit 62 able to extract a low band BF from 0 to 4000 Hz of the signal. The second channel comprises a similar unit 64 capable of extracting a high band HF spreading from 4000 to 8000Hz. These units 62 and 64 comprise, for example, filters and decimation modules made in a conventional manner.
Le signal de bande basse est ensuite codé selon un codage CELP classique tel qu'un codage CELP encastré de 8 à 12 Kbits/s dans une unité de codage 66.The low band signal is then coded according to a conventional CELP coding such as a CELP encode of 8 to 12 Kbps in a coding unit 66.
Le signal de bande haute est codé notamment en utilisant une quantification vectorielle dans une unité 70. Dans le mode de réalisation décrit, l'unité 70 est une unité de codage paramétrique dans laquelle les paramètres codés sont des enveloppes temporelle et fréquentielle du signal correspondant respectivement à la valeur efficace obtenue par moyenne quadratique (r.m.s. pour « root mean square ») par sous-trame ou sous-bande du signal de bande haute. Ces enveloppes sont passées dans un domaine logarithmique comme suit: où σ est la valeur de l'enveloppe.The high band signal is coded in particular by using a vector quantization in a unit 70. In the embodiment described, the unit 70 is a parametric coding unit in which the coded parameters are time and frequency envelopes of the corresponding signal respectively. to the root mean square (rms) value per subframe or subband of the high band signal. These envelopes are passed in a logarithmic domain as follows: where σ is the value of the envelope.
Pour chaque trame du signal d'entrée des paramètres d'enveloppe temporelle et d'enveloppe fréquentielle sont extraits dans des modules d'analyse paramétrique 72 et 74. Ces paramètres dans le domaine logarithmique sont ensuite quantifiés conjointement dans un module 76 de quantification vectorielle en utilisant des dictionnaires générés selon l'invention.For each frame of the input signal of the time envelope and frequency envelope parameters are extracted in parametric analysis modules 72 and 74. These parameters in the logarithmic domain are then jointly quantized in a vector quantization module 76. using dictionaries generated according to the invention.
Plus précisément, dans le mode de réalisation décrit, le codage des paramètres est réalisé par une quantification vectorielle dite produit cartésien à moyenne supprimée.More precisely, in the embodiment described, the coding of the parameters is carried out by a vector quantization called Cartesian product with suppressed average.
On calcule la moyenne μ du vecteur d'enveloppe temporelle puis cette moyenne est quantifiée. La moyenne quantifiée est notée μq. Les vecteurs d'enveloppe temporelle et d'enveloppe fréquentielle sont ensuite centrés sur μq avant d'être quantifiés séparément et multiplexes.The mean μ of the time envelope vector is calculated and then this average is quantized. The quantized mean is noted μq. The temporal envelope and frequency envelope vectors are then centered on μq before being separately quantized and multiplexed.
La quantification de la moyenne μ est réalisée par une quantification scalaire uniforme dont le pas p=0.99657 est le seuil perceptuel, c'est-à-dire le pas du réseau régulier utilisé pour générer le dictionnaire. La quantification vectorielle à produit cartésien est effectuée en utilisant le dictionnaire obtenu selon l'invention et dans lequel les vecteurs de code stockés sont des mots avec une distance minimale de p=0.99657, ce qui correspond à un pas de 6dB. Les deux voies HF et BF sont ensuite multiplexées dans un multiplexeur 80 pour former le signal de sortie du codeur 60.The quantization of the mean μ is performed by a uniform scalar quantization whose pitch p = 0.99657 is the perceptual threshold, that is to say the step of the regular network used to generate the dictionary. The Cartesian product vector quantization is performed using the dictionary obtained according to the invention and in which the stored code vectors are words with a minimum distance of p = 0.99657, which corresponds to a step of 6 dB. The two channels HF and BF are then multiplexed in a multiplexer 80 to form the output signal of the encoder 60.
Le décodeur correspondant 100 est décrit en référence à la figure 6.The corresponding decoder 100 is described with reference to FIG.
Ce décodeur comprend tout d'abord un démultiplexeur 102 séparant les voies correspondantes aux parties basse bande et haute bande du signal. La voie correspondant au signal en basse bande est introduite dans un décodeur CELP 104. Ce décodeur CELP fournit également des paramètres d'excitation calculés de manière classique en soi.This decoder firstly comprises a demultiplexer 102 separating the corresponding channels at the low band and high band portions of the signal. The channel corresponding to the low-band signal is introduced into a CELP decoder 104. This CELP decoder also provides excitation parameters calculated in a conventional manner per se.
La voie correspondant au signal en haute bande est introduite dans une unité de décodage 1 10 utilisant notamment une quantification vectorielle inverse 1 12.The channel corresponding to the high band signal is introduced into a decoding unit 1 10 using in particular a reverse vector quantization 1 12.
La sortie de ce module 1 12 est fournie à un module de mise en forme temporelle 114. Ce module 1 14 reçoit également un signal d'excitation synthétique généré par un module 116 à partir des paramètres d'excitation CELP fournis par le décodeur CELP 104. L'unité 1 10 comporte enfin un module de mise en forme fréquentielleThe output of this module 1 12 is supplied to a temporal shaping module 114. This module 1 14 also receives a synthetic excitation signal generated by a module 116 from the CELP excitation parameters supplied by the decoder CELP 104 The unit 1 10 finally comprises a frequency shaping module
1 18.1 18.
De façon symétrique au codage des paramètres, le décodage s'effectue par dénormalisation des enveloppes temporelle et fréquentielle déquantifiées par la moyenne déquantifiée. Enfin, les deux voies sont traitées dans des modules de traitement 120 et 122 avant d'être recombinées entre elles dans un mixeur 124.Symmetrically to the coding of the parameters, the decoding is carried out by denormalization of the temporal and frequency envelopes dequantized by the dequantized average. Finally, the two paths are processed in processing modules 120 and 122 before being recombined with each other in a mixer 124.
L'architecture et le fonctionnement d'un tel codeur et d'un tel décodeur sont classiques en eux-mêmes et ne seront pas décrits plus en détail ici. Une description détaillée est faite dans le document UIT-T, COM 16, D214 (WP 3/16), "High level description of the scalable 8-32 kbit/s algorithm submitted to the Qualification Test by Matsushita, Mindspeed and Siemens," Q.10/16, Study Period 2005-2008, Geneva, 26 JuIy - 5 August 2005 (Source: Siemens). The architecture and operation of such an encoder and decoder are conventional in themselves and will not be described in more detail here. A detailed description is given in ITU-T, COM 16, D214 (WP 3/16), "High level description of the scalable 8-32 kbit / s algorithm submitted to the Qualification Test by Matsushita, Mindspeed and Siemens," Q.10 / 16, Study Period 2005-2008, Geneva, 26 July - 5 August 2005 (Source: Siemens).

Claims

REVENDICATIONS
1. Procédé de génération d'un dictionnaire de quantification vectorielle (C") d'un signal, du type comportant une étape (10) d'analyse statistique de vecteurs d'entraînement représentatifs du signal déterminant un ensemble fini de vecteurs de code (CITER) représentants lesdits vecteurs d'entraînement, caractérisé en ce que le procédé comporte en outre une étape (30) de modification dudit ensemble fini de vecteurs de code pour imposer une distance minimale entre les vecteurs de code modifiés deux à deux, ces vecteurs de code modifiés formant ledit dictionnaire.A method of generating a vector quantization dictionary (C ") of a signal, of the type comprising a step (10) of statistical analysis of training vectors representative of the signal determining a finite set of code vectors ( CITER) representatives said drive vectors, characterized in that the method further comprises a step (30) of modifying said finite set of code vectors to impose a minimum distance between the modified code vectors two to two, these vectors of modified code forming said dictionary.
2. Procédé selon la revendication 1 , caractérisé en ce que l'étape (10) d'analyse statistique comprend une sous-étape (12) de création d'un dictionnaire initial (CO), une sous-étape (16) de classification desdits vecteurs d'entraînement à partir du dictionnaire initial pour former des régions de quantification et une sous-étape (18) de détermination d'un centroïde pour chaque région, lesdits centroïdes étant lesdits vecteurs de code.2. Method according to claim 1, characterized in that the step (10) of statistical analysis comprises a sub-step (12) for creating an initial dictionary (CO), a substep (16) classification said drive vectors from the initial dictionary for forming quantization regions and a sub-step (18) for determining a centroid for each region, said centroids being said code vectors.
3. Procédé selon la revendication 2, caractérisé en ce que ladite sous- étape (12) de création d'un dictionnaire initial est réalisée à partir desdits vecteurs d'entraînement et comprend le remplacement de chaque vecteur d'entraînement par un vecteur arrondi choisi sur un réseau régulier de points et l'élimination sélective de vecteurs arrondis en fonction de leur fréquence d'apparition.3. Method according to claim 2, characterized in that said substep (12) for creating an initial dictionary is made from said training vectors and comprises replacing each training vector with a chosen rounded vector. on a regular network of points and the selective elimination of vectors rounded according to their frequency of appearance.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'étape d'analyse statistique comporte en outre une sous- étape (20) de calcul de la distorsion du dictionnaire initial et une sous-étape (22) de comparaison de cette distorsion avec un seuil de tolérance, ladite étape (10) d'analyse statistique étant répétée si ladite comparaison est négative. 4. Method according to any one of claims 1 to 3, characterized in that the statistical analysis step further comprises a sub-step (20) for calculating the distortion of the initial dictionary and a substep (22). ) of comparing this distortion with a tolerance threshold, said step (10) of statistical analysis being repeated if said comparison is negative.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'étape (30) de modification comprend le remplacement de chacun desdits vecteurs de code de l'ensemble fini par un vecteur de code voisin choisi sur un réseau régulier de points.The method according to any one of claims 1 to 4, characterized in that the modifying step (30) comprises replacing each of said code vectors of the finite set with a neighbor code vector selected on a network. regular points.
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte en outre une étape (32) d'élimination des doublons parmi lesdits vecteurs de code modifiés.6. Method according to any one of claims 1 to 5, characterized in that it further comprises a step (32) for eliminating duplicates among said modified code vectors.
7. Procédé selon la revendication 6, caractérisé en ce que ladite étape7. Method according to claim 6, characterized in that said step
(32) d'élimination des doublons comporte une sous-étape de recherche des doublons par comparaison des vecteurs de code modifiés entre eux et une sous-étape de suppression des doublons en fonction de leur fréquence d'apparition.(32) duplicate elimination comprises a substep of finding duplicates by comparing the modified code vectors with each other and a sub-step of removing duplicates as a function of their occurrence frequency.
8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte en outre une étape (34) de fusion des vecteurs de code modifiés avec des vecteurs d'entraînement présentant au moins ladite distance minimale entre eux et avec lesdits vecteurs de code modifiés.8. Method according to any one of claims 1 to 7, characterized in that it further comprises a step (34) of merging the modified code vectors with drive vectors having at least said minimum distance between them and with said modified code vectors.
9. Procédé selon la revendication 8, caractérisé en ce que l'étape fusion comporte une sous-étape (36) de remplacement de chaque vecteur d'entraînement par un vecteur arrondi choisi sur un réseau régulier de points et une sous-étape (38) de combinaison des vecteurs de code modifiés et des vecteurs d'entraînement arrondis.9. Method according to claim 8, characterized in that the melting step comprises a substep (36) for replacing each driving vector with a rounded vector chosen on a regular network of points and a substep (38). ) combination of the modified code vectors and the rounded training vectors.
10. Procédé selon la revendication 9, caractérisé en ce que ladite étape (36) de fusion comprend en outre l'ordonnancement des vecteurs d'entraînement arrondis selon leur fréquence d'apparition et la sélection d'un nombre fini de ces vecteurs pour les combiner avec les vecteurs de code modifiés. The method according to claim 9, characterized in that said melting step (36) further comprises scheduling the rounded entrainment vectors according to their occurrence frequency and selecting a finite number of these vectors for the combine with the modified code vectors.
1 1. Procédé selon l'une quelconque des revendications 9 et 10, caractérisé en ce que ladite sous-étape (38) de combinaison comprend l'adjonction auxdits vecteurs de code modifiés d'un nombre fini de vecteurs d'entraînement arrondis distincts desdits vecteurs de code modifiés.A method according to any of claims 9 and 10, characterized in that said combining sub-step (38) comprises adding to said modified code vectors a finite number of rounded training vectors distinct from said modified code vectors.
12. Procédé selon l'une quelconque des revendications 3, 5 ou 9, caractérisé en ce que ledit réseau régulier de points a un pas correspondant à un niveau de sensibilité d'un récepteur destinataire dudit signal.12. Method according to any one of claims 3, 5 or 9, characterized in that said regular network of points has a step corresponding to a sensitivity level of a receiver to said signal.
13. Procédé selon l'une quelconque des revendications 1 à 12, caractérisé en ce qu'il comporte en outre une phase (40) d'optimisation dudit dictionnaire formé desdits vecteurs de code modifiés.13. Method according to any one of claims 1 to 12, characterized in that it further comprises a phase (40) for optimizing said dictionary formed of said modified code vectors.
14. Procédé selon la revendication 13, caractérisé en ce que la phase (40) d'optimisation comporte une étape (50) de calcul de la distorsion du dictionnaire et une étape (52) de comparaison de cette distorsion avec un seuil de tolérance, lesdites étapes de d'analyse statistique et de modification étant répétées si ladite comparaison est négative.14. Method according to claim 13, characterized in that the optimization phase (40) comprises a step (50) for calculating the distortion of the dictionary and a step (52) for comparing this distortion with a tolerance threshold, said steps of statistical analysis and modification being repeated if said comparison is negative.
15. Procédé selon la revendication 13, caractérisé en ce que la phase15. Method according to claim 13, characterized in that the phase
(40) d'optimisation comporte au moins une itération du procédé mis en œuvre à partir du dictionnaire formé desdits vecteurs de code modifiés.(40) optimization comprises at least one iteration of the method implemented from the dictionary formed of said modified code vectors.
16. Dictionnaire de quantification vectorielle (C") comportant des vecteurs de code représentant des vecteurs d'entraînement représentatifs d'un signal, caractérisé en ce qu'il est obtenu par un procédé selon l'une quelconque des revendications 1 à 15.Vector quantization dictionary (C ") comprising code vectors representing training vectors representative of a signal, characterized in that it is obtained by a method according to any one of claims 1 to 15.
17. Programme d'ordinateur pour la génération d'un dictionnaire de quantification vectorielle (C") d'un signal, caractérisé en ce qu'il comporte des instructions de code pour la mise en œuvre d'un procédé selon l'une quelconque des revendications 1 à 15 lorsqu'il est exécuté sur un calculateur d'un ordinateur.17. Computer program for generating a vector quantization dictionary (C ") of a signal, characterized in that it comprises code instructions for the implementation of a method according to one of any of claims 1 to 15 when executed on a computer of a computer.
18. Dispositif générateur d'un dictionnaire de quantification vectorielle (C"), caractérisé en ce qu'il comporte des moyens pour exécuter le programme d'ordinateur selon la revendication 17.18. Device generating a vector quantization dictionary (C "), characterized in that it comprises means for executing the computer program according to claim 17.
19. Procédé de codage d'un signal comportant au moins une étape d'analyse du signal pour en obtenir des paramètres représentatifs, caractérisé en ce qu'au moins un desdits paramètres représentatifs est codé par quantification vectorielle à l'aide d'un dictionnaire généré par un procédé selon l'une quelconque des revendications 1 à 15.19. A method for coding a signal comprising at least one signal analysis step to obtain representative parameters, characterized in that at least one of said representative parameters is coded by vector quantization using a dictionary. generated by a process according to any one of claims 1 to 15.
20. Codeur (60) de signaux comportant au moins des moyens (72, 74) d'analyse du signal pour en obtenir des paramètres représentatifs, caractérisé en ce qu'il comporte en outre des moyens (76) de codage d'au moins un desdits paramètre représentatifs par quantification vectorielle à l'aide d'un dictionnaire généré par un procédé selon l'une quelconque des revendications 1 à 15.Signal encoder (60) comprising at least signal analysis means (72, 74) for obtaining representative parameters, characterized in that it further comprises means (76) coding at least one of said representative parameters by vector quantization using a dictionary generated by a method according to any one of claims 1 to 15.
21. Procédé de décodage d'un signal comportant au moins une étape de traitement de paramètres représentatifs dudit signal, caractérisé en ce qu'au moins un desdits paramètres représentatifs est décodé par quantification vectorielle inverse à l'aide d'un dictionnaire généré par un procédé selon l'une quelconque des revendications 1 à 15.21. A method for decoding a signal comprising at least one step of processing parameters representative of said signal, characterized in that at least one of said representative parameters is decoded by inverse vector quantization using a dictionary generated by a process according to any one of claims 1 to 15.
22. Décodeur (100) de signaux comportant au moins des moyens de traitement de paramètres représentatifs dudit signal, caractérisé en ce qu'il comporte en outre des moyens (1 12) de décodage d'au moins un desdits paramètres représentatifs par quantification vectorielle inverse à l'aide d'un dictionnaire généré par un procédé selon l'une quelconque des revendications 1 à 15. 22. Signal decoder (100) comprising at least means for processing parameters representative of said signal, characterized in that it further comprises means (1 12) for decoding at least one of said representative parameters by inverse vector quantization. using a dictionary generated by a method according to any one of claims 1 to 15.
EP07731724A 2006-03-21 2007-03-09 Restrained vector quantisation Withdrawn EP2005756A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0602452 2006-03-21
PCT/FR2007/050908 WO2007107659A2 (en) 2006-03-21 2007-03-09 Restrained vector quantisation

Publications (1)

Publication Number Publication Date
EP2005756A2 true EP2005756A2 (en) 2008-12-24

Family

ID=36763212

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07731724A Withdrawn EP2005756A2 (en) 2006-03-21 2007-03-09 Restrained vector quantisation

Country Status (6)

Country Link
US (1) US8285544B2 (en)
EP (1) EP2005756A2 (en)
JP (1) JP4981122B2 (en)
KR (1) KR101370018B1 (en)
CN (1) CN101467459B (en)
WO (1) WO2007107659A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4871246B2 (en) * 2007-10-30 2012-02-08 日本電信電話株式会社 Vector quantization method and apparatus, their program, and computer-readable recording medium recording the same
TWI376960B (en) * 2009-07-31 2012-11-11 Univ Nat Pingtung Sci & Tech Codebook generating method for image compression
CN102307372B (en) * 2011-08-26 2014-12-17 电信科学技术研究院 Lloyd-Max-quantizer-based data compression method and equipment
EP2831757B1 (en) * 2012-03-29 2019-06-19 Telefonaktiebolaget LM Ericsson (publ) Vector quantizer
US11347941B2 (en) * 2019-04-30 2022-05-31 Marvell Asia Pte, Ltd. Methods and apparatus for compressing data streams
CN113779103B (en) * 2021-03-02 2024-04-09 北京沃东天骏信息技术有限公司 Method and device for detecting abnormal data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817157A (en) * 1988-01-07 1989-03-28 Motorola, Inc. Digital speech coder having improved vector excitation source
US6393394B1 (en) * 1999-07-19 2002-05-21 Qualcomm Incorporated Method and apparatus for interleaving line spectral information quantization methods in a speech coder
JP3483513B2 (en) * 2000-03-02 2004-01-06 沖電気工業株式会社 Voice recording and playback device
JP3983532B2 (en) * 2001-12-05 2007-09-26 日本放送協会 Scene extraction device
KR101190875B1 (en) * 2004-01-30 2012-10-15 프랑스 뗄레콤 Dimensional vector and variable resolution quantization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
WO2007107659A2 (en) 2007-09-27
KR20090005027A (en) 2009-01-12
US8285544B2 (en) 2012-10-09
KR101370018B1 (en) 2014-03-06
JP4981122B2 (en) 2012-07-18
JP2009530940A (en) 2009-08-27
US20100228808A1 (en) 2010-09-09
CN101467459B (en) 2011-08-31
WO2007107659A3 (en) 2008-12-18
CN101467459A (en) 2009-06-24

Similar Documents

Publication Publication Date Title
EP2374123B1 (en) Improved encoding of multichannel digital audio signals
EP1709743A1 (en) Dimensional vector and variable resolution quantisation
RU2326450C2 (en) Method and device for vector quantisation with reliable prediction of linear prediction parameters in voice coding at variable bit rate
EP0310175B1 (en) Coding device for digital video signals, and decoding device therefor
EP1692689B1 (en) Optimized multiple coding method
EP2183851A1 (en) Encoding/decoding by symbol planes with dynamic calculation of probability tables
EP2727107B1 (en) Delay-optimized overlap transform, coding/decoding weighting windows
EP2424117A2 (en) Sparse data compression
EP2005756A2 (en) Restrained vector quantisation
WO2007046027A1 (en) Audio coding
EP2176861A1 (en) Hierarchical coding of digital audio signals
EP2289171B1 (en) Method for processing numerical data
EP1037196B1 (en) Method for coding, decoding and transcoding an audio signal
EP1692687A1 (en) Transcoding between the indices of multipulse dictionaries used for coding in digital signal compression
EP1836699B1 (en) Method and device for carrying out optimized audio coding between two long-term prediction models
EP1197952B1 (en) Coding method of the prosody for a very low bit rate speech encoder
EP2289172B1 (en) Method for enumeration of vectors in a regular lattice of points
WO2008104725A1 (en) Optimised algebraic encoding and decoding method, and related modules and computer software
EP1525663A1 (en) Digital data compression robust relative to transmission noise
WO2024213553A1 (en) Optimised quantisation of latent space in neural audio encoding
EP4268024A1 (en) Method and device for transmitting data representing a digital hologram, method and device for constructing a digital hologram and system for transmitting and constructing a digital hologram
EP1756806A1 (en) Method for quantifying an ultra low-rate speech encoder
Deshpande et al. Audio Spectral Enhancement: Leveraging Autoencoders for Low Latency Reconstruction of Long, Lossy Audio Sequences
FR3143245A1 (en) Method and device for coding and decoding images.
WO1993002527A1 (en) Digital image transmission rate statistical control method

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080916

AK Designated contracting states

Kind code of ref document: A2

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

AX Request for extension of the european patent

Extension state: AL BA HR MK RS

R17D Deferred search report published (corrected)

Effective date: 20081218

RIC1 Information provided on ipc code assigned before grant

Ipc: H04N 7/26 20060101AFI20090128BHEP

Ipc: H03M 7/30 20060101ALI20090128BHEP

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

Owner name: ORANGE

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

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20170202

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

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

18D Application deemed to be withdrawn

Effective date: 20170613