Vous êtes sur la page 1sur 26

Chapitre 02:

La quantification véctorielle
Chapitre 02 : La quantification véctorielle

2.1. Introduction:

La quantification vectorielle, comme méthode de compression de données, joue un rôle très


important dans le domaine de la communication, que ce soit dans un but de transmission ou
d'archivage d'informations. Cette méthode s'applique essentiellement dans les domaines de
traitement d’image et de la parole. La quantification vectorielle quantifie un ensemble de
valeurs conjointement, comme un seul bloc ou vecteur. Cela consiste alors à représenter tout
vecteur x par un autre vecteurY i R i de même dimension mais ce dernier appartenant à un
ensemble fini de L vecteurs (niveaux). Le but de la compression étant d'extraire une
information maximale tout en ne créant qu'un minimum de distorsion par rapport au signal
original. Les meilleurs résultats en codage sont obtenus si l'on quantifie des vecteurs plutôt
que des scalaires. En contre partie une complexification des systems ainsi que des délais de
calcul plus importants sont nécessaires. Ce gain de la quantification vectorielle sur la
quantification scalaire est notamment dû à l'exploitation des corrélations existantes entre les
composantes des vecteurs.

2.2. Principe de la quantification vectorielle:

Par extension à la quantification scalaire, qui quantifie chaque valeur d’un signal
d’une manière indépendante, la quantification vectorielle quantifie un ensemble de valeurs
conjointement. La quantification vectorielle VQ (vector quantization) consiste alors à
représenter tout vecteur x de dimension k par un vecteur yi de même dimension appartenant à
un ensemble fini appelé dictionnaire Y. Les vecteurs y i ∈Y sont appelés les vecteurs
représentants, les vecteurs de Repréderroduction ou les vecteurs-code.

Un quantificateur vectoriel de dimension k et de taille N peut être défini


mathématiquement comme une application Q de R K vers le dictionnaire Y de R K :

Q : RK → Y

x → Q (x )= yi (2.1)

6
Chapitre 02 : La quantification véctorielle

où { y 0 , y 1 , … y N−1 } et y i ∈ Rk pour 0 ≤ i< N . Cette application Q determine implicitement une


partition de l'espace source Rk en N régions : Ri , i =0,..., N -1 où la région Ri est associée au
vecteur y i . Ces régions sont appelées classes, cellules ou régions de Voronoϊ. Généralement,
la taille du dictionnaire Y (le nombre de vecteurscode du dictionnaire) est de la forme N=2n,
où n est le nombre de bits utilisés pour représenter chaque indice binaire d’un vecteur-code y i
. Pour une abréviation de notation, l’indice binaire i est écrit comme un entier positif. Un
quantificateur vectoriel se décompose généralement en deux fonctions séparées : l’encodeur et
le décodeur

2.2.1. L’encodeur:

Le rôle de l’encodeur consiste, pour tout vecteur x du signal d'entrée, à recherché dans
le dictionnaire Y le vecteur-code y i le plus proche de x . La notion de proximité est modélisée
par une fonction de distance entre les deux vecteurs x et yi : d(x, yi) .
Dans le cas de la distance Euclidienne on à:

k−1
d ( x , y i ) =∑ (x j − y i , j)2(2.2)
j=0

T T
Oux=[ x 0 , x 1 , … , x k−1 ] et y i =[ y i ,0 , yi , 1 , … , y i ,k−1 ] . Les régions de Voronoϊ sont données par:

Ri= { x ∈ Rk lQ ( x ) = y i , sid ( x , γ i ) ≤ d ( x , y i ) ∀ j≠ i } (2.3)

Avec: Ri ∩ R j =∅ ,i ≠ j, ∀i=0 ,1 , … , N−1 , ∀ j=0,1, … , N−1

Tous les vecteurs x de Rk qui appartiennent à la région Ri sont représentés par le


même vecteur y i du dictionnaire γ .

Soit I =1 ,0{ ,..., N-1} l'ensemble des indices correspondant au dictionnaire γ et yi


( i ϵ I ) l'ensemble des vecteurs de γ . La compression d'information est réalisée à ce niveau car
c'est uniquement l'indice du vecteur-code yi minimisant le critère de
distorsion qui sera transmis ou stocké au lieu du vecteur lui même. Cette opération, qui perd
de l'information, fait que la QV est une opération irréversible, le signal original ne pourra plus
être restitué. La quantité d'information requise pour représenter le vecteur source est donnée
par le débit binaire r en bits par composante du vecteur, ou bits par dimension, ou encore bits
par échantillon :
7
Chapitre 02 : La quantification véctorielle

1
r = log 2 ( N ) . [ bits /échantillo n ](2.4)
k

Le nombre de bits par vecteur-code (appelé aussi la résolution du quantificateur) est alors
donné par : n = kr (bits/vecteur)

Figugr 2.1:Shéma general d'un quantificateur vectoriel.

2.2.2 Le décodeur:

Le décodeur est considéré comme un récepteur dont la tâche est la reconstruction du


vecteur source. Pour cela, il dispose d'une réplique du dictionnaire qu'il consulte afin de
restituer le vecteur-code correspondant à l'indice reçu. Le décodeur réalise donc l'opération de
décompression. On donne à la figure 2.1 le schéma général d’un quantificateur vectoriel.

2.2.3 Quantificateur vectoriel optimal:

Pour une distribution statistique donnée de la source et un débit donné, le quantificateur


optimal est celui qui minimise la distorsion moyenne :

D=E ¿ (2.5)

où X est un vecteur source aléatoire dans Rk , avec la fonction densité de probabilité (pdf)

spécifiée et qui correspond à la pdf conjointe des composantes X i ,


i =0, ..., k - 1, du vecteur X . Pour un quantificateur vectoriel donné ayant pour dictionnaire
Y = { y i=0 à N−1 } et pour partition les classes Ri , i = à 0 N – 1 , la distorsion moyenne est
donnée par :

8
Chapitre 02 : La quantification véctorielle

N −1 ❑
D= ∑ ∫ d ( x , y i ) f X ( x ) dx (2.6)
i=0 x ∈Ri

Dans la pratique, on utilise un ensemble suffisamment grand de vecteurs d’apprentissage


x j ( j=0 à N t ) assez représentatif de la statistique de la source à coder.
Dans ce cas la distorsion moyenne peut être estimée par l’opérateur :

N −1
D= ∑ [ d ¿ ¿ (2.7)
i=0

Pour un débit donné, le quantificateur optimal est celui qui minimise la distorsion moyenne
D. La recherche de l’optimum global est très complexe (cela consiste à chercher
simultanément la meilleure partition et les meilleurs vecteurs-code qui minimisent la
distorsion moyenne D), dans la pratique la conception d’un quantificateur (localement)
optimal est réalisée d’une manière itérative en vérifiant les deux conditions d’optimalités
suivantes:
1. Pour un dictionnaire Y = { y 0 , y 1 , … , y N−1 } donné, la partition optimale est celle qui vérifie:

Ri= { x l d ( x , y i ) ≤d ( x , y i ) , j ≠i , ∀ j∈ { 0,1 , … , N −1 } } (2.8)

C’est la règle du plus proche voisin.


2. Pour une partition donnée, le vecteur représentant yi doit minimiser la distorsionassociée à
la cellule Ri . Le vecteur y i est donc le centroїde de cette cellule :

y i=cent ( Ri ) Lorsque la distance Euclidienne est utilisée, le centroїde de la cellule Ri


correspond au vecteur moyen de tous les vecteurs appartenant à cette cellule :

1
y i= ∑ x j(2.9)
∥ Ri ∥ jl x j ∈R i

Où∥ Ri ∥ est le cardinal (le nombre de vecteurs) de la cellule Ri . .L'élaboration du dictionnaire


d’un quantificateur vectoriel se fait à partir d'une séquence d'apprentissage.
La méthode la plus populaire est l’algorithme de Lloyd-Max généralisé, appelé aussi
algorithme LBG

2.2.4 Algorithme LBG:

9
Chapitre 02 : La quantification véctorielle

Cet algorithme proposé par Linde, Buzo et Gray correspond à une extension de l'algorithme
de Lloyd-Max utilisé pour l'élaboration de dictionnaires dans le cas de la quantification
scalaire ; d’où son appellation Lloyd-Max généralisé. Pour un dictionnaire initial donné et
utilisant une séquence d'apprentissage représentative de la statistique de la source à coder, le
rôle de l’algorithme est d'essayer d'optimiser l'encodeur et le décodeur. L'algorithme LBG est
une application des deux conditions d’optimalité où la partition et le dictionnaire sont mis à
jour itérativement. L’algorithme est donné au tableau 1.1 .Cet algorithme d'optimisation
itératif fonctionne à partir d'un dictionnaire initial. Le problème est don reporté sur le choix
de ce dictionnaire initial dont l'expérience a prouvé qu'il contribuait fortement aux
performances de l'algorithme LBG.

Chaque itération ne provoquant qu'un changement local du dictionnaire, l'algorithme


converge vers le minimum local le plus proche du dictionnaire initial.
Citons la méthode d’initialisation par dichotomie vectorielle, cette méthode a été proposée
dans la version initiale de l'algorithme de LBG sous le nom de "splitting".

Tableau 1.1: Algorithme LBG

10
Chapitre 02 : La quantification véctorielle

Tableau 1.1: Algorithme LBG

*Entrées

- Une séquence d’apprentissage : x i , i=0,1 ,…, N i−1


- Un dictionnaire initial y (0 ) de taille N
- Un seuil α >0
- Un nombre maximum d’itération P
1- Initialisation :
- D
(−1)
=∞
- M=0
2- Classification

2.1- Pour le dictionnaire courant y ={ y ¿i −i=0,1 , … , N −1 }. Trouver la partition optimale


(m ) (m)

R(m)= { R(m
i , i=0,1 , … , N−1 } qui minimise la distorision moyenne, soit :
)

(m ) ( m)
x ∈ R(m
i si d ( x , y i ) <d ( x , y i ) . ∀ j≠ i
)

N−a
(m )
2.2- Calcul de la distorison moyenne : D = ∑ ¿ ¿
i−0

3- test de fin

D (m−i)−D (m)
si
( D (m ) )
≤ ∝ ou m= p alors arrèter le traitement (le V final est décrit par la partition

(m ).
R
(m)
et≤dictionnaire Y autrement continuer à l’étape suivante

3- Réactualiser le dictionnaire :
- Pour la partition R(m), calculer le dictionnaire optimal Y (m−i) ,i=0 ,1 , , … , N −1

Avec y (m =cent ( R(im) )


−i )
i

11
Chapitre 02 : La quantification véctorielle

- mm+1
- aller à l’étape 2

Cette méthode produit une succession de dictionnaires de tailles croissantes où à


chaque boucle le nombre de vecteurs-code, de dimension fixe, est multiplié par deux.
L’algorithme est résumé comme suit:

1-Le premier dictionnaire est constitué d’un seul vecteur-code y 0, qui est le centroїde

de toute la séquence d’apprentissage { x i } i=0 , … , N 1

2-Ce vecteur-code y 0 est ensuite fractionné en deux vecteurs-code y 0- ε et y 0 + ε , où ε est


un vecteur de perturbation fixe. L’algorithme LBG est ensuite appliqué sur ce dictionnaire (de
deux vecteurs) pour produire un dictionnaire (localement optimal) de taille 2.

3-Le processus de fractionnement est appliqué sur chaque vecteur-code du dictionnaire (de
taille 2) de l’étape précédente. Ceci génère un dictionnaire de taille 4 et l’algorithme LBG est
appliqué pour optimiser ce dictionnaire. Le processus est répété jusqu’à obtenir un
dictionnaire optimal de taille désirée N.

2.2.5 Complexité de la recherche au sein du dictionnaire

Le dictionnaire, de taille N, obtenu par l’algorithme LBG ne possède aucune structure


particulière facilitant la recherche du plus proche voisin. Ainsi pour trouver le vecteur-code le
plus proche du vecteur source à coder, N calculs de distances sont nécessaires. Cette
procédure de recherche exhaustive a une complexité d'ordre N=2rk où r est le débit, en
bits/échantillon, et k est la dimension des vecteurs. Il apparaît donc que la complexité (de
calcul et de mémorisation) croit exponentiellement avec la dimension (à débit fixe) et le débit
(à dimension fixée). La complexité de memorization (ou de stockage) est définie comme la
taille mémoire nécessaire pour le stockage du dictionnaire : elle est de Nk unités mémoires
(réels ou floats). Lorsque la distance Euclidienne est utilisée (équation (1.2.)), la complexité
de recherche au sein du dictionnaire exige : Nk multiplications, 2( k - 1) N additions et N -1
comparaisons. Or des performances élevées ne sont atteintes qu'aux débits élevés; mais
l'opération de codage devient alors très coûteuse en calculs. Ceci a conduit à envisager de

12
Chapitre 02 : La quantification véctorielle

nouvelles méthodes de quantification vectorielle permettant un codage avec une complexité


de calcul et de mémorisation plus faibles. On parle alors de quantification vectorielle
structurée à l’opposée de la quantification vectorielle non-structurée.

2. 3 Construction du dictionnaire

2.3.1. But de la classification

La classification fait partiede la grande famille des techniques d'analysede données,


son but comme le précise Roux dans[ROU-85] est d'obtenir une représentation schématique
simple d'un tableau rectangulaire de données dont les colonnes sont des des cripteurs de
I'ensemble des observations places en lignes.

L'objectif de la classification est donc de répartil l'échantillon de données en groups


d'observations homogènes ou classes, chaque classe étantbien différentiée des autnes.

2.3.2. Définition d'une partition

Soit un ensemble de M elements

On dit que (s) est une partition de s’il existe un ensemble de sous-ensembles

S= { S I ; i=1 , … , N } non vides ,tels que :

i=1∪ , … , N i=S avec Si ≠ ∅

Si ∩S j =∅ ∀ i ≠ j

2.3.3. Problèmesde la classification automatique

Le problème majeur de la classification automatique est lié au volume de données à


analyser.
Chercher la meilleure partition d'un ensemble S au sens d'un critère donné consiste à examiner
toutes les partitions possible de I'ensemble S . C'est une solution difficile à envisager pour des
ensembles degrande dimension.

13
Chapitre 02 : La quantification véctorielle

Ceci étant,il est difficile d'imaginer un algorithme fournissant une partition optimale
au sens d'un critère fixé. C'est pourquoi I'on a recours à des heuristiques, c'est-à-dire des
algorithmes
dont on considère qu'ils sont suffisamment raisonnables pour donner des resultants
satisfaisants. Ces algorithmes consistent à déterminer des partitions en s'imposant un certain
nombre de contraintes pour rendre le calcul possible.

2.4 Quantification Vectorielle structurée

D'une façon générale ces méthodes consistent à imposer au dictionnaire des


contraintes structurelles afin de simplifier (réduire la complexité) le codage, cependant une
certaine dégradation de qualité est observée comparée à celle d’une quantification vectorielle
non-structurée (aucune structure n’est imposé au dictionnaire). Il s’agit alors de faire un
compromis. Dans la plupart des applications pratiques, cette dégradation des performances est
souvent compensée par une réduction importante en complexité

2.4.1 Quantification vectorielle divisée

La quantification vectorielle divisée SVQ (Split Vector Quantization), consiste à


diviser le vecteur source, candidat à la quantification, en un certain nombre de sous-vecteurs
de dimensions fixes et prédéterminés. Chaque sous-vecteur est codé avec un quantificateur

indépendant. Soit x=[ x 0 , x 1 , … , x k−1 T ] Le vecteur x peut être écrit comme suite:

T
x=[ x T1 , x T2 , … , x Tk ] où T désigne la transposée et x i est un sous-vecteur (colonne) de

dimension l i tel que :

∑ li =k (2.10)
i=l

La figure 2.2 montre le diagramme de l’encodeur et du décodeur SVQ. Le sous-vecteur x m de

dimension l m est quantifié en ^x m= y qui est un vecteur-code d’indice i issu du dictionnaire y (m )


(m)
i

de taille N m et de dimension l m Donc, le vecteur-code y (1)


i 1 est extrait du premier dictionnaire

y
(1)
de taille Ni et de dimension l1 le vecteur-code y (2i 2)
est extrait du deuxième dictionnaire y (2 )de taille N 2 et de dimension l 2 ; et ainsi de suite. Par

abus de langage on désigne par Q m et Q−1


m respectivement les opérations de codage et de

14
Chapitre 02 : La quantification véctorielle

décodage du quantificateur. L’opérateur Q m fournit, alors, l’indice du vecteur-code (issu du


dictionnaire y (m ) le plus proche du sous-vecteur y m .

En utilisant la distance Euclidienne, l’erreur de quantification entre le vecteur source x et le


vecteur quantifié ^y est le résultat de la somme des erreurs de quantification des K sous-
vecteurs:

k
∥ x−^x ∥ 2=∑ ∥ x i−^x i ∥ 2 (2.11)
iml

Par conséquent, la recherche au sein de chaque dictionnaire peut être effectuée


indépendamment des autres dictionnaires (l’ordre dans lequel la recherche est effectuée n’est
pas important) toute en garantissant que le vecteur quantifié obtenu est le meilleur
résultat. Donc, l’ensemble d’indicesi=[ i 1 ,i 2 ,… , i k ] trouvé au niveau du l’encodeur est
l’ensemble optimal.

Figure 2.2: Encodeur et décodeur du quantification SVQ

Donc, pour la quantification SVQ, la recherche séquentielle au sein de tous les dictionnaires
est optimale puisque elle est équivalente à la recherche exhaustive qui consiste à essayer tous
les ensembles d'indices possibles. Notons enfin que la conception d’un quantificateur SVQ à
K dictionnaires consiste à élaborer chaque dictionnaire (algorithme LBG) indépendamment
des autres. La quantification SVQ a été utilisée par Paliwal et Atal pour une quantification
efficace des coefficients de prédiction linéaire (Appendice A) avec un débit de 24 bits/trame.

2.4.2Quantification vectorielle multi-étages

L'idée fondamentale de la quantification multi-étages MSVQ (multistage vector


quantization) consiste à diviser l’opération de quantification en plusieurs étages successifs. Le

15
Chapitre 02 : La quantification véctorielle

premier étage quantifie le vecteur source x. Puis, le deuxième étage opère


une quantification sur le vecteur d’erreur entre le vecteur source original et le vecteur
quantifié par le premier étage. Le vecteur d’erreur fournit une deuxième approximation au
vecteur source original produisant ainsi une représentation plus précise du vecteur
source. Un troisième étage peut alors être utilisé pour quantifier l'erreur du deuxième étage
pour fournir une autre amélioration et ainsi de suite . Un quantificateur MSVQ à K étages est
associé à K dictionnaires (un dictionnaire pour chaque étage) appelés dictionnaires-étage. La
figure 2.3 donne les diagrammes de l’encodeur et du décodeur d’un quantificateur MSVQ. À
l’encodeur, le vecteur source x est comparé avec:

^x = y (1il )+ y(2) (k)


i2 +…+ y ik (2.12)

Où y (m
i
)
est le vecteur-code d’indice i issu du m ième dictionnaire-étage (le dictionnaire

associé a l’étage m de la structure MSVQ). Donc, le vecteur-code y (1)


f 1 est issu du premier

dictionnaire-étage y (1) de taille N 1 ; le vecteur-code y (2f 2) est issu du deuxième dictionnaire-


étage y (N )de taille N 2; et ainsi de suite. Notons que tous les vecteurs-code sont de même
dimension

Figure 2.3: Encodeur et décodeur du quantification MSVQ à K étage

En choisissant différents ensembles d’indices, l’encodeur essaie de minimiser la distance


entre les vecteurs x et x^ . L’ensemble d’indices ¿ [ i 1 , i 2 , … , i k ] , minimisant la distance, est
transmis au décodeur. Les vecteurs-code issus des différents étages sont alors additionnés
pour former le vecteur quantifié ^x du vecteur source x (figure 2.3).
Pour un quantificateur MSVQ à K étages avec K dictionnaires de tailles N 1 , N 2 , … , N k , la

16
Chapitre 02 : La quantification véctorielle

résolution (en bits/vecteur) de chaque étage est donnée par : r i=log 2 N 2 , r 2=log 2 N 2 ,
r k =log 2 N k. La résolution du quantificateur est donnée par :

k k k
r =∑ r i=∑ log 2 N i=log 2
f =1 f =1
(∏ )
f =1
Ni (2.13)

Pour un quantificateur MSVQ à K étages correspondants à K dictionnaires-étage de tailles


N 1 N 2 , … , N k , la tâche de l’encodeur consiste à chercher l’ensemble d’indices i=[ i 1 ,i 2 ,… i k ]
qui minimise l’erreur de quantification entre le vecteur quantifié ^x (équation (2.12) et le
vecteur source x . La détermination de l'ensemble d'indices optimal i est un problème
d'optimisation combinatoire complexe qui peut être résolu, en général, seulement en essayant
tous les ensembles d'indices possibles. On parle alors de recherché exhaustive dont la
complexité de calcul est très élevée. Des méthodes de recherché séquentielles sous optimales
sont typiquement utilisées dans la pratique pour réduire la complexité de calcul.
La conception d’un quantificateur MSVQ à K étages consiste à élaborer les K dictionnaires
associés. Deux méthodes de conception sont largement utilisées en pratique. L’algorithme de
conception séquentielle (où les K dictionnaires sont élaborés séquentiellement et de manière
ordonnée du premier au dernier dictionnaire) et l’algorithme de conception conjoint, où tous
les dictionnaires sont conjointement optimisés. L'algorithme de conception conjoint est plus
performant que l'algorithme de conception séquentiel . La méthode de conception séquentielle
procède comme suit :

1- L’algorithme LBG est appliqué sur la séquence d’apprentissage x n ,n=0,1 … , N t−1 pour
produire le dictionnaire du premier étage y (1) .

2-Pour le deuxième étage, une nouvelle séquence d’apprentissage est générée comme suit:

x(2)
n =xn −Q 1 (x n) (2.14)

où Q 1 (.) est la fonction de quantification du premier étage. Cette nouvelle sequence


d’apprentissage est utilisée pour créer (en appliquant l’algorithme LBG) le dictionnaire du
deuxième étage. En général, le dictionnaire du l ième étage est généré en utilisant la
séquence d’apprentissage suivante :

( i−1 )
x(1)
n = xn −Qi−1 ¿ (2.15)

17
Chapitre 02 : La quantification véctorielle

Avec x(1)
n = xn

Il est facile de montrer que la quantification SVQ est un cas particulier de la quantification
MSVQ. En effet, la quantification vectorielle divisée est une version particulière de la
quantification vectorielle multi-étages où une contrainte est imposée:

les vecteurs-code de chaque étage ont des composantes nulles et il n'y a pas d’échantillons
non nuls qui se recouvrent entre les vecteurs-code de deux étages quelconques. La
quantification MSVQ est moins sous-optimale que la quantification SVQ puisqu’aucune
contrainte n’est imposée sur les composantes des vecteurs-code. Cependant la
quantification MSVQ est plus complexe

2.4.3Quantification vectorielle arborescente

La quantification vectorielle arborescente TSVQ (Tree structured VQ) est une technique très
efficace pour la réduction de la complexité de codage d’un quantificateur vectoriel .
Cependant, le prix à payer consiste en une augmentation de la complexité de mémorisation et
une dégradation de performance comparée à la quantification vectorielle non-structurée. Un
arbre équilibré m-aire de hauteur (profondeur) L est un arbre constitué de plusieurs niveaux
(du niveau l = à 1 L ). Chaque niveau est constitué de plusieurs nœuds et chaque nœud est
associé à un dictionnaire de m vecteurs-code. m branches sortent de chaque nœud (une
branche pour chaque vecteurcode du dictionnaire associé au nœud) et chaque branche pointe

vers un nœud du niveau suivant. Chaque niveau l est donc constitué de nœuds

(dictionnaires) ou encore de vecteurs-code. Le nombre de vecteurs-code du niveau le plus

élevé de l’arbre (niveau L) est donc de . La figure 2.4 donne un exemple d’un arbre m-
aire de hauteur L = 3 (du niveau l = 3 à 1 ).

L’encodeur effectue en premier lieu une recherche au sein du dictionnaire racine C pour
localiser le vecteur-code produisant la distorsion minimale (le vecteur-code le plus proche du
vecteur source x). L’indice i du vecteur-code sélectionné pointe vers le prochain dictionnaire
(du niveau l = 2 de l’arbre) impliqué dans le processus de recherche. La recherche est
effectuée donc au sein du dictionnaire C i et l’indice j du vecteur-code sélectionné pointe vers
le prochain dictionnaire C i , j . Supposons que le prochain niveau l = 3 est le dernier (comme
montré à la figure 2.4) niveau, la recherché au sein du dictionnaire c i , jproduit alors le vecteur-
code correspondant au vecteur quantifié ^x du vecteur source x. Pour un arbre m-aire de hauteur

18
Chapitre 02 : La quantification véctorielle

L, le nombre de calculs de distances est réduit donc à mL au lieu de m L (pour une recherche
exhaustive de tous les vecteurs-code du niveau le plus élevé de l’arbre).
Le décodeur n’a besoin que des vecteurs-code des dictionnaires du niveau le plus élevé de
l’arbre et est identique à une QV conventionnelle. Cependant, pour une transmission
progressive, le vecteur quantifié est mis à jour à chaque fois qu’un niveau de
l’arbre est atteint. Une séquence complète d’indices est transmise (un indice pour chaque
niveau de l’arbre) par l’encodeur et dans ce cas le décodeur a besoin de tous les dictionnaires
de la structure arborescente pour construire des approximations de plus en plus fine du
vecteur quantifié .

Pour un arbre m-aire de hauteur L, le nombre total de nœuds est donc de :

1+m+m 2+ …+mL−1 et puisque chaque nœud correspond à un dictionnaire de m vecteurs-code,


le nombre de vecteurs-code qui doivent être stockés est donc de :

m( mL −1)
N ' =m ( 1+m+ m2+ …+mL−1) = (2.16)
m−1

Donc la complexité de mémorisation augmente pour une quantification TSVQ compare à une
quantification non structurée où seulement mL vecteurs-code doivent être stockés.
Cependant la réduction en complexité de calcul peut être très importante pour une
quantification TSVQ : mL au lieu de mL (pour un dictionnaire non structuré). Pour un arbre
binaire équilibré, on a m = 2 et la complexité de recherche est réduite par un facteur de 2 L/2L,
alors que la complexité de mémorisation est de 2(2L-1) vecteurs, un peu
moins que le double de la mémoire requise pour le stockage d’un dictionnaire non structure

19
Chapitre 02 : La quantification véctorielle

Figure 2.4: quantification vectorielle arborescente

Notons qu’une structure MSVQ peut être vue comme un cas particulier d’une structure
TSVQ. En effet, prenons l’exemple de la figure 2.4. Le nombre de dictionnaires du deuxième
et du troisième niveau de l’arbre pourrait être réduit à un seul dictionnaire contenant des
vecteurs-code erreurs. Dans ce cas la structure correspondrait à une structure MSVQ à trois
étages. D’une façon plus générale une structure TSVQ peut subir une contrainte : Au lieu
d’une croissance exponentielle du nombre de dictionnaires d’un niveau à l’autre, le nombre de
dictionnaires pourrait être limité à partir du deuxième niveau de l’arbre. On parle alors de
quantification vectorielle avec contrainte de stockage CSVQ (constrained-storage VQ) .

2.5. Supériorité de la quantification vectoriellle sur celle scalaire

2.5.1 Resultats de Zador

La théorie de linformation annonce d'une façon générale que de meilleurs resultants en


codage de source sont obtenus si des vecteurs sont quantifiés des plutot que des scalaires

20
Chapitre 02 : La quantification véctorielle

Figure 2.5: Exemple d'un voisinage utilize en prediction linéaire.

(voir l’annexe B). En contre une complexification des systems ainsi que des délais de calcul
plus importants sont necessaries. Ce gain de la QV sur la QS est notament du à l’exploitation
de la mémoire de la source (I,e, des correlations existantes entre les coordonnées des
vacteurs). Ador (ador 82) à théoriquement prouvé la supériorité de la QV sur la QS meme si
les échantillons de la source sont statistiquement indépendants.

En reprenant les notations de la partie 2.2, nous precisions la definitions de l’EQM (par
dimension) dans le cas vectoriel) ou PX(X) est alors la densité je probabilité conjoinnte du
vecteur X (un code à longer fixe est suppose construit):

❑ L ❑
1
D=
kR
∫ d 2 ( x , y i )−P X (X ) dx= 1k ∑ ∫ d 2 ( x , y i) −P X (X ) dx (2.17)
k i=l Ci

Nous recherchons le quantificateur optimal (i.e. les vecteurs représentants Yi ) qui pour k, L,
et PX(X) donnés minimisent D:

min D
D ( k , L, PX )=
yi

D (k, L, PX) est l’erreur minimale qui peut-ètre atteinte. Zador à démentré qu’il est possible
de réduire D en quantifiant des vecteurs de grandes dimensions. Exactement il a prouvé, en
adoptent l’hypothèse haute resolutions, que:

2
lim ¿ L →+∞ L k . D ( k , L , PX )=Gk ¿

21
Chapitre 02 : La quantification véctorielle

Que nous pouvons réécrire (sachant L=2R.k avec l’équation 2.3):

D¿ (2.18)

k
La repartition optimal des vecteurs de reproduction est donc celle proportionnelle à PX( X ) k+2

le parameter Gk ne depend que de la dimension k (il depend aussi du choix de la métrique), et

1
zador à montré qu’il décroit lorsque k augmente. Si k →+∞: Gk → ≅ 0.05855 (soit un
2. π .C
gain maximal par rapport à la quantification scalaire).

Interpretation et calcul de GK

2
lim L →+ ∞ L k . D (k , L, PX)
GK =
∥ P X (x) ∥ k
k +2

Nous concédérons le cas simple ou les X sont uniformément distribués sur une grande region
de Rk (sur une hyberboule). Alors sur cet espace:

1
P X (X )= L ❑

∑ ∫ dx ❑
i=1 ci

D est minimale si chaque yi est au centre de son voronoi, et en consédirant l’hypothèse haute
resolution (i,e. L trés grand, il n’y a pas de problem de bord):

L ❑

∑ ∫ d 2 ( x , yi ) . dx
1 i=1 c
D= . L (2.19)
k ❑

∑ ∫ dx
i=1 ci

Nous calculons:

∥ P X (x) ∥ k =¿
k+2

Finalement:

D(k , L , Px) (2.20)


G k =lim ¿ L→+ ∞ ¿¿

22
Chapitre 02 : La quantification véctorielle

En consédirant la quantification optimale d’une source uniforme et des conditions


asymptotiques, Gk qui dépend de la forme du voronoi, s’interpète comme le rapport de
l’erreur quandratique moyenne (par dimension) sur un facteur le randant dimension. Zador à
donc montré que cette erreur peut ètre réduite en utilisant k grand.

Gersho (gersho 79) à montré sous certaines conditions (source uniforme, haute résolution) que
l’erreur quadratique par dimension est donnée par le moment d’inertie d’ordre 2 du voronoi.

En effet, en consédirant l’équation 2.11 et en notant vol ( C i )=∫ dx :


Ci

L ❑
1
. ∑ ∫ d2 ( x , y i ) dx
1 L i=1 Ci
Gk =lim ¿ L→+ ∞ ,
k ¿¿

La source considérée étant uniforme, nous adoptons le cas ou les vecteurs de reproduction
sont les points d’un réseau régulier. Les voronoi sont alors congrues au mème polytope ∆,
alors:

∫ d 2 ( x , 0 ) dx
1 ∆
Gk ( ∆ ) = .
k vol ¿ ¿

Nous retrouvons le moments d’inertie normalisée d’ordre 2 de ∆ .Il est alors possible de
déterminer dans certains cas particuliers la forme optimale du polytope qui minimise.

Gk (∆ ¿ et donc la distorsion sur tout l’espace. Par exemple si k=1, les représentatnts sont
uniformément distribués sur la droite réelle, nous construisons le réseua ou les voronoi sont
des intervalles de longeur 1, ∆ est l’intervalle (-1/2, +1/2) (c’est le réseau du chapitre 3).
Nous obtenons:

+1/ 2

∫ x 2 dx
1
G1 ( ∆ )= −1+1/2/2 = ≅ 0.08333
12
∫ dx
−1/ 2

Ce resultants est classique en quantification: si une variable uniforme est quantifiée


scalairement, l’erreur quandratique moyenne est 1/12. Pour k=2, le polytope optimal est

23
Chapitre 02 : La quantification véctorielle

5
hexagonal, et G2 ( ∆ )= ≅ 0.080175. lorsque la dimension croit encore, les forms des
36 √ 3
polytopes se rapprochent de celle sphérique (meme si il est impossible de recouvrir un espace
à l’aide de spheres sans provoques des trous ou des recouvrements). En effet, lasphère (centre
à l’origine et de rayon unitaire) à le moment d’inertie le plus faible, ce dernier représente alors

l k/ 2
une borne minimale appelée “sphere bound”: G k ( ∆)≥ .vol(S)-2/k avec vol ( S )= ∥ .
k +2 ¿¿

Nous contentions de préciser que conay et Sloane ont precise, lors de l’etude des réseaux
réguliers de points, une borne plus precise appelée “conay and Sloane conjecture bound”. Des
valeurs de Gk ont été tabulées.

Puissance de l’erreur de quantification dans le cas d’un processus gaussien

Pour un processus gaussien centre:

1
PX ( x)=
¿¿

Soit:

k
∥ P X (X ) ∥ k+ 2 =2. π . ¿ (2.21)

En reprenant l’équation 2.9:

k+2
k +2
2
σ =G K .2. π .
Q
k ( )
. 2
. σ 2x . ( det ( Γx ( k ) ) ¿1 /k . 2−2 R ) =ck . σ 2x . ¿

(2.22)

Avec:

k+2
k +2
C k =G h .2. π . ( )
k
. 2

Ck est donc une function décroissante avec k, pour k = 1 nous netrouvons le resultants de
l’équation 2,4, pour k →+∞ :ck =1.

24
Chapitre 02 : La quantification véctorielle

L’equation 2.13 est à rapprocher de l’equation 2.6 obtenue avec le QS prélictif .

25.2 Gains de la quantication vectorielle sur celle scalaire

considérer l’équation 2.9 donnant Gp (∞)), car si nous consédirons les cas asymptotiques
d’une prédiction d’ordre infini pour le cas scalaire (i.e. P +∞) et d’une QV à l’aide de
vecteurs de taille infinie (i.e. P +∞), le gain apporté par la QV relativement au QS est égal à
C1 = 4,35 dB. Ce premier resultats souligne la supériorité du QV capable de tirer profit de
toutes les dépendances existantes au sein du signal.

Les resultats de zador établissent de façon générale le supériorité de la QV sur la QS car elle
permet d’obtenir un signal mieux reconstruit (dans le cas de sources identiques). A partir de
l’expression donnée par zador ‘l’équation 2.9), lookabaugh et Gray (Lookabaugh et al. 89) ont
alors distigué les différents gains théoriques déterminant cette supériorité de la QV. En
définissant le gain QV/QS : GV(k), comme étant le rapport sous l’hpothèse haute facteurs ou
gains indépendants :

∥ Px (x)∥ 1 ∥ PX ( x) ∥ 1 ∥ P x X ( x)∥ 1
D(1 ,+∞ , px ) G G
= 1. k
= 1. k 2
G(kV )= .
D(k ,+∞ , PX) G k ∥ PX (x)∥ k Gk ∥ PX ∥ k ∥ PX ∥ k
(x) ( X)

k +2 k+2 k+2

25
Chapitre 02 : La quantification véctorielle

Ou P x X (x) est la densité de probalité conjointe de la source supposée sans mémoire, c’est
donc le produit des densités marginales :

k
P x X (x)=∏ px (xi) (2.23)
i=1

Nous distinguons:

- le gain de partitionnement ou de structure (“space filling advantage”):

G1
G p ( k )=
Gk

- le gain de forme ou de distribution (« shape advantage ») :

∥ px ( x)∥ 1
k
G F ( k )= x
∥ P X ( x )∥ k
k+2

- le gain en mémoire (« memory advantage ») :

∥ p x X ( x) ∥ k
k +2
G M ( k )=
∥ pX ( x)∥ k
k+2

Gain de partitionnement

Gp(k) caractérise la façon dont le quantificateur couvre l’espace à l’aide des Voronoi
(il est indépendant des caractéristiques de la source). Alors que des Voronoi rectangulaires
correspondent nécessairement à k quantificateurs scalaires, le QV autorise un libre choix dans
la forme des voronoi et permet une optimisation du partitionnement de l’espace (il répond au
problème d’empilement de sphères dans un espace qui sera présenté au chapitre 3), et donc

26
Chapitre 02 : La quantification véctorielle

une diminition moyenne. L’explication rside dans l’interprétation de Gk que nous avons faite
précédemment.

Il est important de noter que le gain de structure espéré de la QV sur la QS reste peu

1
significatif (e. g. Gp (10) = 0,75 dB, Gp (+ ∞ )= ≅ 0,05855=1,5 dB¿ .
2. π . c

2.5.2.2- Gain de forme

Ce gain est directement lié à la forme de la densité de probabilité marginale de la


source, car (pour la source sans mémoire):

27
Chapitre 02 : La quantification véctorielle

∥ p x X (x )∥ k
❑ k k+2

k+2 (∫ (∏ ) )
=
R
k i=1
px
(xi )
. 2
dx i =¿¿

La propriété d’équirépartition développée au chapitre 3, souligne que la distribution de


vecteurs équiprobables d’une source sans mémoire se fait approximativement dans un volume
determine de l’espace. Ce volume est function du produit des densités de probabilité
marginales et est d’autant plus compact que la source suit une loi “étroite” (e. g. c’est un
hypercule si la source est uniforme, une hyperboule si la source est gaussienne, et unz
hyperpyramide si elle est laplacienne).

Afin de minimiser la distorsion la QV peut tenir compte de cette distribution spatial des
vecteurs (alors que le QS ne peut qu’attribuer des niveaux de decisions sur l’axe reel), tout en
adaptant le volume des voronoi à la densité vectorielle (ce qui correspond à l’adaptation des
pas de quantification du QS). A titre d’exemple nous indiquons que le gain de forme pour une
source uniforme et unitaire (i.e. il n’y a aucun avantage par rapport à la QS), pour un process
3 /2
gaussien centre G F (k)=(3 )/¿ donc GF(10) = 2,4 dB, G F (+ ∞ )=2,81 dB .

Ce gain est d’autant plus élevé que la source suit une loi fine, mais il n’enregistre qu’une
faible augmentation au-de la dimension 8.

2.5.2.3 Gain en mémoire

Ce gain est du aux dependances linéaires et non linéaires existantes entres les
difféerentes composantes des vecteurs. En effet ces dépendances se traduisent par une
distribution des vecteurs dans un volume plus ou moins allongé dans l'espace ce volume
allongé est dautant plus étroit que la dépendance entre les coordonnées des vecteurs est
grande [Moureaux 94] . Nous rappelons lexemple de variables gaussiennes qui se répartissent
dans une hyperboule si elles sont indépendantes et dans une hyperellipse lorsque la corrélation
entre les échantillons augmente (ce volume, à un coefficient prés, est égal à Γ x (k ) ¿1/ k .
La QV va donc à nouveau tirer profit de cette distribution plus compacte de la source pour
répartir les représentants. Le gain en mémoire croit évidemment lorsque les dépendances
entre les coordonnées vectorielles sont plus fortes (il peut etre trés important meme pour une
source uniforme). Ceci explique quil est judicieux de choisir lors du découpage de la sous
bande dune image transformée, une configuration de bloc privilégiant laxe selon lequel les
pixels sont les plus corrélés. Nous comprenons aussi que la QV ne réclame pas

28
Chapitre 02 : La quantification véctorielle

que les coordonnées des vecteurs à quantifier soient décorrélées car il sadapte justement à
cette correlation, par contre il faut chercher à décorréler au maximum les vecteurs entre eux

En reprenant le cas dun processus gaussien (equation 2.12):

∥ pk X (X ) ∥ k
=2. π . ¿¿
k +2

Donc:

G M (K )=1/¿

GM(K) estw toujours supérieur à 1 et la QV est donc toujours preferable.

A titre d’exemple, pour un processus autoregressive gaussien du 2e ordre résultat du filtrage


d’un bruit blanc par un filter de transfer définit dans (Moreau95):

1 1
=
A (z) 1+a1 . z + a2 . z−2
−1

Avec a 1=1,27 et a 2=0,81 ,G M (+ ∞ )=5,75=7,6 dB .

2.6- Conclusion

Cette étude souligne que la supériorité de la QV est due à sa capacité de mettre


directement à profit les propriétés des composantes des vecteurs source pour effectuer une
meilleure répartition des représentants dans l'espace. Les gains augmentent alors toujours
avec la dimension. Cette analyse théorique reposant sur l'hypothèse haute resolution, présente

29
Chapitre 02 : La quantification véctorielle

évidemment des bornes asymptotiques que nous ne pouvons quapprocher. Mais il faut
remarquer que pour une source sans mémoire meme dans les conditions idéales au delà de la
dimension 8 le gain samenuise [Lookabaugh et al.89] La distinction des trios gains de
partitionnement de forme et d mémoire est aussi trés utile pour la conception d'un
quantificateur vectoriel, afin de préciser les caractéristiques du système et d'en analyser les
performances.
La partie suivante décrit alors le quantificateur vectoriel optimal dont les résultats sont les
plus proches de ceux théoriques, mais cela au prix d'une complexité calculatoire rédhibitoire
en codage dimages.

30

Vous aimerez peut-être aussi