Algorithmes et techniques de compression

Transcription

Algorithmes et techniques de compression
PROGRAMME D’ACTION DE SOUTIEN À LA FORMATION ET À LA RECHERCHE
2000-PAS-32
Alexandru Isar
Andrei Cubiţchi
Miranda Naforniţă
Algorithmes et techniques
de compression
Editura ORIZONTURI POLITEHNICE, 2002
Text finanţare : grant AUPELF-UREF 2000-PAS-32, “Méthodes modernes
de traitement du signal pour la compression de données dans les modems
haut débit”.
Referent ştiinţific : Prof. dr. ing. Ioan Naforniţă
Tehnoredactare : Isar Alexandru
Coperte : Naforniţă Miranda, Isar Alexandru, Cubiţchi Andrei
Le professeur Alexandru Isar, doyen adjoint de la Faculté d’Electronique et
Télécommunications de l’Université “Politehnica” de Timişoara est un spécialiste réputé dans le
domaine du traitement du signal, de l’analyse en ondelettes et des représentations tempsfrequence. Plusieurs parmi ses travaux scientifiques ont devenu des titres de référence dans les
domaines déjà énumérés, motif pour lequel il a été invité de donner des conférences à l’étranger
aussi.
Le docteur ingénieur Andrei Cubiţchi, est P.D.G. de la société commerciale
GOLDSTERN et spécialiste dans le domaine des communications avec les mobiles. Il est aussi
un ingénieur très doué. Il a publié quelques travaux de spécialité très bien reçus par la
communauté scientifique.
Madame le professeur Miranda Naforniţă est l’un de meilleurs professeurs du
département de Télécommunications de la faculté de Timişoara. Son expérience dans le domaine
de la transmission de données et de la théorie de l’information et du codage lui a donné une vision
d’ensemble dans le domaine des télécommunications. En conséquence elle a été invitée à
présenter des conférences à l’étranger. Elle est l’auteur des nombreux travaux scientifiques, dont
quelques-uns sont devenus des références dans les domaines correspondants. Sa competence a été
confirmée aussi par le fait qu’elle a obtenu le grant AUPELF-UREF: 2000-PAS-32.
Préface
Ce livre est le résultat des recherches effectuées par les trois auteurs dans
le domaine de la compression des données, en général, et du signal de parole, en
particulier. Il n’est pas nécessaire de justifier la nécessité de la compression des
signaux. Je dirai seulement qu’un grand nombre de collectifs de recherche
prestigieux, du monde entier, s’occupent de ce problème. Il y a nombreuses
conférences et articles publiés, dédiés à ce sujet; on a élaboré déjà des standards et
sont faits des nouvelles propositions de standards. Malheureusement les standards
existants pour la compression à pertes du signal de parole ne se réfèrent pas à la
qualité du signal reconstruit. Les auteurs ont voulu, et je pense qu’ils ont arrivé à
élaborer une méthodologie de compression à pertes du signal de parole, en gardant
les distorsions de reconstruction sous un niveau imposé. Les trois auteurs sont des
spécialistes dans le domaine de traitement du signal et des télécommunications en
général. Suite à leurs connaissances de la théorie des ondelettes ils ont abordé le
problème de la compression du point de vue de cette théorie. On montre dans le
livre que les transformées orthogonales basées sur les ondelettes peuvent être
considérés comme assymptotiquement convergentes vers la transformée de
Karhunen-Loève, étant des transformées sousoptimales, appropriés pour la
réalisation de la compression à pertes. Suite à la particularité de la majorité des
sons de la langue parlée, d’être similaires à une somme des oscillations pondérées,
les auteurs sélectionnent parmi plusieurs transformées orthogonales basées sur les
ondelettes, la transformée en paquets de cosinus discrète. Apres le calcul de la
transformée orthogonale du signal de parole, soumis à la compression, on fait, dans
le schéma de compression proposée par les auteurs, une détection de seuil, qui
élimine les échantillons inférieurs à un certain seuil. Les auteurs ont fait appel à un
seuil variable en temps, en s’adaptant à une erreur maximale de reconstruction,
imposée apriori. De plus, en utilisant le modèle psycho-acoustique de la parole un
système de quantification adaptatif, réglé par la même erreur est construit aussi.
Comme mesure des distorsions, équivalentes ici avec l’erreur de reconstruction, la
valeur moyenne quadratique a été choisie. Pour déterminer cette erreur on fait une
reconstruction locale du signal comprimé et une comparaison avec le signal initial.
L’erreur obtenue sert aux réglages. Je mentionnerai aussi le fait que le problème de
la sélection de la meilleure base de représentation pour la transformée en paquets
de cosinus discrète soit résolu en utilisant un algorithme de sélection, sur chaque
segment du signal de parole, des éléments de celle base qui minimise le nombre
des échantillons à transmettre. Il faut remarquer le fait qu’on utilise des méthodes
d’adaptation locales et globales mais que le système de compression est stable,
l’adaptation obtenue étant convergente. Les auteurs ont simulé le système de
compression de la parole proposé. Leurs résultats expérimentaux ont indiqué un
facteur de compression moyen supérieur à 10, à un niveau des distorsions inférieur
à 20 dB. J’ajoute le fait qu’aucune compression sans pertes des échantillons du
signal quantifié, qui pourrait augmenter le facteur de compression, n’a pas été
considérée. En général la compression du signal de parole est réalisée à l’aide de la
prédiction linéaire. Voilà que les auteurs de ce livre n’ont pas utilisé cette
technique “classique” et ont exploité un autre modèle du signal de parole, plus
approprié pour la majorité des segments du signal de parole, le modèle sinusoïdal,
qui justifie la sélection de la transformée en paquets de cosinus discrète, dans le
schéma de compression proposée. On obtient des résultats remarquables. La
possibilité de combiner les deux techniques de compression (celle “classique” et
celle proposée dans ce livre) est aussi évoquée. En utilisant la méthode «classique »
on pourrait mieux représenter les segments du signal de parole qui ressemblent à
un bruit- mais sont moins fréquentes que les segments qui ressemblent plus à une
combinaison linéaire de sinusoïdes. L’expérience des auteurs dans les domaines du
traitement du signal et des télécommunications a conduit à l’obtention du grant
2000-PAS-32, financé par AUPELF-UREF. Son titre est “Méthodes modernes de
traitement du signal pour la compression de données dans les modems haut débit”.
Les résultats de la recherche réalisée dans ce grant sont matérialisés aussi par ce
livre. Une partie de ce livre est représentée par la thèse de doctorat du Monsieur
Andrei Cubiţchi, ce qui augmente la qualité de ce travail. Je considère que par les
résultats présentés et par les nouvelles directions de recherche ouvertes, ce
livre serra très utile aux spécialistes en télécommunications et à tous
intéressés dans ce domaine. Voilà pourquoi je recommande
chaleureusement ce livre à votre attention. Quelques mots sur les auteurs.
Le professeur Alexandru Isar, doyen adjoint de la Faculté d’Electronique et
Télécommunications de l’Université “Politehnica” de Timişoara est un
spécialiste réputé dans le domaine du traitement du signal, de l’analyse en
ondelettes et des représentations temps-frequence. Plusieurs parmi ses
travaux scientifiques ont devenu des titres de référence dans les domaines
déjà énumérés, motif pour lequel il a été invité de donner des conférences à
l’étranger aussi. Le docteur ingénieur Andrei Cubiţchi, est P.D.G. de la
société commerciale GOLDSTERN et spécialiste dans le domaine des
communications avec les mobiles. Il est aussi un ingénieur très doué. Il a
publié quelques travaux de spécialité très bien reçus par la communauté
scientifique. Madame le professeur Miranda Naforniţă est l’un de meilleurs
professeurs du département de Télécommunications de la faculté de
Timişoara. Son expérience dans le domaine de la transmission de données et
de la théorie de l’information et du codage lui a donné une vision
d’ensemble dans le domaine des télécommunications. En conséquence elle a
été invitée à présenter des conférences à l’étranger. Elle est l’auteur des
nombreux travaux scientifiques, dont quelques-uns sont devenus des
références dans les domaines correspondants. Sa competence a été
confirmée aussi par le fait qu’elle a obtenu le grant AUPELF-UREF: 2000PAS-32, dont j’ai déjà écrit.
Timişoara, le 21.07.2002
Prof. dr. ing. Ioan Naforniţă
Table de matières
Chapitre1. Méthodes de compression de données
1.1. Méthodes de compression sans pertes
1.1.1. Méthodes de codage
1.1.1.1. Le codage de Huffman
1.1.1.2. Autres méthodes de codage
1.1.1.2.1. Le codage de Lempel - Ziv
1.1.1.2.2. La compression à l’aide du codage Lempel - Ziv
1.1.1.2.3. Les performances du codage Lempel - Ziv
1.1.1.2.4. Le codage de type “run-lenght”
1.1.1.2.5. Le codage arithmétique
1.1.2. Quelques applications
1.2. Méthodes de compression à pertes
1.2.1. Compression par transformée orthogonale
1.2.1.1. La transformée de Karhunen-Loève
Chapitre 2. Transformées en ondelettes discrètes
2.1.1. La liaison entre la théorie des ondelettes et le codage en sous-bandes
2.1.1.1. Le codage en sous-bandes à reconstruction parfaite en utilisant des
systèmes à structure arborescente avec des filtres réalisables
2.1.1.1.1. Méthodes de construction des filtres CQF
2.1.2 La liaison entre les systèmes de codage en sous-bandes et la théorie des
séries d'ondelettes
2.1.3. La transformée en ondelettes discrète TOD
2.1.4. Paquets d'ondelettes
2.1.4.1. La sélection de la meilleure base
2.1.4.2. Paquets d'ondelettes de type Malvar
2.2. L'utilisation des transformées orthogonales présentées pour la compression
des données
2.2.1. L'analyse statistique de la TOD
2.2.2. L'analyse statistique de la TPOD
2.2.3. L'analyse statistique de la TPCD
2.3. La sélection de la meilleure ondelette mère
Chapitre 3. Le détecteur de seuil
3.1. La détection adaptative de seuil
3.2. L'analyse statistique du détecteur de seuil
Chapitre 4. Le système de quantification pour la compression de la parole
4.1. Propriétés psicho-acoustiques du signal de parole
4.1.1. Le phénomène de masquage
4.1.2. Des bandes critiques
4.1.2.1. Le seuil de masquage
4.1.2.2. L'utilisation du seuil de masquage à la compression du signal de parole
4.2. La quantification adaptative dans le domaine de la TPC
4.3. Les autres blocs du système de compression
1
2
2
2
13
13
13
15
16
16
17
18
18
22
29
29
38
43
43
53
57
59
63
65
65
75
80
82
88
88
91
93
93
93
95
96
99
100
102
Chapitre 5. La compression de la musique
5.1. Le codeur MUSICAM
5.2. Le codeur MP-3
5.2.1. L’avenir du codeur MP-3
5.2.2. La compression de la musique a l’aide des paquets en cosinus
5.3. La compression de la parole
5.3.1. Le codeur CELP
5.3.1.1. La détermination des coefficients du filtre de synthèse
5.3.1.1.1. Algorithme itératif standard pour la construction de l’excitation
5.3.1.1.2 Description algorithmique
5.3.1.1.3 Le codeur GSM
5.3.2. La compression de la parole en utilisant les paquets de cosinus
5.3.2.1. Première expérience
5.3.2.2. La deuxième expérience
5.3.2.3. La troisième expérience
5.3.2.4. La quatrième expérience
Chapitre 6. La compression d’images
6.1. La compression d’images fixes
6.1.1. Le standard JPEG-2000
6.2. La compression des séquences d’images
6.2.1. Le standard de compression MPEG-1
6.2.2. Le standard de compression MPEG-2
6.2.3. Le standard de compression MPEG-4
6.2.3.1. Le codage de la forme, du mouvement et de la texture pour chaque VOP
Bibliographie
103
103
106
110
110
111
112
113
119
121
123
124
125
132
136
139
149
149
154
158
158
162
166
167
173
Chapitre 1. Méthodes de compression de données
Le sujet de ce livre sont les méthodes de compression de données et les
algorithmes correspondants. Ce sont méthodes de codage de la source
d’information. L’intérêt de l’étude de ces méthodes de traitement du signal est le
développement sans précèdent des télécommunications numériques. On parle
aujourd’hui de globalisation, il faut communiquer en temps réel n'importe où dans
le monde entier. La vitesse des communications ne peut pas être augmentée sans
l’aide des techniques de compression. Tous les types des signaux intéressants pour
les transmissions : les logiciels, les textes, la parole, la musique, les images,
doivent être comprimés. La compression ne doit pas conduire à des distorsions
saisissables et doit être réalisée avec taux de compression les plus élevés possibles.
Le nombre d’opérations et le volume de mémoire requis par les algorithmes de
compression ne doivent pas être très grands. Les applications sont nombreuses :
réseau téléphonique public, communication avec les mobiles, radiodiffusion
numérique, télévision numérique, …Dans ce livre nous présentons des techniques
de compression pour les textes, pour les signaux audio et pour les images. Il y a
deux catégories de méthodes de compression de données, celles sans pertes et
celles à pertes. On présente dans la suite quelques méthodes de compression
appartenant à ces deux catégories. Notre but est d’envisager l’apport de la théorie
des ondelettes aux techniques de compression à pertes contrôlées. Le plan du livre
est le suivant :
- Au premier chapitre on présente les méthodes de compression sans pertes,
utilisées pour la compression du texte, les logiciels y compris. Après on
introduit les méthodes de compression à pertes contrôlées basées sur
l’utilisation d’une transformée orthogonale. Le rôle de cette transformée
est la de-correlation du signal à comprimer. On présente la transformée
idéale, c’est la transformée de Karhunen-Loève. On propose un schéma de
compression basé sur une transformée orthogonale. Les blocs de ce
schéma, détecteur de seuil, système de quantification,… seront les sujets
de quelques chapitres suivants de ce livre.
- Le but du deuxième chapitre est la présentation des trois transformées en
ondelettes discrètes : la transformée en ondelettes discrète, la transformée
en paquets d’ondelettes discrète et la transformée en paquets de cosinus
discrète. On prouve la convergence asymptotique de ces trois transformées
vers la transformée de Karhunen-Loève.
- Le sujet du troisième chapitre est le détecteur de seuil du schéma de
compression proposée au premier chapitre. Celui-ci realise la suppression
des coefficients de la transformée orthogonale, inférieurs à un certain seuil.
- Au quatrième chapitre on présente un système de quantification spécifique
pour la compression de la parole. A la fin de ce chapitre on présente les
autres blocs du schéma de compression proposé au premier chapitre.
2 Méthodes de compression de données - 1
-
Le cinquième chapitre est dédié à la compression des signaux audio. Au
commencement on présente les systèmes de compression de la musique et
après on présente la compression de la parole.
Au chapitre six on présente des systèmes pour la compression des images.
1.1.
Méthodes de compression sans pertes
Ces méthodes ont été établies dans le cadre de la théorie de l’information.
Elles se basent sur des méthodes de codage.
1.1.1. Méthodes de codage
On a deux types de codage: le codage de la source d’information (qui
transforme la source dans une forme alternative, meilleure pour la transmission ou
pour l’enregistration) et le codage de la voie (qui augmente la robustesse du
message contre les erreurs de transmission). Les méthodes de compression sans
pertes font partie de la première catégorie. Les codes créés doivent avoir quelques
propriétés, [1], [2]:
„ être uniquement decodables,
„ être decodables instantanément,
„ être compacts.
Si le code n’est pas compact il doit être le plus efficient possible, [3]. Pour
apprécier cette efficience il faut calculer la longueur moyenne du code. Cette
quantité peut être appréciée à l’aide de l’entropie de la source en utilisant le
théorème de Shanon sur le codage dans l’absence du bruit. Parmi les codes pour la
compression de données, le plus ancien et peut être le plus utilisé encore, est le
code de Huffmann. Celui-ci a élaboré son fameux algorithme de codage en 1952,
comme réponse à une question posée par l’un de ses professeurs quand il était
étudiant à MIT.
1.1.1.1. Le codage de Huffman
On présente le codage de Huffman en utilisant l’exemple d’un traitement
de texte. Le but est la compression du texte. Plusieurs langages de programmation
utilisent le code ASCII pour les caractères. Quelques langages de programmation
(comme JAVA par exemple) utilisent UNICODE qui, parce qu’il peut coder un
nombre plus grand de caractères, est plus utile pour des langues comme le japonais
qui a un nombre plus grand de caractères. On utilisera dans cet exemple le code
ASCII, donc chaque caractère sera codé sur un nombre de 8 bits. Parce que on peut
coder 256 valeurs différentes en utilisant 8 bits il y a 256 caractères différents dans
l’alphabet ASCII. Les caractères alphanumériques, les caractères de ponctuation et
les caractères de contrôle utilisent seulement 7 bits.
1.1.1.1. - Le codage de Huffman 3
Le codage de Huffman realise la compression de données en utilisant un nombre
inférieur de bits pour la représentation des caractères avec une apparition plus
fréquente.
Au commencement on présente le codage ASCII de la séquence "go go gophers"
puis on verra comment on peut réduire un peu le nombre des bits en utilisant une
méthode de compression très simple et après on verra l’utilisation du codage de
Huffman pour faire la compression plus efficiente.
Soit "go go gophers" la séquence à être comprimée. La représentation de cette
séquence en code ASCII, présentée dans le tableau suivant, demande 104 bits.
Caractère
G
O
P
H
E
R
S
Espace
ASCII
103
111
112
104
101
114
115
32
Binaire
1100111
1101111
1110000
1101000
1100101
1110010
1110011
1000000
Tableau 1.1.1.1.1. Le codage ASCII de la séquence à comprimer.
Le code numérique de la séquence à comprimer est:
103 111 32 103 111 32 103 111 112 104 101 114 115.
La suite de bits correspondante est:
1100111 1101111 1100000 1100111 1101111 1000000 1100111 1101111 1110000
1101000 1100101 1110010 1110011
Parce que on a seulement 8 caractères différents dans la séquence "go go gophers",
on peut utiliser seulement 3 bits pour coder les caractères de cette séquence. On
peut utiliser, par exemple, le codage présenté dans le tableau suivant:
4 Méthodes de compression de données - 1
Caractère
G
O
P
H
E
R
S
Espace
code
0
1
2
3
4
5
6
7
Binaire
000
001
010
011
100
101
110
111
Tableau 2.1.1.1.1. Un autre codage.
En utilisant le tableau de codage 2.1.1.1.1. on obtient pour la séquence "go go
gophers" la suite:
0170170123456
et la séquence de bits correspondante:
000 001 111 000 001 111 000 001 010 011 100 101 110 111
En utilisant trois bits per caractère le codage de la séquence "go go gophers" utilise
seulement 39 bits et pas 104 bits. On peut diminuer encore le nombre total de bits
si on utilise un nombre plus petit de bits pour le codage des caractères g, o, espace,
dont l’apparition est plus fréquente. C’est l’idée de base pour le codage de
Huffman. On verra comment on peut faire un tel codage en utilisant un arbre qui
contient les caractères dans ses feuilles et la séquence des bits (utilisés pour le
codage des caractères) dans ses branches.
En utilisant un arbre binaire tous les caractères sont groupés dans les feuilles. Dans
la figure 1.1.1.1.1 l’arbre a huit feuilles et sept branches. A une branche de gauche
(colorée en noir) on associera un 0 et a une branche de droite on associera un 1. Le
code ASCII pour chaque caractère/feuille est obtenu en poursuivant la branche
racine-feuille et en groupant les 0 et les 1.
Par exemple le caractère 'a', qui a la valeur ASCII 97 (1100001 en binaire), est
représenté par la branche racine-feuille: droite-droite-gauche-gauche-gauchegauche-droite.
1.1.1.1. - Le codage de Huffman 5
Figure 1.1.1.1.1. Codage par arbre binaire de la séquence considérée.
La structure de l’arbre peut être utilisée, pour déterminer le code pour chaque
feuille, en utilisant la convention de branche 0/1 déjà décrite. Si on utilise un arbre
diffèrent on obtient un codage diffèrent.
Par exemple l’arbre de la figure suivante corresponde au codage du tableau
3.3.1.1.1.
6 Méthodes de compression de données - 1
Caractère
binaire
'g'
'o'
'p'
'h'
'e'
'r'
's'
' '
10
11
0100
0101
0110
0111
000
001
Tableau 3.1.1.1.1. Un autre codage.
Figure 2.1.1.1.1. L’arbre binaire correspondant au tableau 3.1.1.1.1.
En utilisant ce codage la séquence "go go gophers" est codée comme:
10 11 001 10 11 001 10 11 0100 0101 0110 0111 000
On a obtenu ainsi un nombre total de 37 bits, inférieur avec deux bits au nombre
obtenu avec le codage de ces huit caractères à trois bits pour chaque caractère (déjà
présenté). Cette économie a été réalisée en codant les caractères qui apparaissent
plus fréquemment, comme par exemple 'g' et 'o' avec un nombre de bits inférieur à
3 (on a utilisé seulement 2 bits pour ces caractères) en opposition avec les autres
caractères, comme par exemple 'h', 'e', et 'r'.
1.1.1.1. - Le codage de Huffman 7
La règle de codage des caractères induite par l’arbre considéré peut être utilisée
pour décoder une séquence binaire. On peut essayer à décoder la séquence binaire
suivante:
01010110011100100001000101011001110110001101101100000010101
011001110110
Pour décoder la séquence on commence à la racine de l’arbre de codage et on
associe une branche de gauche pour un 0 et une branche de droite pour un 1.
Quand une feuille est atteinte on sauve le caractère contenu et on commence de
nouveau au sommet de l’arbre. Au commencement de la séquence à décoder on
trouvent les bits: 010101100111. Ça signifie gauche - droite - gauche - droite
jusqu’à la lettre 'h', puis (en commencent de nouveau de la racine) par droite droite - gauche jusqu’à la lettre 'e', puis par gauche - droite - droite - droite jusqu’à
la lettre 'r'. En continuant jusqu’au dernier bit on obtient la séquence : ”her sphere
goes here”.
Quand tous les caractères sont contenus dans les feuilles de l’arbre et chaque nœud
intérieur (qui ne représente pas une feuille) a deux “enfants”, le codage introduit
par la convention 0/1, présentée plus haut, a la propriété de préfix: aucune
séquence de bits qui code un caractère n’est pas le préfix d’une autre telle
séquence. Cette propriété donne la possibilité de décodage d’une séquence à l’aide
de l’arbre de codage en poursuivant les branches racine-feuille.
L’arbre présenté plus haut pour la séquence "go go gophers" est optimal, il n’y a
pas un autre arbre avec les mêmes caractères qui utilise un nombre plus petit de
bits pour le codage de cette séquence. Le codage de Huffman est optimal.
On considère que chaque caractère a une certaine fréquence d’apparition dans le
texte à coder. Par exemple dans la séquence "go go gophers" les caractères 'g' et 'o'
ont la fréquence d’apparition 3/13 l’espace a la fréquence d’apparition 2/13 et les
autres caractères ont la fréquence d’apparition 1/13.
Quand on fait la compression d’un fichier en utilisant la méthode de codage de
Huffman, il est nécessaire de calculer ces fréquences. Pour l’exemple présenté ici,
on ignore cette étape et on considère qu’on connaît toutes les fréquences
d’apparition des caractères de la séquence à coder. L’algorithme de Huffman
suppose la construction d’un seul arbre appartenant à une foret. Au commencement
tous les arbres ont un seul nœud qui contient un caractère et sa fréquence
d’apparition. On combine les arbres par la sélection de deux arbres qui seront
utilisés pour la construction d’un nouvel arbre. Ainsi se réduit le nombre d’arbres
de la foret avec 1 à chaque pas de l’algorithme. Les étapes de l’algorithme sont les
suivantes:
1. On commence avec une foret. Chaque arbre de cette foret a un seul nœud qui
contient un caractère et une fréquence d’apparition. C’est la fréquence d’apparition
considérée pour l’arbre aussi. On combine les arbres par la sélection de deux arbres
qui seront utilisés pour la construction d’un nouvel arbre. Ainsi se réduit le nombre
8 Méthodes de compression de données - 1
des arbres de la foret avec 1 à chaque pas de l’algorithme.
2. On répète l’étape antérieure jusqu’à l’obtention d’un seul arbre. On choisi deux
arbres avec les plus petites fréquences d’apparition et on les note par T1 et T2. On
fait la construction d’un nouveau arbre dont la fréquence d’apparition sera la
somme de deux fréquences d’apparition de deux arbres parents T1 + T2 et dont le
sous-arbre de gauche est celui de fréquence T1 et le sous-arbre de droite est celui
de fréquence T2.
3. Le seul arbre resté après l’étape antérieure est un arbre de codage optimal.
En prenant de nouveau l’exemple de la séquence "go go gophers" on a au
commencement la foret présentée dans la figure suivante.
Figure 3.1.1.1.1. La première étape de l’algorithme de Huffman.
Les fréquence d’apparition de chaque nœud sont proportionnelles aux valeurs
indiquées au-dessous de chacun.
On choisit deux nœuds à fréquences d’apparition minimales. On fait la construction
d’un nouvel arbre dont la racine est pondérée par la somme des fréquences
d’apparition de deux arbres sélectionnés. On a obtenu ainsi la foret, contenant sept
arbres, de la figure suivante.
Figure 4.1.1.1.1. Le premier pas de la deuxième étape de l’algorithme de Huffman.
En sélectionnant de nouveau deux arbres minimaux on obtient un nouvel arbre à
fréquence d’apparition proportionnelle à 2 et la foret présentée dans la figure
suivante.
1.1.1.1. - Le codage de Huffman 9
Figure 5.1.1.1.1. Le deuxième pas de la deuxième étape de l’algorithme de Huffman.
Il faut choisir de nouveau les deux arbres de fréquences minimales. Le nœud à
fréquence minimale est celui qui corresponde à la fréquence proportionnelle à 1
(celui qui contienne le caractère 'e'). Il y a trois arbres qui ont la fréquence
proportionnelle à 2, on peut choisir n’importe lequel pour trouver la paire de l’arbre
correspondent au caractère ‘e’. Le nouvel arbre créé aura une fréquence
d’apparition proportionnelle à 3. On obtient la foret présentée dans la figure
suivante.
Figure 6.1.1.1.1. Le troisième pas de la deuxième étape de l’algorithme de Huffman.
Maintenant on a deux arbres à fréquences d’apparition proportionnelles à 2. On
utilise ces arbres pour construire un nouvel arbre qui aura la fréquence d’apparition
proportionnelle à 4. On a resté quatre arbres, un à fréquence d’apparition
proportionnelle à 4 et trois à fréquences d’apparition proportionnelles à 3. Le
résultat est présenté dans la figure suivante.
10 Méthodes de compression de données - 1
Figure 7.1.1.1.1. Le quatrième pas de la deuxième étape de l’algorithme de Huffman.
Deux arbres minimaux sont de nouveau associés pour construire un nouvel arbre
qui aura une fréquence d’apparition proportionnelle à 6. On a sélectionné les arbres
‘g’ et ‘o’. La foret obtenue est présentée dans la figure suivante. Elle contient trois
arbres. Les arbres minimaux ont des fréquences d’apparition proportionnelles à 3 et
à 4.
Figure 8.1.1.1.1. Le cinquième pas de la deuxième étape de l’algorithme de Huffman.
En les utilisant on peut construire un nouvel arbre qui aura une fréquence
d’apparition de 7 et on obtient la foret de deux arbres de la figure suivante.
En fin les deux derniers arbres sont utilisés pour la construction de l’arbre final
dont la fréquence d’apparition est proportionnelle à 13.
1.1.1.1. - Le codage de Huffman 11
Figure 9.1.1.1.1. Le sixième pas de la deuxième étape de l’algorithme de Huffman.
Cet arbre est présenté à la figure 10.1.1.1.1. Le codage induit par le dernier arbre
est présenté dans le tableau suivant.
Figure 10.1.1.1.1. Le septième pas de la deuxième étape de l’algorithme de Huffman.
12 Méthodes de compression de données - 1
Caractère
Binaire
'g'
'o'
'p'
'h'
'e'
'r'
's'
' '
00
01
1110
1101
101
1111
1100
100
Tableau 4.1.1.1.1. Le codage induit par l’algorithme de Huffman.
En utilisant ce tableau la séquence "go go gophers" sera codée par la séquence
binaire suivante:
00 01 100 00 01 100 00 01 1110 1101 101 1111 1100
On a obtenu de nouveau une séquence binaire de 37 bits.
L’algorithme de codage de Huffman décrit plus haut peut être généralisé.
On peut passer facilement du cas de séquence codée en binaire au cas des
séquences codées en ternaire ou en plusieurs dimensions [1].
Cet algorithme a quelques désavantages:
„ la séquence de données doit être balayée deux fois pour pouvoir
réaliser le codage: la première fois pour construire et transmettre
l’arbre et la deuxième fois pour coder les lettres (ce comportement
introduise des délais quand il s’agit de la transmission des données
comprimées),
„ l’algorithme n’est pas adaptatif.
Ce sont les motifs pour lesquelles on a construit des algorithmes de Huffman
adaptatifs. Un tel algorithme, dit dynamique, est présenté en [3].
L’arbre utilisé pour la transmission de la k+1-eme lettre et pour sa réception est un
arbre de Huffman pour les premiers k lettres du message. L’émetteur et le récepteur
sont initialisés avec le même arbre et pendant l’entière transmission ces deux
dispositifs restent synchronisés, en utilisant le même algorithme pour la
modification des arbres après le traitement de chaque lettre. Ainsi il ne faut pas
transmettre l’entier arbre de Huffman. Le temps demandé pour le codage et le
décodage de chaque lettre est proportionnel à la longueur du code associé à cette
lettre, donc la compression peut être réalisée en temps réel. Les arbres de Huffman
locaux, sont construits à chaque itération de l’algorithme, adaptativement. Le
critère minimisé est la longueur du mot de code. L’efficience du nouveau
algorithme, appelé l’algorithme Λ, est étudié dans l’article déjà cité. Les
1.1.1.2. - Autres méthodes de codage 13
simulations présentés dans cet article montrent la supériorité de l’algorithme Λ par
rapport au algorithme de Huffman traditionnel.
1.1.1.2. Autres méthodes de codage
Une autre méthode de codage très connue est celle de Lempel et Ziv.
1.1.1.2.1. Le codage de Lempel - Ziv
Celui-ci est basé sur une segmentation de la séquence à coder. Il s’agit d’une règle
pour la segmentation d’un alphabet finit en sous-suites ou mots, dont la longueur
ne dépasse pas une valeur entière, choisie à posteriori L(1); et d’une méthode de
codage qui fait correspondre en mode séquentiel à ces sous suites des mots à
longueur fixe L(2). Les sous séquences sont choisies tel qu’elles aient des
probabilités d’apparition très semblables. Donc les symboles à apparition plus
fréquente sont groupés en sous suites plus longues et les symboles avec une
fréquence d’apparition plus faible sont groupés en sous suites plus courtes.
1.1.1.2.2. La compression à l’aide du codage Lempel - Ziv
Dans la suite on présente une implémentation possible de l’algorithme Lempel-Ziv.
On peut définir les variables suivantes:
w - le préfix qui identifie une suite qui existe déjà dans le dictionnaire,
K - le caractère qui suit va être lu.
Les étapes de l’algorithme sont les suivantes:
1. On initialise le dictionnaire avec des suites contenant un seul caractère.
On initialise w à 0.
2. Le caractère K est lu. Si la séquence wK existe dans le dictionnaire
alors:
w=wK
sinon on transmet le code pour w, on ajoute wK au dictionnaire, on pose:
w=K
3. On transmette le code pour w.
Le code pour w qui est transmis représente la position numérique du w dans le
dictionnaire et est exprimé comme un mot binaire à longueur fixe.
Prenons comme exemple la séquence: “ababcbababaaaaaaa”. L’algorithme de
compression Lempel-Ziv est décrit à l’aide du tableau suivant.
Au commencement on initialise:
14 Méthodes de compression de données - 1
a →1
b→2
c→3
w=0
Puis on fait les opérations suivantes.
Le
nouve
au K
Le
nouveau
wK
A
a
Existait-il
dans le
dictionnai
re ?
Oui
B
ab
Non
A
ba
Non
B
ab
Oui
C
Abc
Non
B
cb
Non
A
ba
Oui
B
Bab
Non
Actions sinon
La valeur du w
le code de w=le code de
a=1;
ab → 4
le code de w =le code de
b=2;
ba → 5
le code de w=le code de
ab=4
abc → 6
le code de w=le code de
c=3
cb → 7
le code de w=le code de
ba=5
bab → 8
w=wK=a
w=K=b
w=K=a
w=K=a
w=K=c
w=K=b
w=wK=ba
w=K=b
Tableau 2.1.1.1.2.3. Un exemple de fonctionnement de l’algorithme Lempel-Ziv.
Le code à transmettre est le suivant: 1 2 4 3 5... .
On a obtenu ainsi le dictionnaire suivant:
Indice
Suite
1
A
2
b
3
c
4
Ab
5
Ba
6
abc
7
cb
8
bab
...
...
Tableau 3.1.1.1.2.3. L’opération inverse de la compression.
L’un des avantages du codage de type Lempel-Ziv est le fait qu’on peut faire la
reconstruction de la séquence comprimée sans transmettre le dictionnaire.
L’algorithme de reconstruction a les étapes suivantes:
1. On initialise le dictionnaire avec des suites contenant un seul caractère.
On initialise la variable p à 0.
2. Le code I est lu. Si ce code n’est pas dans le dictionnaire on realise
une action spéciale. On met:
Kw = la suite décodée pour I (K représente le premier caractère)
Si :
p≠0
1.1.1.2. - Autres méthodes de codage 15
alors on ajoute pK au dictionnaire et on transmette Kw à la sortie. On met:
p=Kw
Prenons comme exemple la séquence codée dans l’exemple antérieur: 1 2 4 3 5 8
1... et appliquons l’algorithme de décodage. Celui-ci est décrit à l’aide du tableau
suivant. Au commencement on initialise le dictionnaire:
a →1
Le nouveau I
1
2
4
3
5
8
1
...
b→2
c→3
Action spéciale
p=ba→pK=baK
→8
8→Kw→K=b
-
p=0
Sortie=Kw=p
a
b
ab
Le nouveau pK
p=0
c
ba
abc→6
cb→7
bab
bab→8
a
baba→9
ab → 4
ba→5
Tableau 4.1.1.1.2.3. Les opérations de l’algorithme de décodage Lempel-Ziv.
On a obtenu la séquence décodée suivante: a b ab c ba bab a ... et le dictionnaire:
Indice
1
2
3
4
5
6
7
8
9
...
Suite
a
b
c
Ab
Ba
abc
cb
bab baba
...
En faisant une comparaison entre les deux exemples donnés on peut observer qu’on
a obtenu après décodage la séquence initiale et le même dictionnaire.
1.1.1.2.4. Les performances du codage Lempel - Ziv
Les performances de cette méthode de compression dépendent très fort du
type de données à comprimer. Ainsi on peut donner comme facteur moyen de
compression, les valeurs présentées dans le tableau suivant.
16 Méthodes de compression de données - 1
Type de données
Texte en anglais
Données en virgule mobile
Données de système
Programmes en code source
Code objet
Facteur moyen de compression
1.8
1
2.6
2.3
1.5
1.1.1.2.5. Le codage de type “run-length”
C’est un codage très rapide qui exploite la répétition des caractères dans
une séquence. Le codage remplace une suite de caractères identiques par le nombre
de répétitions. Pour indiquer un tel remplacement on utilise un caractère spécial. Le
codage “run-lenght” remplace la suite des caractères identiques X par la séquence:
S c XC c
où:
S c est un caractère spécial,
X est le caractère qui se répète et
C c représente le nombre de caractères qui se répètent.
Prenons comme exemple le texte à coder suivant:
$******55.72
--------Guns_________Butter
Le texte codé est le suivant:
$Sc*655.72
Sc-9
Guns Sc_9Butter
Le codage “run-lenght” est efficient seulement si le nombre de répétitions est
supérieur à 4. La valeur de C c est limitée par la représentation binaire des
caractères (il y a un nombre maximale de bits pour la représentation d’un caractère
(si on utilise 8 bits/caractère alors le nombre le plus grande qui peut être représenté
est 256)).
1.1.1.2.6. Le codage arithmétique
Le codage de Huffman devient de plus en plus compliqué au fur et à
1.1.1.2.6. - Le codage arithmétique 17
mesure que le nombre des caractères dans l’alphabet d’entrée augmente. Le
nombre d’opérations demandées par le codage de Huffman pour une séquence
d’entrée contenant n caractères est de q n . Quand n est très grand il ne faut pas
savoir la statistique de chaque caractère parce que seulement quelques-uns ont une
fréquence d’apparition suffisamment grande. Le codage arithmétique se base sur
l’idée que la somme des fréquences d’apparition de tous les caractères doit être
égale à 1. En conséquence chaque fréquence d’apparition doit être contenue dans
un certain sous-intervalle de l’intervalle [0,1]. Il faut donc seulement indiquer le
sous-intervalle où est localisée la fréquence d’apparition de chaque caractère pour
coder la séquence de caractères. Le nombre de bits de la représentation de chaque
intervalle doit être suffisamment grand pour identifier sans confusion l’intervalle
correspondant. Prenons l’exemple suivant.
Les caractères de
l’alphabet
d’entrée
000
001
010
011
100
101
110
111
Les fréquences
d’apparition
La somme des
fréquences
Intervalle
correspondent
0,15
0,15
0,225
0,075
0,15
0,15
0,075
0,025
0,15
0,3
0,525
0,6
0,75
0,9
0,975
1
(0 , 0,15)
(0,15 , 0,3)
(0,3 , 0,525)
(0,525 , 0,6)
(0,6 , 0,75)
(0,75 , 0,9)
(0,9 , 0,975)
(0,975 , 1)
Tableau 1.1.1.1.2.6. Un exemple de codage arithmétique.
Seulement les intervalles présentés dans la quatrième colonne du tableau sont
utilisés pour le codage. Le codage d’un caractère est réalisé par la sélection d’un
nombre contenu dans l’intervalle correspondent qui peut être représenté
instantanément sur un nombre minime de bits. Comme un exemple l’intervalle
correspondent au caractère 011 est (0,525 , 0,6), qui est représenté en binaire
comme (0, 100001100... , 0, 100110011...). Le nombre binaire avec le plus petit
nombre de bits significatifs qui se trouve dans cet intervalle est 0, 100100000...0.
Celui-ci peut être transmis à l’aide du code 1001. Mais ce code n’est pas instantané
parce que l’intervalle voisin (celui qui corresponde au caractere 100) contient des
nombres avec le prefix 0, 1001. Une solution est de representer le nombre 0,
100100000...0 avec le code 10010.
1.1.2. Quelques applications
Plusieurs formats d’image de documents supportent un type de
compression de données appelée codage CCITT. C’est une variante de
18 Méthodes de compression de données - 1
codage de Huffman. Il y a plusieurs groupes d’algorithmes de type CCITT.
L’un de ceux-ci se trouve à la base de la méthode de compression V.24-bis
dont on a déjà parlé. Les groupes 3 et 4 sont construits pour la compression
des fichiers de texte. Le groupe 4 est plus efficient et a été destiné aux
réseaux de données.
Le codage “run-lenght” est utilisé pour la construction des méthodes de
compression des images qui conduisent aux principaux formats de fichiers
d’images comme par exemple: TIFF, BMP, PCX ou de documents comme par
exemple le PDF. Le codage Lempel-Ziv est utilisé aussi pour la réalisation des
formats GIF, TIFF ou PDF.
L’algorithme de compression LZ77 est à la base de différents logiciels de
compression de texte comme compress, zoo, lha, pkzip et arj. L’algorithme de
compression LZ78 est utilisé pour la compression des données binaires comme par
exemple les images en format bitmap.
En 1984, travaillant pour Unisys, Terry Welch a modifié l’algorithme de
compression LZ78 pour l’implanter dans les contrôleurs de disque. Le résultat a été
l’algorithme LZW. C’est un algorithme qui travaille avec tous les types de
données. Descompressors de grand performance ont vu le jour après l’apparition de
l’algorithme LZW. C'est le cas de ARC sous MS-DOS, de COMPRESS sous
UNIX, le format graphique .GIF inclue une compression LZ78,... De nouveaux
compresseurs, utilisant des implémentations particulières de LZ77 ont ensuite été
créés. On trouve par exemple PKZIP et ARJ sous MS-DOS, GZIP sous UNIX,....
On peut dire qu'à l'heure actuelle, LZ77, LZ78 et LZW sont les références en
matière de compression à usage général.
Les méthodes de compression sans pertes sont utilisées aussi dans la
structures des méthodes plus compliquées de compression à pertes, comme par
exemple dans la méthode de compression d’images appelée JPEG.
1.2.
Méthodes de compression à pertes
Il y a plusieurs méthodes pour la compression de données:
- par codage à pas variable,
- par modulation différentielle en impulsions et codage,
- par codage en sous-bandes,
- par transformée orthogonale,
[10]. Dans la suite on présente la dernière méthode.
1.2.1. Compression par transformée orthogonale
Il s'agit d'une compression de données à perte contrôlée. Le rôle de la transformée
orthogonale est de de-corréler le signal qui doit être traité. Ainsi chaque échantillon
du signal obtenu contient seulement sa propre information et aucune information
1.2. - Méthodes de compression à pertes 19
spécifique pour les échantillons voisins. Ainsi par l'élimination de certains
échantillons on ne perd pas que leur information spécifique (l'information contenue
dans les échantillons restés n'est pas affectée).
Une méthode de compression à perte d'information contrôlée a les pas suivants:
1. On calcule la transformée orthogonale directe y[n ] , du signal qui doit subir la
compression , x[n ] .
2. On réalise la compression en rejetant les échantillons du signal y[n ] inférieurs à
un seuil imposé. On obtient le signal y s [n ] . On fait la quantification et on
obtient le signal ẑ[n ] . Celui ci est le résultat de la compression.
3. On calcule la transformée en ondelettes inverse du signal ẑ[n ] et on obtient le
signal x̂[n ] . Celui ci représente le signal reconstruit par l'opération inverse (decompression).
Le seuil dans le pas 2 est imposé adaptivement. Sa valeur est choisie tel que
l’erreur quadratique moyenne d'approximation du signal x[n ] par le signal x̂[n ]
serait inférieure à un certain pour-cent de l'énergie du signal x[n].
Les relations suivantes sont valables:
Ex =
E x̂ =
N −1
N −1
k=0
k=0
M −1
M −1
k=0
k=0
∑ x 2 [k ] = ∑ y 2 [k ]
∑ x̂ 2 [k ] = ∑ z 2 [k ]
)
parce que chacune transformée orthogonale conserve l'énergie.
On peut écrire aussi:
 y[n ], si y[n ] > P
y s [n ] = 
0 , si non
Soit o y s [n ] la séquence obtenue par l'organisation des échantillons du signal y s [n ]
en ordre décroissante. L’erreur quadratique moyenne d'approximation du signal
x[n ] par le signal x̂[n ] est donnée par:
ε=
N −1
2
∑ o y s [k ]
k=M
La valeur du nombre M peut être obtenue comme solution de l'équation:
20 Méthodes de compression de données - 1
max ε =
M∈Z
Ex
100
La transformée orthogonale qui réalise la meilleure de-corrélation est la
transformée de Karhunen-Loève. On présente dans la suite cette transformée.
Le schéma d'un système basé sur l'utilisation d'une transformée orthogonale est
celle présentée à la figure 1.2.1.1.
Figure 1.1.2.1. Le schéma d'un système de compression basé sur l'utilisation d'une
transformée orthogonale.
On a utilisé les notations suivantes :
TO
- système de calcul de la transformée orthogonale ;
DP
- détecteur de seuil (c'est le système qui élimine les échantillons de
valeur petite, tous les échantillons inférieurs à un certain seuil sont
éliminés) ;
Cu
- système de quantification ;
Co
- système de codage ;
D
- système de décodage, l'inverse du système Co ;
TOI
- système de calcul de la transformée en ondelettes inverse à celle
calculée en utilisant le bloc TO.
Ce système, muni avec une transformée discrète en ondelettes, sera analyse, dans
différents chapitres de ce livre. Cette analyse montrera l’apport de la théorie des
ondelettes à la compression. Les principaux signaux de cette figure sont: le signal à
traiter x[n] , le signal obtenu après la compression, v[n ] et le signal reconstruit,
obtenu après l'opération de décompression, xˆ[n] . Les échantillons du signal x[n ]
sont corrélés. Ça signifie que pour l'information contenue dans l'échantillon courant
sont aussi responsables les échantillons voisins. C'est le motif pour lequel par
l'élimination de l'échantillon courant n'est pas affecté seulement l'information
contenue dans cet échantillon, mais aussi l'information contenue dans les
échantillons voisins. Le rôle de la transformée orthogonale est de decorreler le
signal. Après l'application de la transformée orthogonale on obtient un nouveau
1.2. - Méthodes de compression à pertes 21
signal. La dépendance du contenu informationnel de l'échantillon courant de ce
nouveau signal, y[n] , de l'information contenue dans les échantillons voisins est
plus faible. Donc, par l'élimination de l'échantillon courant, l'information contenue
dans les échantillons voisins est moins affectée que dans le cas du signal x[n ] .
L'élimination de l'échantillon courant conduit à une perte d'information moins
importante si la valeur de l'échantillon était moins importante. On présente un
exemple à la figure 2.1.2.1.
Figure 2.1.2.1. Un exemple de signal x[n] (en haut) et y[n] (en bas). La transformée
orthogonale utilisée est la valeur absolue de la transformée de Fourier discrète.
En analysant cette figure on constate que par l'application de la
transformée de Fourier discrète l'entière information s'est groupée en six
échantillons de valeur significative. En éliminant n'importe quel groupe
d'échantillons parmi ceux à l'indice compris entre 60 et 190, le contenu
informationnel du signal y[n] ne se modifie pas. Evidement on ne peut pas dire la
même chose pour le signal x[n] , tous les échantillons à l'indice entre 60 et 190
ayant une contribution importante à la forme de ce signal.
Comme a été montre en [4], la transformée qui réalise la decorrelation la plus
importante d'un signal est la transformée de Karhunen-Loève. Malheureusement il
n'y a pas d’algorithmes rapides pour le calcul de cette transformée parce que ce
calcul suppose l'inversion d'une matrice. Il y a des signaux pour lesquelles cette
matrice est singulière. C'est le motif pour lequel en pratique on utilise des
transformées sous optimales, comme par exemple la transformée en cosinus
discrète ou la transformée en ondelettes discrète, [5]. Ce deux transformées
convergent assimptotiquement vers la transformée de Karhunen-Loève, mais
l'utilisation de la transformée en ondelettes discrète a quelques avantages, qui
seront envisagés dans ce livre. Nous analyserons aussi d’autres transformées
discrètes, basées sur l'utilisation de la théorie des ondelettes, comme par exemple la
transformée en paquets d'ondelettes discrète, TPWD ou la transformée en paquets
22 Méthodes de compression de données - 1
de cosinus discrète, TPC. On démontrera que ces transformées convergent aussi
asymptotiquement vers la transformée de Karhunen-Loève. Mais à ce but, est
nécessaire de présenter quelques aspects de la théorie des ondelettes. Une telle
présentation est faite dans [6].
1.2.1.1. La transformée de Karhunen-Loève
Soit le signal aléatoire x(τ) , de duré D et sa décomposition en série:
N
x( τ) = l.i.m. ∑ a k η k (τ) ,
N→∞ k = 1
0≤τ≤D
(1)
où la limite est prise en moyenne quadratique et les fonctions η k (τ) sont
orthogonales.
On s’intéresse de l'approximation du signal x(τ) par le signal x N (τ) avec:
x N (τ) =
N
∑ a k η k ( τ)
0≤τ≤D
,
(1')
k =1
On désire la construction de cette approximation tel que le signal à temps discret ak
n'ait pas des éléments corrélés.
La relation (1) devient:
{
}
lim E (x N (τ) − x(τ) ) = 0
N→∞
2
(2)
où on a noté avec E l'opérateur d'espérance statistique.
Les coefficients ak peuvent être calculés avec la relation:
D
a k = ∫ x( τ) η*k (τ) dτ
(3)
0
Si l'espérance statistique du signal x(τ) est nulle alors:
D
E{a k } = ∫ E{x(τ)} η*k (τ) dτ = 0 ,
(∀) k ∈ Z
(3')
0
Si les coefficients ak ne sont pas corrélés alors:
{
}
E a k a *l = λ k δ [k − l]
(4)
1.2.1.1. - La transformée de Karhunen-Loève 23
ou:
D
D

E  ∫ x( τ) η*k ( τ) dτ ⋅ ∫ x * (u) ηl (u) du  = λ k δ [k − l]
0
0

or:
∫ ηl (u)  ∫ E {x(τ) x
D
D
0
0
{
*
}

(u) η*k (τ) dτ  du = λ k δ [k − l]

}
Mais, E x( τ) x * (u) représente l'autocorrélation du signal aléatoire
R x (τ, u ) .
La dernière relation devient:
D
∫
0

D
ηl (u)  ∫ R x (τ, u ) η*k (τ) dτ  du = λ k δ [k − l]

0
x(τ) ,
(4')
Grâce à l'orthogonalité des fonctions η k (τ) la dernière condition est satisfaite aussi
si:
D
∫ R x (τ, u ) ηk (τ) dτ = λ k ηk (u)
*
*
0
ou, parce que la fonction d’autocorrelation est réelle:
D
∫ R x (τ, u ) ηk (τ) dτ = λ k ηk (u)
(5)
0
On a obtenu ainsi une équation intégrale Fredholm. R x (τ, u ) représente le noyau
de l'équation, ηk (τ )sont les fonctions propres et λ k les valeurs propres.
Sachant l'autocorrélation du signal à décomposer x(τ) , R x (τ, u ) , on peut
résoudre l'équation (5), et trouver les fonctions η k (τ) et les valeurs λ k .
On peut montrer que la transformée Karhunen-Loève, définie dans la relation (1')
rend à sa plus petite valeur l’erreur quadratique moyenne d'approximation:
( ) {
E e 2 = E (x( τ) − x N (τ) )
2
}
(6)
Il n'existe pas une autre transformée (décomposition) décrite par une
somme à N termes qui conduit à une erreur moyenne quadratique d'approximation
du signal original, inférieure à l'erreur introduite par la transformée de KarhunenLoève.
24 Méthodes de compression de données - 1
On présente dans la suite deux exemples.
Soit, pour le commencement, le signal à traiter un bruit blanc.
Dans ce cas ci:
R x (τ, u ) = δ(τ, u )
La relation (4') devient:
D
∫
0

D
ηl (u)  ∫ δ(τ, u ) η*k (τ) dτ  du = λ k δ [k − l]

0
ou:
ηl (0 ) η*k (0 ) = λ k δ [k − l]
Donc:
{ }= σ
λ l = ηl (0 ) = E a l
2
2
(7)
2
l
Tenant compte des relations: (3') et (7) on peut écrire:
{
}
{ }
E a k ⋅ a *l = E{a k } E a *l = 0 ,
k≠l
Donc les échantillons du signal ak ne sont pas seulement de-corréles, ils sont aussi
indépendants.
Voilà pourquoi on utilise la transformée de Karhunen-Loève pour la compression
des données.
Une classe large de signaux aléatoires ont la fonction de corrélation de la forme:
R x (τ, u ) = e
− τ− u
= R x (τ − u ) = R x (v )
(8)
Dans ce cas l'équation Fredholm associée (relation (5')) devient:
D
∫
e
− τ− u
ηk (u) du = λ k ηk (τ)
(9)
0
Les solutions de cette équation sont:
ηk (τ) = e j k ωo τ ;
λk =
2
1 + k 2 ωo2
(10)
Voilà la source d’intérêt pour les développements en série de Fourier.
Parce qu'il s'agit de données, la transformée de Karhunen-Loève des signaux à
temps discret est très intéressante.
1.2.1.1. - La transformée de Karhunen-Loève 25
Le signal à transformer, x[ n] , de durée N peut être exprimé dans la forme:
x T = [x [0] x[1]... x[N − 1] ]
Soit T une transformée orthogonale. Si on applique cette transformée au
x
signal [n ] on obtient:
X = Tx
où:
X T = [X[0] X[1]... X[N − 1] ]
La transformée T peut être décrite à l'aide de la matrice T, définie par:
T T = [ηo η1 ... η N −1 ]
où ηk , k = 0, N − 1 sont des vecteurs orthogonaux:
ηTk ⋅ ηl = δ[k − l]
La transformée inverse est décrite à l'aide de la matrice transposée T T .
On peut écrire:
x = T T X = [ηo η1 ... η N−1 ] X =
N −1
∑ X[k ] ηk
(11)
k=0
Une compression de données peut être obtenue si on réduit la dimension de
l'espace transformé de N à M (M<N).
L'expression du signal obtenu après la compression est:
xM =
M −1
∑ X[k ] ηk
(12)
k=0
L’erreur d'approximation du x par xM est:
∆x = x − x M =
N −1
∑ X[k ] ηk
(13)
k=M
L’erreur quadratique moyenne d'approximation est:
{ }= E  ∑
ε = E ∆x
2
N −1

k = M l=M

N −1
∑ X[k ] X[l] ηTk ηl 
26 Méthodes de compression de données - 1
Tenant compte de l'orthogonalité des vecteurs η k , la dernière relation dévient:
ε=
∑ E {X 2 [k ]}
N −1
(14)
k=M
Parce que le signal aléatoire à l'entrée, x[ n] , est caractérisé statistiquement par sa
matrice de covariance il est utile d'exprimer l’erreur quadratique moyenne à l'aide
de cette matrice:
Cx = E x x T
{ }
Tenant compte de la relation (13) et de l'orthogonalité des vecteurs ηk on peut
écrire:
X[k ] = ϕTk ⋅ x
Voilà pourquoi la relation (14) dévient:
ε=
N −1
∑E
k=M
{ϕ
T
k
(
⋅ x ϕ Tk ⋅ x
) }=
T
∑ ϕTk E {x x T }ϕ k
N −1
(15)
k=M
ou:
ε=
N −1
∑ ϕTk C x ϕ k
(16)
k=M
Parce que la matrice Cx est connue il faut déterminer les vecteurs orthogonaux ϕ k
et la transformée T qui minimise l’erreur quadratique moyenne, ε .
On peut trouver la solution de ce problème dans la littérature. Cette solution a été
trouvée en utilisant la méthode des multiplicateurs de Lagrange, [7].
On obtient le système d'équations:
C x ηk = λ k ηk
(17)
Donc les vecteurs ηk sont des vecteurs propres de la matrice de covariance du
signal x.
La plus petite valeur de l’erreur quadratique moyenne est:
ε min =
N −1
∑ λk
(18)
k=M
La transformée définie dans la relation (17) est appelée la transformée de
Karhunen-Loève du signal à temps discret x[n ] .
1.2.1.1. - La transformée de Karhunen-Loève 27
On présente dans la suite une liaison entre les transformées de Karhunen-Loève à
temps continue et à temps discret.
La relation (5) peut être écrite dans la forme:
R x (τ, u ), η k (τ)
Avec la notation:
L2
= λ k η k (u)
(19)
R x (m, n ) = C x [m, n ]
la relation (19) devient:
C x [m, n ], η k [n ]
l2
= λ k η k [m ] , m = 0, N − 1
(20)
ou:
Cx [0, 1] L Cx [0, N −1]   ηk [0] 
 Cx [0, 0]
 ηk [0] 
 C [1, 0]



 η [1] 
Cx [1, 1] L Cx [1, N −1]   ηk [1] 
 x

= λk  k

 M 
 M 
M
M
M





Cx [N −1,0] Cx [N −1,1] L Cx [N −1, N − 1] ηk [N −1]
ηk [N − 1]
(21)
Donc:
C x ηk = λ k ηk
(22)
La dernière relation est identique avec (17).
Mais les coefficients ak ne sont pas corrélés. A l'aide de la dernière relation on peut
affirmer que les coefficients X[k ] ne sont pas corrélés eux aussi. Voilà pourquoi
on peut affirmer que la matrice C x est diagonale.
Grâce à la relation (22) on peut écrire:
λ o
0
Cx = 
M

0
0 
0 
M 

K λ N −1 
0 K
λ1 K
M
0
(23)
La compression du signal X[k ] , k = 0, M − 1 peut être réalisée en retenant les
premiers M valeurs contenues dans ce signal. On obtient le signal:
28 Méthodes de compression de données - 1
 X [k ] , k = 0 , M − 1
X c [k ] = 
sinon
 0 ,
Le nombre N-M d'échantillons X[k ] qui peuvent être négligés corresponde au
nombre de coefficients λ k de la matrice de covariance C x qui peuvent être
négligés.
Malheureusement il n'existe pas d’algorithmes rapides pour le calcul de la
transformée de Karhunen-Loève d'un signal.
Voilà pourquoi il est très difficile de déterminer les vecteurs propres de la matrice
de covariance. En pratique on utilise des transformées sous-optimales. Celles ci
convergent asymptotiquement vers la transformée de Karhunen-Loève mais
peuvent être calculées à l'aide des algorithmes rapides. On peut mentionner parmi
ces transformées les suivantes:
- la transformée de Walsh-Hadamard,
- la transformée en cosinus discrète, DCT,
- la transformée en ondelettes discrète.
La convergence asymptotique de la transformée DCT vers la transformée de
Karhunen-Loève est déjà prouvée, [8], [9].
On prouvera dans cet ouvrage, dans un prochain chapitre, la convergence des
différentes transformées en ondelettes discrètes envers la transformée de
Karhunen-Loève.
Chapitre 2. Transformées en ondelettes discrètes
Le but de ce livre est d’envisager l’apport de la théorie des ondelettes aux
techniques de compression. C’est le motif pour lequel dans ce chapitre, sont
présentées les connaissances appartenant à cette théorie, nécessaires pour la
réalisation de la compression.
2.1.1. La liaison entre la theorie des ondelettes et le codage en
sous-bandes
Une introduction détaillée à la theorie des ondelettes peut etre trouvée en
[10] ou en [6]. Dans la suite on présentera seulement les aspects intéressants de
cette theorie du point de vue de la compression de données. Pour le
commencement, on analyse le fonctionnement d'un codeur en deux sous-bandes, il
s'agit de cellules de base des structures de traitement multirating, qui sont utilisées
à la compression des signaux audio, conformément au standard MPEG. On
considère le système de la figure 1.2.1.1.b).
Figure 1.2.1.1. a) Le symbole pour un décimateur ; b) Le schéma d'un codeur en deux sousbandes.
Pour le commencement on considère le cas le plus simple, où les deux
filtres utilisés sont idéaux.
Les réponses en fréquence des filtres numériques à réponses à l'impulsion unitaire
h[n] et g[n] de la figure 1.2.1.1. sont présentées à la figure 2.2.1.1.
30 Transformées en ondelettes discrètes - 2
Figure 2.2.1.1. Les réponses en fréquence des filtres de la figure 1.2.1.1.
Pour analyser le codeur en sous-bandes, on calcule les transformées en z
des signaux s[n] et d[n]. A cette fin,on constate que:
U(z) = X(z) H(z) ;
V(z) = X(z) G(z)
Conformément à la définition de la transformée en z :
S(z) = ∑ s[n]z − n = ∑ u[2n]z − n
n
U(z) = ∑ u[n]z
n
U(− z) =
−n
n
= ∑ u[2n]z
n
∑ u[2n]z
n
−2 n
−
−2 n
+ ∑ u[2n + 1]z − ( 2 n −1)
n
∑ u[2n + 1]z
− ( 2 n +1)
n
et on observe qu'on peut écrire :
1
[U(z) + U(−z)] = ∑ u[2n]z −2n = ∑ u[2n](z 2 ) −n = S(z 2 )
2
n
n
En revenant à l'expression de S(z) :
1
1
1   2   2  
S(z)= U z + U − z 

2    


or :
(2.1.1.1)
2.1.1. - La liaison entre la theorie des ondelettes et le codage en sous-bandes 31
S(z) =
1
1
 1   1 
1   2   2 
 X z H z + X − z 2  H − z 2  

 

2     

 


(2.1.1.2)
Similaire, on démontre que :
D(z) =
1
1
 1   1 
1   2   2 
 X z G z + X  − z 2 G  − z 2  

 

2     

 


(2.1.1.3)
Pour calculer les spectres des signaux s[n] et d[n] on utilise la substitution :
z = e jΩ
dans les relations (2.1.1.2) et (2.1.1.3), en obtenant alors :
S(Ω) =
1  Ω Ω
Ω
 Ω

X   ⋅ H  + X + π  ⋅ H  + π  

2  2  2
2
 2

D(Ω) =
1  Ω Ω
Ω
 Ω

X   ⋅ G   + X + π  ⋅ G  + π  

2  2  2
2
 2

Soit, par exemple, le spectre X(Ω), de la figure 3.2.1.1.
Figure 3.2.1.1. Un exemple de spectre de signal d'entrée.
32 Transformées en ondelettes discrètes - 2
Les spectres des signaux s[n] et d[n] sont présentés dans les figures 4.2.1.1
et 5.2.1.1.
Figure 4.2.1.1. Le spectre du signal s[n].
Figure 5.2.1.1. Le spectre du signal d[n].
On constate que le spectre S(Ω) a la même forme que le spectre X(Ω) dans
la bande de fréquences [- π/2 , π/2 ]. On constate aussi que la portion du spectre
D(Ω) contenue dans la bande [-2π , -π ] ∪ [ π , 2π ] a la même forme que le spectre
X(Ω) dans la bande [ - π , π ] - [ -π/2 , π/2 ].
2.1.1. - La liaison entre la theorie des ondelettes et le codage en sous-bandes 33
Figure 6.2.1.1. Une structure arborescente de codage en sous-bandes.
On peut donc affirmer que le signal x[n] a été codé en deux sous-bandes,
ses composantes de basse fréquence étant retrouvées dans le signal s[n] et ses
composantes de haute fréquence, dans le signal d[n]. Le système de codage de la
figure 1.2.1.1 peut être regardé comme un système de projection aussi. Si la
séquence x[n ] représente les coefficients du développement d'un signal x (t ) dans
une base de l'espace de Hilbert V0 alors les séquences s[n ] et d[n ] représentent les
coefficients des développements des signaux s (t ) et d (t ) , les projections du signal
x (t ) sur deux sous-espaces de Hilbert fermés de V0 , V−1 et W−1 , dans les bases
de ces sous-espaces. Les espaces V0 et V−1 représentent les éléments d'une
analyse multi-résolution.
Pour augmenter le nombre de sous-bandes on peut utiliser une
structure arborescente comme cela est montré à la figure 6.2.1.1. Ce système
peut être utilisé, pour le calcul de la transformée en ondelettes discrète.
On calcule les transformées en z des signaux sk[n] et dk[n], k=1÷M. On
observe (conformément à la figure 1.2.1.1) que :
s1[n] = s[n] ; d1[n] = d[n]
et ainsi on peut écrire :
1
1
 1   1 
1   2   2 
S 2 (z) = S1 z H z + S1  − z 2 H − z 2 

 

2     

 


34 Transformées en ondelettes discrètes - 2
D 2 (z) =
1
1
 1   1 
1   2   2 
S1 z G z + S1  − z 2 G − z 2 

 

2     

 


Figure 7.2.1.1. Le spectre du signal s2[n].
Figure 8.2.1.1. Le spectre du signal d2[n].
En continuant l'exemple considéré antérieurement, les spectres des signaux
s2[n] et d2[n] prennent les formes présentées dans les figures 7.2.1.1 et 8.2.1.1.
On constate que le spectre S2(Ω) a la même forme que le spectre X(Ω)
dans la bande de fréquences [-π/4, π/4 ] et que le spectre D2(Ω) a la même forme
que le spectre X(Ω) dans la bande de fréquences [- π/2, π/2 ] - [-π/4, π/4 ].
2.1.1. - La liaison entre la theorie des ondelettes et le codage en sous-bandes 35
Figure 9.2.1.1. La correspondance entre le spectre X(Ω) et les spectres Sk(Ω), Dk(Ω),
k = 1÷2.
On peut constater aussi que le spectre SM(Ω) a la même forme comme le
spectre X(Ω) dans la bande de fréquences [-π/2M , π/2M ] et que le spectre DM(Ω) a
la même forme comme le spectre X(Ω) dans la bande [ - π/(2M-1) , π/(2M-1) ] –
[ -π/2M , π/2M ]. En autres mots, des morceaux du spectre X(Ω) ont été posés en
correspondance avec les signaux sk[n] et dk[n]. Cette correspondance est montrée
dans la figure 9.2.1.1.
On constate qu'en utilisant le système de la figure 6.2.1.1, la bande de
fréquences du spectre du signal x[n] est divisée en octaves. On peut donc affirmer
que le système avec la structure arborescente de la figure 6.2.1.1 est vraiment un
codeur en sous-bandes. Dans la suite on analyse l'opération de décodage. On pose
la question de la reconstruction du signal x[n] en utilisant les signaux s[n] et d[n].
On considère à ce but le système de la figure 10.2.1.1 b).
Figure 10.2.1.1. a) Interpolateur ; b) Système de décodage correspondant à celui de la
figure 1.2.1.1.
36 Transformées en ondelettes discrètes - 2
On calcule la transformée en z du signal b[n] (figure 10.2.1.1 a).) en
utilisant la transformée en z du signal a[n] :
α(z) = ∑ α[n]z − n
n
β(z) = ∑ β[n]z
−n
n
= ∑ β[2n]z −2 n + ∑ β[2n + 1]z − ( 2 n +1) =
n
n
= ∑ α[n]z
n
−2n
( )
= α z2
ainsi qu'on peut écrire les transformées en z pour les autres signaux du système de
codage :
U1 (z) = S(z 2 )
;
U 2 (z) = D(z 2 );
ou, tenant compte des relations (2.1.1.2) et (2.1.1.3) :
Y(z) = H(z) ⋅
+ G(z) ⋅
1
[X(z) ⋅ H(z) + X(−z) ⋅ H(−z)] +
2
1
[X(z) ⋅ G(z) + X(−z) ⋅ G(−z)]
2
(2.1.1.4)
En utilisant cette relation on détermine le spectre du signal y[n] :
Y(Ω) = H(Ω) ⋅
+ G(Ω) ⋅
1
[X(Ω) ⋅ H(Ω) + X(Ω + π) ⋅ H(Ω + π)] +
2
1
[X(Ω) ⋅ G(Ω) + X(Ω + π) ⋅ G(Ω + π)]
2
(2.1.1.5)
Si on utilise les filtres à réponses en fréquence avec les caractéristiques de la figure
2.1.1.2 on peut écrire les relations :
H(Ω) ⋅ H(Ω + π) = G(Ω) ⋅ G(Ω + π) = 0
H 2 (Ω) + G 2 (Ω) = 1
Alors la relation (2.1.1.5) devient :
2.1.1. - La liaison entre la theorie des ondelettes et le codage en sous-bandes 37
1
1
⋅ X(Ω) ⋅ H 2 (Ω) + ⋅ X(Ω) ⋅ G 2 (Ω) =
2
2
1
1
= ⋅ X(Ω) ⋅ H 2 (Ω) + G 2 (Ω) = ⋅ X (Ω)
2
2
Y(Ω) =
[
]
(2.1.1.6)
Donc, à l'exception d'une constante multiplicative (égale à 1/2), les signaux x[n] et
y[n] sont identiques. On dit que le décodeur de la figure 11.2.1.1. est à
reconstruction parfaite.
Figure 11.2.1.1. Le schéma d'un décodeur pour les signaux codés en M sous-bandes.
Celui-ci peut être utilisé pour la reconstruction parfaite du signal traité par
le système de la figure 6.2.1.1, si on utilise les filtres idéaux de la figure 2.2.1.1. Le
système de la figure 11.2.1.1 permet le calcul de la transformée en ondelettes
discrète inverse.
OBSERVATIONS
O1. Une analyse similaire peut être faite aussi pour le cas ou l'interpolation et la
décimation ne se font pas en utilisant la constante 2. On pourrait utiliser une autre
constante, par exemple M. Dans ce cas on n'obtient pas une décomposition en
octaves de la bande B du signal u[n]. On obtient une décomposition en sous-bandes
dont la largeur dépend de M.
O2. Pour les structures qui utilisent des arbres symétriques on peut faire une
analyse similaire. Ces structures correspondent à la notion de paquets d'ondelettes,
introduite en [11].
38 Transformées en ondelettes discrètes - 2
O3. La principale limitation des systèmes de codage et de décodage en sous-bandes
à structure arborescente présentés jusqu'ici est que les filtres à réponses en
fréquence de la figure 2.1.1.2 ne sont pas réalisables.
Dans la suite seront déterminées des classes de filtres réalisables qui
permettent le codage en sous-bandes à structure arborescente et à
reconstruction parfaite.
2.1.1.1. Le codage en sous-bandes à reconstruction parfaite
en utilisant des systèmes à structure arborescente avec des
filtres réalisables
On considère que h[n] et g[n] correspondent à des filtres réalisables. Un
système, équivalent à celui de la figure 10.2.1.1, destiné à la reconstruction
parfaite, est présenté à la figure 12.2.1.1.
Figure 12.2.1.1. Le système de reconstruction correspondant à un codeur en deux sousbandes.
Le signal de la sortie du décodeur est une variante retardée par d du signal
d'entrée. Il faut déterminer les réponses à impulsion unitaire hr[n] et gr[n] et les
conditions pour les filtres h[n] et g[n] pour obtenir à la sortie du système de la
figure 2.1.1.12 le signal x[n-d]. A cette fin, on écrit la relation (2.1.1.4) dans la
forme :
1
z −d ⋅ X(z) = H r (z) ⋅ [X(z) ⋅ H(z) + X(− z) ⋅ H(− z) ] +
2
(2.1.1.7)
1
+ G r (z) ⋅ [X(z) ⋅ G(z) + X(− z) ⋅ G(− z)]
2
ou :
1
z −d ⋅ X(z) = X(z) ⋅ [H r (z) ⋅ H(z) + G(z) ⋅ G r (z) ] +
2
1
+ X(− z) ⋅ [H r (z) ⋅ H(− z) + G(− z) ⋅ G r (z) ]
2
2.1.1.1. - Le codage en sous-bandes à reconstruction parfaite 39
Cette équation est aussi satisfaite par les solutions du système d'équations :
H r (z) ⋅ H(z) + G(z) ⋅ G r (z) = 2z − d
H(−z) ⋅ H r (z) + G(−z) ⋅ G r (z) = 0
On trouve la solution pour ce système en considérant connues les transformées en z
notées par H(z) et G(z). Le déterminant du système est :
∆=
H(z)
G(z)
H(− z)
G(− z)
= H(z) ⋅ G(− z) − H(− z) ⋅ G(z)
Les déterminants correspondants pour les deux variables sont de la forme :
∆H r =
2z −d
G(z)
0
G(−z)
= 2z −d ⋅ G(−z)
Donc les solutions sont données par les relations suivantes :
H r (z) =
2 ⋅ z − d ⋅ G(− z)
H(z) ⋅ G(− z) − H(− z) ⋅ G(z)
(2.1.1.8)
G r (z) =
− 2 ⋅ z − d ⋅ H(− z)
H(z) ⋅ G(− z) − H(− z) ⋅ G(z)
(2.1.1.9)
Evidement une condition qui doit etre imposée aux filtres du codeur est que
l'équation :
H(z) ⋅ G(− z) − H(− z) ⋅ G(z) = 0
(2.1.1.10)
n'ait pas une racine différente des racines de l'équation :
z −d = 0
C'est le motif pour lequel une condition appropriée pour les filtres h[n] et g[n]
serait :
(2.1.1.11)
H(z) ⋅ G(− z) − H(− z) ⋅ G(z) = 2z − d
Dans ce cas les relations (2.1.1.8) et (2.1.1.9) deviennent :
40 Transformées en ondelettes discrètes - 2
H r (z) = G(−z)
(2.1.1.12)
G r (z) = −H(−z)
(2.1.1.13
Donc les réponses en fréquence des filtres de reconstruction dépendent des
réponses en fréquence des filtres du codeur conformément aux relations:
H r (Ω) = G(Ω + π)
(2.1.1.14)
G r (Ω) = −H(Ω + π)
(2.1.1.15)
et les réponses en fréquence des filtres de la structure du codeur satisfaient:
H(Ω) ⋅ G(Ω + π) − H(Ω + π) ⋅ G(Ω) = 2 ⋅ e − jΩd
(2.1.1.16)
Hr(z) et Gr(z) sont les fonctions de transfert introduites par Esteban et Galand, [8],
sous le nom de "Quadrature Mirror Filters", QMF.
OBSERVATION : La relation correspondante à (2.1.1.11) dans le domaine du
temps est:
n −k
k
∑ h[k] ⋅ g[n − k] ⋅ {(−1) − (−1) } = 2 ⋅ δ[n − d]
(2.1.1.17)
k
Pour des valeurs paires de n cette relation peut être écrite dans la forme :
δ[n − d] = 0
en résultant la nécessitée que d soit un nombre naturel impair.
On a démontré ainsi qu'après l'utilisation des filtres QMF on peut réaliser
une reconstruction parfaite pour un codage en deux sous-bandes, si les filtres de
reconstruction respectent les conditions (2.1.1.12) et (2.1.1.13) et les filtres de
synthèse (h[n] et g[n]) respectent la condition (2.1.1.11) où la valeur d doit être
impaire. La relation (2.1.1.16) est générale. Elle ne fournit pas d' informations sur
la modalité de construction des filtres de synthèse. Smith et Barnwell ont déterminé
une classe de filtres de synthèse [12]. Ils ont proposé la liaison suivante entre les
réponses en fréquence des filtres de synthèses, supposés à réponses à impulsion
unitaire réel :
G(Ω) = −e − jΩd ⋅ H ∗ (Ω + π)
(2.1.1.18)
2.1.1.1. - Le codage en sous-bandes à reconstruction parfaite 41
En utilisant cette condition le membre droit de la relation (2.1.1.16) peut être écrit,
pour d impaire :
2
2
(2.1.1.19)
H(Ω) + H(Ω + π) = 2
Dans ce cas-ci les réponses en fréquence des filtres de reconstruction peuvent être
écrites dans la forme :
(2.1.1.20)
H r (Ω) = e − jΩd ⋅ H ∗ (Ω)
G r (Ω) = − H(Ω + π)
(2.1.1.21)
COMMENTAIRES
1. Soit :
h '[n] = (−1 )n h[n]
On constate que :
h ' [n] ↔ H(Ω + π)
La relation correspondante à la relation (2.1.1.19) dans le domaine du temps est,
conformément à la relation de Wiener-Hincin :
R hh [n] + R h′h′ [n] = 2δ[n]
(2.1.1.22)
C'est le motif pour lequel on peut affirmer que, du point de vue de la construction
des filtres de la structure du codeur, respectivement du décodeur, la relation
(2.1.1.19) est mieux que la relation (2.1.1.16).
2. En connaissant les avantages d'implémentation des filtres RIF par rapport aux
filtres RII, on suppose dans la suite que tous les filtres d'analyse et de synthèse sont
de type RIF. Si le filtre h[n] est causal alors sa transformée de Fourier à temps
discret est :
H(Ω) =
L −1
∑ h[n] ⋅ e − jΩn
n =0
et sa transformée en z est :
H(z) =
L −1
∑
h[n] ⋅ z − n
n =0
où L représente la longueur de la réponse à l'impulsion unitaire pour le filtre
considéré.
42 Transformées en ondelettes discrètes - 2
Admettant que h[n] sont des nombres réels on peut écrire :
H ∗ (Ω) =
L −1
∑ h[n] ⋅ e jΩn
n =0
et:
H ∗ ( Ω + π) =
L −1
∑ (−1 )
n
⋅ h[n] ⋅ e jΩn
n =0
Suite à la relation (2.1.1.18) résulte que la réponse en fréquence de l'autre
filtre de synthèse sera :
L −1
L −1
n =0
n =0
G(Ω) = −e jΩd ⋅ ∑ (−1 )n ⋅ h[n] ⋅ e jΩn = − ∑ (−1 )n ⋅ h[n] ⋅ e jΩ ( n −d )
Pour avoir un filtre causal, il est nécessaire que pour chaque n entre 0 et L-1 la
condition suivante soit satisfaite :
n−d<0
et donc le retard d doit satisfaire la condition :
d > L −1
(2.1.1.22)
Si on respecte cette condition alors les deux filtres de synthèse sont causaux. Donc
la plus petite valeur de d est :
d min = L
(2.1.1.23)
Pour pouvoir reconstruire avec un retard minime,il est donc nécessaire d'utiliser
des filtres de synthèse de longueur impaire.
En utilisant les relations (2.1.1.20) et (2.1.1.21) on constate que si la
condition (2.1.1.23) est respectée alors les filtres de reconstruction sont aussi
causaux.
3. Les quatre filtres (à réponses en fréquence H(Ω), G(Ω), Hr(Ω) et Gr(Ω)) ont la
même longueur. En faisant des petites modifications, le schéma peut fonctionner
avec des filtres d'analyse d'une certaine longueur et avec des filtres de synthèse
d'une autre longueur, [13], [14].
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 43
2.1.1.1.1. Méthodes de construction des filtres CQF
On fait la notation :
F(z) = H(z) ⋅ H(z −1 )
ou :
F(Ω) = H(Ω) ⋅ H ∗ (Ω) = H(Ω)
2
(2.1.1.25)
La condition (2.1.1.20) peut être écrite dans la forme suivante :
F(Ω) + F(Ω + π) = 2
(2.1.1.26)
On conçoit le système à réponse en fréquence F(Ω) en utilisant la relation
(2.1.1.26). Puis on déduit H(Ω) en utilisant la relation (2.1.1.25) et à la fin on
déduit G(Ω), Hr(Ω) et Gr(Ω).
En [9] sont présentés plusieurs exemples de réponses en fréquence H(Ω) obtenues
en utilisant la méthode de conception décrite. La classe de ces filtres peut être
restreinte si on impose des conditions supplémentaires. Par exemple on peut
imposer :
- la condition de phase linéaire (la symétrie de la réponse à impulsion
unitaire) ;
- la condition de longueur minimale de cette réponse,
- la condition de simplicité des expressions analytiques,
Toutes ces conditions sont importantes quand se pose le problème du codage en
plusieurs sous-bandes parce qu'elles favorisent la stabilité numérique des
algorithmes d'implémentation des systèmes présentés dans les figures 2.1.1.11 et
2.1.1.16. Cette stabilité est assurée si les filtres respectent une certaine condition de
régularité, [15], [16]. La condition de régularité est la partie qui relie la théorie des
systèmes de codage en sous-bandes à la théorie des ondelettes.
2.1.2 La liaison entre les systèmes de codage en sous-bandes
et la théorie des séries d'ondelettes
La théorie des séries d'ondelettes, développée en [15], [16], [17] a pour but
la construction des nouvelles bases de Riesz de l'espace L2(R). On commence avec
la définition de l'analyse multi-résolution.
DEFINITION 1. S'appelle analyse multi-résolution de l'espace L2(R), l'ensemble
de sous-espaces de Hilbert fermés {Vm}m∈Z qui satisfont les propriétés :
i). . . . Vm+1 ⊂ Vm ⊂ Vm-1 . . . m∈Z
44 Transformées en ondelettes discrètes - 2
ii).
__
U Vm
= L2 (R ),
m∈Z
I Vm = {0}
m∈Z
iii). ∀f ( x ) ∈ Vm , f (2 x ) ∈ Vm −1
iv). ∃ ϕ∈V0, tel que l'ensemble { ϕm,n(x) } = { 2-m/2 ϕ( 2-mx - n ) }n∈Z forme une
base de Riesz du Vm pour chaque m.
En [18] et [19] sont présentés plusieurs exemples d'analyses multi-résolution. La
fonction ϕ(x) s'appelle fonction d'échelle. Chaque base de Riesz peut être
transformée dans une base orthogonale, [7].
On considère, dans la suite que l'ensemble {ϕ(x-k) }k∈Z est une base orthonormale
de l'espace V0. Dans la plupart des livres déjà cités est démontré le théorème
suivant :
THEOREME 1. Si {ϕ(x-k)}k∈Z est une base orthonormale de l'espace V0, alors
l'ensemble {ϕm,k(x)}k∈Z est une base orthonormale de l'espace Vm.
Dans la suite on détermine les projections d'une fonction f0(x) de V0 sur les
espaces V1, ..., VM, les fonctions f1(x), ..., fM(x) :
f1 (x) = ∑ 〈 f(x), ϕ1,n (x)〉 ⋅ ϕ1,n (x)
k
Ces fonctions représentent les approximations de différentes résolutions de la
fonction f(x). Il y a des applications où la plus bonne résolution n'est pas nécessaire
pour traiter cette fonction. Par exemple pour la compression, l'information
contenue est parfois suffisante dans l'une des approximations de résolution plus
faible. Les coefficients de ce développement en série de Fourier généralisée sont
notés avec s1[n] et sont donnés par :
s1[n] = 〈 f(x), ϕ1,n (x)〉 = 〈 f(x), ∑ h* [2n − k] ⋅ ϕ[x − k]〉 =
k
= ∑ h[2n − k] ⋅ 〈 f(x), ϕ[x − k]〉
k
En utilisant la notation :
on obtient :
〈 f(x), ϕ(x − k)〉 = s 0 [k]
s1 [n] = ∑ s 0 [k] ⋅ h[2n − k]
k
(2.1.2.1)
relation qui exprime la liaison entre les coefficients des projections de la fonction
f(x) sur les deux premiers éléments de l'analyse multi-résolution. Les coefficients
du développement de la projection sur V-2 sont notés par s2[n] et sont donnés par :
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 45
∞
s 2 [n] = 〈 f(x), ϕ2,n (x)〉 = ∫ f(x) ⋅ ϕ∗2,n (x)dx
−∞
Mais, en revenant à la définition 1, pour m = 2, nous avons :
ϕ 2,n (x) = 2
−
2
2
−2
⋅ ϕ(2 x − n ) = 2
=2
−
1
2
−
1
2
⋅2
−
1
2
ϕ(2 −1 (2 −1 x ) − n ) =
⋅ ϕ1,n (2 −1 x )
ou:
2
−
1
2
⋅ ϕ1,n (2 −1 u) = 2
−
1
2
⋅ ∑ h ∗ [2n − k] ⋅ ϕ(2 −1 u − k)
k
ou :
ϕ 2,n (u) = ∑ h* [2n − k] ⋅ ϕ1,k (u)
k
En procédant similairement on peut démontrer que pour chaque m positif est la
relation suivante est valable:
ϕ m,n (x) = ∑ h*[2n − k] ⋅ ϕ m−1,k (x)
(2.1.2.2)
k
On peut écrire encore :
∗
∞


s 2 [n ] = ∫ f ( x ) ⋅ ∑ h* [2n − k] ⋅ ϕ1,k (x)  dx =
 k

−∞
= ∑ h[2n − k] ⋅ 〈f ( x ), ϕ1,k (x)〉
k
ou :
s 2 [n] = ∑ s1 [k] ⋅ h[2n − k]
k
(2.1.2.3)
On peut démontrer par récurrence que :
s m [n] = ∑ s m −1 [k] ⋅ h[2n − k]
k
pour chaque m positif.
En analysant le membre droit de la dernière relation on constate que :
(2.1.2.4)
46 Transformées en ondelettes discrètes - 2
s m [n] = s m −1 [p] ∗ h[p] p =2 n
(2.1.2.5)
Donc les coefficients des développements des projections du signal f0(t) sur deux
sous-espaces successifs Vm-1 et Vm, les séquences sm-1[n] et sm[n], peuvent être
déterminés par le filtrage avec le filtre h[n] et par décimation.
En faisant la notation :
s 0 [n] = x[n]
il résulte que les séquences sm[n] , m=1÷M, peuvent être obtenues en utilisant le
système de la figure 2.1.1.11. C'est la liaison entre les systèmes de codage en
sous-bandes et la théorie des séries d'ondelettes qui représente le sujet de ce
paragraphe.
OBSERVATIONS
O1. On calcule la transformée de Fourier, F, des variantes translatées et d'autres
échelles des fonctions d'échelle :
 −1
F{ϕ1,n ( x )} = ϕˆ 1,n (ω) = F2 2 ⋅ ϕ 2 −1 x − n

(
)(ω) = 2

−
1
2
∞
(
)
⋅ ∫ ϕ 2 −1 x − n ⋅ e − jωx dx
−∞
En faisant le changement de variable 2-1x - n = u on obtient :
F{ϕ1,n ( x )} = 2
−
1
2
∞
∞
1
⋅ ∫ ϕ(u ) ⋅ e − jω2( u + n ) ⋅ 2du =2 2 ⋅ ∫ ϕ(u ) ⋅ e −2 jωu ⋅ e −2 jωn du =
−∞
1
2
−∞
∞
1
2
= 2 ⋅ e −2 jωn ⋅ ∫ ϕ(u ) ⋅ e −2 jωu du =2 ⋅ e −2 jωn ⋅ ϕˆ (2ω)
−∞
Donc :
ϕˆ 1,n (ω) = 2 ⋅ e −2 jωn ⋅ ϕˆ (2ω)
ou :


2 ⋅ϕˆ (2ω) =  ∑ h ∗ [2n − k] ⋅ e - jω(k -2n )  ⋅ ϕˆ (ω)
 k

ou :
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 47
∗
 1

ϕˆ (2ω) = 
⋅ ∑ (h v [k − 2n] ⋅ e - jω(k -2n )  ⋅ ϕˆ (ω)
 2 k

où a été utilisée la notation :
h v [m] = h[−m]
En faisant le changement de variable k-2n=p on peut écrire :
1
2
⋅ ∑ h v [k − 2n ] ⋅e − jω(k −2n ) =
∗
1
2
k
⋅ ∑ h v [p] ⋅ e − jωp
∗
p
Dans la suite, si on fait la notation :
m 0 (ω) =
∗
1
h v [k − 2n] ⋅ e - jω(k -2n )
∑
2 k
on peut écrire :
ϕˆ (2ω) = m 0 (ω) ⋅ ϕˆ (ω)
On observe que m0(ω) a la signification de transformée de Fourier à temps discrèt
de la séquence hv*[p], de variable ω.
Dans la dernière relation on fait le changement de variable 2 ω = u et nous
avons :
u u
ϕˆ (u) = m 0   ⋅ ϕˆ  
2 2
ou:
 ω  ω
ϕˆ (2ω) = m 0 (ω) ⋅ m 0   ⋅ ϕˆ  
2 2
En procédant itérativement on peut démontrer que :
∞
ω
ϕˆ (ω) = ∏ m 0  p  ⋅ ϕˆ (0)
2 
p =1
Mais la fonction d'échelle représente d'habitude la réponse à impulsion unitaire
d'un filtre passe-bas. C'est le motif pour lequel on peut écrire :
ϕˆ (0) = 1, m 0 (0) = 1,
∑ h [p] = 1
*
p
48 Transformées en ondelettes discrètes - 2
et la dernière relation peut etre écrite dans la forme :
∞
ω
ϕˆ (ω) = ∏ m 0  p 
2 
p =1
En conséquence, si le produit du membre droit est convergent, il résulte que la
dernière relation peut être utilisée pour la construction d'une fonction d'échelle. La
convergence du produit du membre droit est assurée par la satisfaction de la
condition de régularité déjà évoquée. Donc le mécanisme de construction d'une
fonction d'échelle est le suivant :
a). On choisi la réponse à impulsion unitaire du filtre passe-bas h[n];
b). On construit la séquence hv*[n];
c). On calcule m0(ω);
d). On calcule ϕ(ω).
Ce mécanisme de construction est remarquable parce qu'il utilise des
méthodes de traitement du signal à temps discret pour la construction d'un
signal à temps continu.
En connexion avec l'analyse multi-résolution introduite par la définition 1 on peut
définir le complément orthogonal du Vm dans Vm-1 , Wm :
Vm−1 = Vm ⊕ W
La séquence de sous-espaces {Wm}m∈Z ainsi définie représente une décomposition
orthogonale de l'espace de Hilbert des signaux d'énergie finie L2(R), [15].
DEFINITION 2 : La séquence de sous-espaces de Hilbert fermés {Wm}m∈Z est
une décomposition orthogonale du L2(R) si les conditions suivantes sont
accomplies :
i). m≠p => Wm⊥Wp
ii).
U Vm = L2 (R )
m∈Z
conformément à [17].
En liaison avec les décompositions orthogonales de l'espace L2(R) on peut
démontrer le théorème suivant.
THEOREME 2. Il y a une fonction dans W 0 , ψ(x) tel que :
i) l'ensemble {ψ(x-n)}n∈Z est une base orthonormale du W0;
ii) l'ensemble {ψm,n(x)= 2-m/2 ψ(2-mx-n)}n∈Z est une base orthonormale du Wm pour
chaque entier m.
La fonction génératrice de cette base s'appelle mère des ondelettes et les éléments
de ces bases s'appellent des ondelettes.
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 49
OBSERVATIONS
O1. On peut démontrer les relations :
∑ g [2n − k ]⋅ g[2m − k ] = δ[m − n ]
∑ h [2n − k ]⋅ h[2m − k ] = δ[m − n ]
∗
k
∗
k
utiles pour la description du comportement dans le domaine du temps des filtres
avec les réponses en fréquence H(Ω) et G(Ω).
O2. On détermine la caractérisation dans le domaine de la fréquence des
ondelettes. A ce but on calcule les transformées de Fourier de deux membres de
leur relation de définition :
 12

F{ ψ (x − n) } = ∑ g [2n − k] ⋅ F2 ⋅ ϕ(2 x − k)
k


∗
ou :
1
ˆ (ω) = ∑ g ∗ [2n − k] ⋅ 2 2 ⋅ F{ϕ(2x − k)}
e − jωn ⋅ Ψ
k
ou, en faisant le changement de variable 2x-k=u, on obtient :
F{ ϕ(2x − k) } =
∞
∫ ϕ(2x − k) ⋅ e
− jωx
dx =
-∞
∞
=
∫ ϕ(u) ⋅ e
− jω
u +k
2
-∞
ω
du 1 − j 2 k  ω 
⋅
⋅ ϕˆ  
= ⋅e
2 2
2
et revenant à la relation antérieure :
ω
ˆ (ω) =  ∑ 1 ⋅ g ∗ [2n − k] ⋅ e- j 2 k  ⋅ ϕˆ  ω 
e − jωn ⋅ Ψ


k 2
 2
d'où résulte la relation pour la transformée de Fourier de la fonction ψ(x) :
ω
ˆ (ω) =  ∑ 1 ⋅ g ∗ [2n − k] ⋅ e− j 2 ( k − 2 n )  ⋅ ϕˆ  ω 
Ψ


k 2
 2
50 Transformées en ondelettes discrètes - 2
Avec la notation :
ω
1
 ω
⋅ g v* [p] ⋅ e− j 2 p
m1   = ∑
2 k 2
la dernière relation peut être écrite :
ˆ (ω) = m  ω ϕˆ  ω 
Ψ
1
2 2
Tenant compte de l'expression de la transformée de Fourier de la fonction d'échelle,
l'expression de la transformée de Fourier de l'ondelette mère devient :
∞
ˆ (ω) = m  ω ∏ m  ω 
Ψ
1
0
p
 2  p=2  2 
Cette relation permet la construction d'une ondelette mère en partant d'une certaine
réponse de type h[n].
O2. La fonction d'échelle est construite à l'aide du filtre avec la réponse h[n] et
l'ondelette mère à l'aide du filtre à réponse g[n].
Dans la suite on établi la liaison entre les projections d'un signal f(x) de V0
sur les sous-espaces successifs Vm-1, Wm. A ce but on calcule le produit scalaire
〈 ψ1,n ( x ), ϕ(x − l)〉 . On peut écrire :
ψ1,n (x) = ∑ g ∗ [2n − k] ⋅ ϕ 0,k (x)
k
ou :
〈 ψ 1,n ( x ), ϕ(x - l)〉 = 〈 ∑ g ∗ [2n − k ] ⋅ ϕ 0,k ( x ), ϕ 0,l ( x )〉 = g ∗ [2n − l]
k
Alors :
ψ1,n (x) = ∑ g ∗ [2n − l] ⋅ ϕ(x − l)
l
et :
e1 (x) = ∑ 〈 e1 (x), ψ 1,n (x)〉 ⋅ ψ1,n (x)
n
En appliquant le théorème de la projection (de Riesz), on obtient :
〈 e1 (x), ψ1,n (x)〉 = 〈 f(x), ψ1,n (x)〉 = 〈 ∑ s 0 [ k ] ⋅ ϕ( x − k ), ψ 1,n (x)〉 =
k
= ∑ s 0 (k) ⋅ 〈 ψ 1,n (x), ϕ( x − k )〉 = ∑ s 0 [k ] ⋅ g[ 2n − k ]
∗
k
k
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 51
Donc les coefficients du développement du signal e1(x) (qui représente l'erreur
avec la quelle le signal f1(x) fait l'approximation du signal f0(x)) dans la base
{ψ1,n(x)}n∈Z sont ∑ s 0 [k ] ⋅ g[2n − k ] . Mais pour ces coefficients nous avons utilisé
k
la notation d1[n] dans la figure 11.2.1.1, donc :
d1 [n ] = ∑ s 0 [k ] ⋅ g[2n − k ]
k
En procédant par récurrence on peut démontrer que :
d m [n ] = ∑ s m −1 [k ] ⋅ g[2n − k ] = 〈 f ( x ), ψ m ,n ( x )〉
k
Donc les coefficients du développement de la projection du signal f(x) de V0 sur le
sous-espace Wm, peuvent être déterminés par filtrage avec le filtre g[n] et par
décimation en partant de sa projection sur l'espace Vm-1. On constate que pour
m=1,M, les séquences dm[n] peuvent être obtenues en utilisant le système de la
figure 2.1.1.11. Donc en utilisant ce système, peut être déterminée l'approximation
de résolution M d'un signal et l'erreur produite par cette approximation aussi.
OBSERVATIONS
O1. Dans son travail, [15], Ingrid Daubechies détermine toutes les réponses à
impulsion unitaire de filtres RIF, h[n] et g[n] qui satisfassent une certaine condition
de régularité. D’autres conditions de régularité sont présentées en [20]… [24]. Ces
réponses à impulsion unitaire sont classifiées par leur longueur. Par exemple le
filtre DAU2 est un filtre de longueur 4. Le désavantage majeur est que ceux-ci
n'ont pas des caractéristiques de phase linéaires.
O2. Si l'hypothèse d'orthonormalité de l'ensemble {ϕ(x-n) }n∈Z, est abandonnée et
que l’on considère seulement que celle-ci est une base de Riesz, alors la theorie
présentée dans ce paragraphe peut être généralisée. Cette généralisation a été faite
en [24] en obtenant la classe des ondelettes biorthogonales à support compact. Les
filtres correspondants sont de type RIF aussi, mais cette fois ci, les filtres d'analyse
et les filtres de synthèse peuvent avoir des longueurs différentes. Ces filtres
peuvent avoir la phase linéaire.
O3. L'avantage pour la compression de l'utilisation des ondelettes orthonormales
par rapport à l'utilisation des ondelettes biorthogonales est présenté dans la suite.
52 Transformées en ondelettes discrètes - 2
On peut écrire :
M
f 0 (x) = f M (x) + ∑ e m (x)
m =1
Ainsi :
f 0 (x)
M
2
M
= 〈f M ( x ) + ∑ e m (x), f M (x) + ∑ e m (x) 〉 =
m =1
m =1
M
M
M
m =1
m =1
= 〈 f M ( x ), f M (x) + ∑ e m (x) 〉 + 〈 ∑ e m (x), f M (x) + ∑ e m (x) 〉 =
m =1
M
M
M
M
m =1
m =1
k =1
= 〈 f M ( x ), f M (x)〉 + 〈 f M ( x ), ∑ e m (x)〉 + 〈 f M ( x ), ∑ e m (x)〉 ∗ + 〈 ∑ e k (x), ∑ e m (x)〉 ∗ =
= f M (x)
M


+ 2 Re 〈 f M ( x ), ∑ e m (x)〉  +
m =1


2
M
∑e
m =1
2
m
(x)
m =1
Dans cette relation, parceque nous avons :
f M (x)⊥e m (x) , ∀ m = 1 ÷ M
nous aurons aussi :
M
f M (x)⊥∑ e m (x) , ∀ m = 1 ÷ M
m =1
et en ce qui concerne la norme de f0(x) nous pouvons écrire :
2
f 0 (x) = f M (x)
2
+
2
M
∑e
k =1
k
(x )
puis, en utilisant des propriétés du produit scalaire :
M
∑ e k (x )
k =1
2
M
M
k =1
l =1
M
M
k =1
l =1
= 〈 ∑ e k (x ), ∑ e l (x )〉 = ∑ 〈 e k (x ), ∑ e l (x )〉 =
M
M
M
= ∑∑ 〈e l ( x ), e k ( x )〉 = ∑
k =1 l =1
k =1
e k (x)
En revenant on constate que nous avons démontré que:
2
2.1.2. - La liaison entre les systèmes de codage en sous-bandes 53
2
f 0 (x)
= f M (x)
2
M
+∑
e k (x)
k =1
2
En utilisant la relation du Parseval on peut écrire la relation en temps
discret equivalente à la dernière relation. Celle-ci est :
s 0 [n ]
2
= s M [n ]
2
M
+∑
k =1
d k [n ]
2
Les deux dernières relations peuvent être regardées comme des formes du
principe de la conservation de l'énergie, spécifique pour des transformées
orthogonales. Ces relations ne sont pas valables pour les ondelettes biorthogonales.
Donc on peut affirmer que c'est mieux d'utiliser les ondelettes orthogonales quand
des approximations d'erreur quadratique moyenne sont nécessaires. On peut
affirmer aussi que les transformées discrètes basées sur les ondelettes
biorthogonales ne sont pas orthogonales. C'est le motif pour lequel ces
transformées sont redondantes. Voilà un motif sérieux pour éviter ces
transformations dans les applications de compression.
O4. La théorie déjà présentée peut être généralisée aussi pour le cas de codeurs en
sous-bandes à structure arborescente symétrique. Cette généralisation est faite en
[25].
O5. La théorie déjà exposée peut être généralisée aussi pour des codeurs en sousbandes qui utilisent des décimateurs et des interpolateurs à constante M, différente
de 2, [26].
O6. Une autre direction de développement des codeurs en sous-bandes est celle
basée sur l'utilisation des filtres d'analyse et de synthèse RII, [27], ou des filtres
variants en
temps, [28].
2.1.3. La transformée en ondelettes discrète TOD
Dans le paragraphe antérieur, on a établit la liaison entre les séries
d'ondelettes et la technique de codage en sous-bandes. A l'aide du système de la
figure 11.2.1.1. peut être introduite la notion de transformée en ondelettes discrète.
Ce système transforme la séquence x[n] dans les séquences sM[n] et d1[n],
d2[n],...,dM[n]. Soit y[n] la séquence obtenue par la réunion de ces séquences :
y[n] = {s M [n] , d1[n] , ... , d M [n] }
54 Transformées en ondelettes discrètes - 2
L'opération :
x[n] → y[n]
porte le nom de transformée en ondelettes discrète, (DWT en anglais) ou TOD.
L'opération :
y[n] → x[n]
qui peut etre réalisée par le système de la figure 2.1.1.16 est nommée transformée
en ondelettes discrète inverse (IDWT en anglais), TODI.
On peut démontrer que la TOD est linéaire et orthogonale. Dans la suite on
présente, sur un exemple, l'algorithme de Mallat de calcul de la TOD, [29]. Soit X
le vecteur de la séquence d'entrée :
s 0 [8]
s [7]
X = S0 =  0 
 M 


 s 0 [1] 
On considère que la longueur des filtres h[n] et g[n] est 4. Le premier pas est décrit
par la relation :
Y1 = M 0 X
où la matrice M0 est donnée par la relation :
 h[0]

− h[3]

0


0

M0 = 
0


0


 h[2]

− h[1]
h[1]
h[2] h[3]
0
0
0
h[2] − h[1] h[0]
0
0
0
h[2] h[3]
0
0 − h[3] h[2] − h[1] h[0]
0
0
h[0] h[1]
0
0
0
0
0
0 − h[3] h[2] − h[1]
h[3]
0
0
0
0
h[0]
0
0
0
0 − h[3]
On constate qu'on obtient :
h[0] h[1]
h[2]
h[0]
0

0

0

0

h[3]

h[0]

h[1]

h[2]
2.1.3. - La transformée en ondelettes discrète TOD 55
Y1T = [s1 [4] d 1 [4] s1 [3] d 1 [3] s1 [2] d 1 [2] s1 [1] d 1 [1] ]
Par permutations résulte :
(Y )
1 T
1
= [s1 [4] s1 [3] s1 [2] s1 [1] d 1 [4] d 1 [3] d 1 [2] d 1 [1]]
qui est un vecteur obtenu par la réunion des séquences s1[n] et d1[n]. En séparant
ces séquences on obtient les vecteurs :
(X )
(X )
1 T
1
2 T
1
= [s1 [4] s1 [3] s1 [2] s1 [1]]
= [d1 [4] d 1 [3] d 1 [2] d 1 [1]]
Soit M1 la matrice obtenue par la restriction de la matrice M0 à son quart de haut de
gauche :
h[2] h[3]
 h[0] h[1]


− h[3] h[2] − h[1] h[0]
M1 = 

0
0
h[0] h[1]



0
0 − h[3] h[2]

Le deuxième pas de l'algorithme est décrit par la relation :
Y2 = M1X11
et le résultat est :
Y2T = [s 2 [ 2] d 2 [2] s 2 [1] d 2 [1]]
En mode analogue, résulte par permutations :
(Y )
1 T
2
= [s 2 [2] s 2 [1] d 2 [2]d 2 [1]]
où, si nous séparons les séquences s2[n] et d2[n] nous obtenons :
(X )
1 T
2
= [s 2 [2] s 2 [1]] et
(X )
2 T
2
= [d 2 [2]d 2 [1]]
Maintenant, à l'aide des vecteurs X21, X22 et X12 on construit le vecteur Y:
[(
Y T = X12
) (X ) (X ) ]
T
2 T
2
2 T
1
56 Transformées en ondelettes discrètes - 2
Cette relation représente le résultat de l'application de la transformée en ondelettes
discrète au vecteur X. En analysant le nombre d’opérations effectuées on constate
que pour le premier pas de l'algorithme ont été nécessaires 32 multiplications et
que pour le deuxième pas de l'algorithme ont été nécessaires 16 multiplications, 48
au total. Si le vecteur X a N éléments alors le nombre de multiplications serait de
l'ordre 4N, [30]. Si des filtres de longueur L étaient utilisés alors le nombre de
multiplications serait LN. Pour N suffisamment grand on constate que le nombre
de multiplications nécessaires est inférieur à Nlog2N, donc la transformée en
ondelettes discrète peut être effectuée plus rapidement que la transformée de
Fourier rapide. C'est le motif pour lequel cette transformée s'appelle aussi la
transformée en ondelettes rapide.
Pour le calcul de la transformée inverse il faut appliquer les opérations décrites
plus haut en ordre inverse. Le matrices M0, M1, ... seront substituées par les
matrices M0T, M1T, etc.
Comme chaque transformée, qui s'applique à une séquence de durée finie,
cette transformée présente aussi des erreurs aux bords. Pour les premiers
échantillons de la séquence x[n], les filtres h[n] et g[n] ne sont pas encore en
régime permanent. Pour diminuer cette erreur, différentes méthodes sont présentées
en [31]. Si on désire la réalisation d'une TOD sur des blocs, alors pour la réduction
des erreurs provoquées par les problèmes aux bords de chaque bloc, on peut
appliquer la méthode "overlap and add" ou la méthode "overlap and save", [32].
La TOD est caractérisée par quelques paramètres. L'un de ceux-ci est
l'expression de la réponse impulsionnelle h[n], (donc l'expression de la fonction
d'échelle ou de l'ondelette mère). Conformément à [33], cette expression doit être
corrélée avec la forme du signal x[n]. Quand ce signal a une variation rapide, il est
préférable d'utiliser un filtre à réponse impulsionnelle le plus court possible. Il y a
des applications où il est nécessaire que la réponse impulsionnelle h[n] soit
modifiée pendant l'intervalle temporel de calcul de la TOD, [34]. Une
préoccupation très intéressante est le choix optimal de cette réponse impulsionnelle
en accord avec le signal à traiter, pour maximiser le facteur de compression, à une
distorsion de reconstruction imposée. Cette technique est présentée en [35].
Un autre paramètre de la transformée est son nombre d'itérations, M. Dans
l'exemple donné pour la description de l'algorithme de calcul de la transformée, on
a utilisé pour M sa plus grande valeur. Il n'est pas nécessaire que la longueur de la
séquence sM[n] de la structure du vecteur Y soit minime (de valeur 2). Il y a des
applications où la longueur de la séquence sM[n] de la structure du vecteur Y est
plus grande.
Enfin, un dernier paramètre de la TOD est la longueur de la séquence
d'entrée, N. Cette longueur doit être une puissance de 2. Pour une sélection
convenable il est possible d'avoir besoin d'une transformée sur blocs, [36]. La
transformée en ondelettes discrète a aussi d'autres applications. Quelques-unes sont
présentées dans : [37]… [41].
2.1.4. - Paquets d'ondelettes 57
2.1.4. Paquets d'ondelettes
Dans la suite on présente une généralisation de la notion d'analyse multirésolution qui contribue au développement de la théorie des ondelettes. Il s'agit de
la notion de paquet d'ondelettes. Celle-ci conduit à une nouvelle transformée
discrète, la transformée en paquets d'ondelettes TPOD, qui généralise la TOD.
Les paramètres de la TOD sont le nombre d'itérations et l'ondelette mère
utilisée. La sélection de ces paramètres en accord avec l'application considérée est
décisive pour trouver la meilleure solution d'un problème. L'utilisation de la TPOD
aide à la résolution de ce problème de choix.
Une généralisation simple mais très utile des notions d'ondelette et
d'analyse multi-résolution est représentée par la notion de paquets d'ondelettes.
Pour introduire cette notion, est utile la notation suivante :
m e (ω ) = m eo (ω ) m11−e (ω ) , e = 0,1
L'observation fondamentale qui se trouve à la base de la construction des paquets
d'ondelettes est l'artifice de division. On suppose que l'ensemble de fonctions
{f (τ − k )}k∈Z est une base orthonormale de l'espace de Hilbert S. Alors les
fonctions
1
τ

τ

et
f k1 (τ) =
⋅f o − k
⋅ f 1 − k  , k ∈ Z
2
2

2
2

 ω
 ω
ou F f e (ω) = m e   F{f }   , constitue aussi une base orthonormale de
2
2
o
1
l'espace S, f k (τ), f k (τ) k ∈ Z .
f ko (τ) =
1
{ }
{
}
Une analyse multi-résolution classique est obtenue en divisant les espaces
Vm, en utilisant l'artifice de division, décrit plus haut, dans les espaces Vm - 1 et Wm 1 et après en faisant la même chose de manière récursive pour l'espace Vm - 1.
Les paquets d'ondelettes sont les ensembles de fonctions, éléments des bases
orthonormales qui s'obtiennent si on utilise l'artifice de division pour les espaces
Wm aussi, en autres mots si on utilise un système de codage en sous-bandes à
structure symétrique. En commencant avec l'espace Vm, on obtient, après avoir
appliquer L fois l'artifice de division, les fonctions (éléments d'une base
orthonormale) :
ψ eL1 , ...e L ; m , k (τ ) = 2
avec :
F
{ψ
L
e1 , ...e L
} (ω) =
(m − L )
2
L
l =1
(
ψ eL1 , ...e L 2 m − L τ − k
(
)
(
)
m el 2 -l ω ⋅ F{ϕ} 2 −L ω
)
58 Transformées en ondelettes discrètes - 2
Ainsi, après L divisions, on obtient 2L fonctions de base et leurs
translatées par des entiers multiples de 2L − m ,comme éléments de la base
orthonormale de l'espace Vm. La liaison entre les paquets d'ondelettes et les
fonctions d'échelle, respectivement les ondelettes correspondantes, est :
ϕ(τ) = ψ oL, ..., o (τ) et ψ(τ) = ψ 1L, o , ..., o (τ)
En fait il n'est pas nécessaire de partager chaque espace pour chaque
valeur du m. Dans la figure 1.2.1.4. on présente une modalité de division de
l'espace V3 qui correspond au schéma de génération des paquets d'ondelettes. Dans
la figure sont notés avec * les espaces qui appartiennent à une analyse multirésolution :
Figure 1.2.1.4. Schéma pour la génération des paquets d'ondelettes.
V3 = Vo ⊕ W2 ⊕ W1 ⊕ Wo
Avec ° ont été notés les espaces qui peuvent participer à la construction d'un paquet
d'ondelettes. La base orthonormale du Vo, qui correspond au paquet d'ondelettes
choisi dans cet exemple est ψ1o (4τ − k ) , ψ12,1 (2τ − k ) , ψ13, o, o (τ − k ) , ψ1, o, 1 (τ − k ) k∈Z .
{
}
Un autre paquet d'ondelettes peut être construit si on choisit les fonctions notées
avec + dans la figure 1.2.1.4. A ce nouveau paquet d'ondelettes correspond la base
orthonormale de V3 suivante,
ψ 11 (4τ − k ) , ψ 12,o (2τ − k ) , ψ 3o , 1, o (τ − k ) , ψ 3o , 1, 1 (τ − k ) k∈Z .
{
}
Les transformées en ondelettes discrètes directe et inverse, qui
correspondent au premier exemple de paquet d'ondelettes déjà considéré sont
2.1.4. - Paquets d'ondelettes 59
présentées à la figure 2.2.1.4.
Figure 2.2.1.4. Les transformées en ondelettes discrètes, directe (en haut) et inverse (en bas)
qui correspondent au premier exemple de paquet d'ondelettes.
Le principal avantage des paquets d'ondelettes est qu'il y a plus de liberté
dans le choix de la base de décomposition du signal à traiter. Ayant à la
disposition un nombre plus grand de sous-bandes on peut améliorer la
localisation fréquentielle des composantes du signal à analyser. Il y a des
critères de choix de la base en accord avec le signal à analyser. M. Wikerhauser a
proposé un tel critère. La procédure introduite par ce dernier est appelée le choix de
la meilleure base. Une présentation exhaustive de ce concept est faite en [11]. La
théorie des paquets d'ondelettes est présentée aussi en [42].
2.1.4.1. La sélection de la meilleure base
On peut choisir un sous-ensemble avec des caractéristiques de base, adapté
à un signal particulier ou a un problème particulier. Quand il y a la possibilité de
sélection d'une base pour représenter un certain signal alors on peut chercher la
meilleure base du point de vue d'un certain critère. Ainsi on obtient la base adaptée
au signal considéré. Soit B un ensemble de bases de l'espace de Hilbert séparable
X. On présente une liste de propriétés utiles pour l'ensemble B .
- Le calcul rapide des produits scalaires avec les éléments des bases de B ,
- La bonne localisation temporelle des éléments des bases de B ,
60 Transformées en ondelettes discrètes - 2
- La bonne localisation fréquentielle des éléments des bases de B ,
- L'indépendance des éléments de chaque base.
Pour choisir la meilleure base, il est nécessaire d'apprécier dans quelle
mesure chaque base de B a les propriétés énoncées plus haut.
Avant de pouvoir définir une représentation optimale, il est nécessaire de
pouvoir apprécier le coût d'une certaine représentation. Ce coût est appelé coût
d'information. Etant donnée la séquence u[ k ] on peut définir une fonctionnelle de
coût d'information qui corresponde à la séquence u[ k ] par :
M (u) = ∑ µ 
k∈Z 
 , µ(0 ) = 0


u[k ]
où µ est une fonction réelle définie sur [0, ∞).
Pour chaque élément x ∈ X on définit u[k ] = b k , x , où bk est le k-ieme élément
de la base B de B . Le coût d'information de la représentation de x dans la base B
est M
(
bk , x
). On a définit ainsi la fonctionnelle M sur B :
x
M x : B → R , B → M 

bk , x


On a obtenu ainsi le coût d'information M du x dans la base B. La meilleure base de
B pour le signal x, par rapport au coût d'information M, est la base de B pour
laquelle M 

bk , x
 a la valeur minime.

On présente dans la suite quelques exemples de fonctionnelles de coût
d'information.
Exemple 1. Le nombre d'échantillons au-dessus d'un certain seuil.
On fixe un seuil ε et on compte les éléments de la séquence u[ n] dont la
valeur est supérieure à ce seuil.
 w ,
µ(w) = 
0 ,
w ≥ε
w <ε
Exemple 2. La concentration dans l'espace l p , 0 < p < 2.
µ(w) = w
M (u) =
u
P
P
P
2.1.4.1. - La sélection de la meilleure base 61
Exemple 3. L'entropie.
L'entropie de la séquence u[n] est définie par la relation :
E(u) = ∑ p(k) ⋅ log
k
1
p(k)
ou :
p(k) =
u[k ]
2
u[k ]
2
; p log
1
= 0 si p = 0
p
La fonctionnelle :
l(u) = ∑ u[k ]
2
⋅ log
k
1
u[k ]
2
est une fonctionnelle de coût d'information.
Exemple 4. Le logarithme de l'énergie.
N
M (u) = ∑ log u[k ]
2
k =1
L'ensemble B peut etre nommé "bibliothèque" de bases. Si la bibliothèque
de bases est un arbre de hauteur finie L (il y a L niveaux de décomposition), alors
la meilleure base pour un signal x peut être déterminée en calculant le coût
d'information en chaque nœud de l'arbre et par la comparaison du nœud enfant avec
le nœud parent, en partant de bas en haut.
Ainsi chaque nœud est examiné deux fois, une fois en considérant qu'il est un nœud
enfant et la deuxième fois en le considérant comme un nœud parent. Cet algorithme
de recherche est exemplifié dans les figures qui suivent. Dans la figure 3.2.1.4. ont
été placés des nombres à l'intérieur des nœuds de l'arbre pour spécifier les coûts
d'information. On marque avec un astérisque tous les nœuds qui se trouvent sur le
niveau du bas. Leur coût d'information total est de 36. On essaye de réduire cette
valeur. Chaque fois qu'un nœud parent a un coût d'information inférieur au coût
d'information de ses nœuds enfants, ce nœud parent est marqué avec un astérisque.
Si le nœud parent a un coût d'information supérieur au coût d'information de ses
nœuds enfants, alors ce nœud parent n'est pas marqué, on lui alloue le coût
d'information total de ses nœuds enfants.
62 Transformées en ondelettes discrètes - 2
Figure 3.2.1.4. L'initialisation de l'algorithme de recherche de la meilleure base.
On présente ces coûts d'information transférés (entre parenthèses) à la
figure 4.2.1.4. Le résultat de la recherche de la meilleure base est présenté à la
figure 5.2.1.4. On constate une réduction du coût d'information de la valeur 50 à la
valeur 32.
Figure 4.2.1.4. Le premier pas de l'algorithme de recherche de la meilleure base.
2.1.4.2. - Paquets d'ondelettes de type Malvar 63
*
*
*
*
*
*
*
Figure 5.2.1.4. Le résultat de l'algorithme de recherche de la meilleure base.
Il faut souligner que cette méthode de recherche se réfère seulement aux
bases générées par une certaine ondelette mère. Mais pour une application donnée
et pour un certain signal il y a plusieurs ondelettes meres à utiliser. Donc il y a
également une ondelette mère particulière qui est la meilleure. Pour les applications
de compression cette fonction optimale peut être déterminée en utilisant la méthode
proposée en [43].
2.1.4.2. Paquets d'ondelettes de type Malvar
Une décomposition en formes d'onde de type Malvar du signal x(τ )
associée à la partition de l'intervalle [ 0,T] :
[0, T] = ∪k I k
avec :
I k = [a k , a k +1 ]
est décrite par la relation :
x( τ) =
∑ c m, k ψ m, k (τ)
m, k
où :
64 Transformées en ondelettes discrètes - 2
ψ m , k (τ) = w m ( τ) ⋅ g m, k (τ)
et :
g m , k ( τ) =
avec :
2
⋅ cos
Im
π
Im
1

 k +  (τ − a m )
2

b m (τ) , τ ∈ [a m − r, a m + r ]

w m (τ) =  1 , τ ∈ [a m + r, a m +1 − r ]
b (2 a
τ ∈ [a m +1 − r, a m +1 + r ]
m +1 − τ ) ,
 m +1
où :
π 
 π (τ − a m )  
b m (τ) = sin  1 + sin  ⋅
 
4
2
r

 


Ces fonctions ont été introduites par Malvar, [23], [44], pour diminuer les
distorsions données par les problèmes aux bords, qui se manifestent à la
compression des images, quand on utilise, par blocs, la transformée DCT, comme
transformée orthogonale.
Soit Um une séquence d'opérateurs définis sur L2 [a m − r, a m + r ] , qui
transforme le signal x(τ) dans la suite de fonctions :
b m (τ ) x(τ ) + b m (2 a m − τ ) x(2 a m − τ ) , τ ∈ (a m , a m + r ]
U m {x(τ )} = 
b m (2 a m − τ ) x(τ ) − b m (τ ) x(2 a m − τ ) , τ ∈ [a m − r, a m ]
On peut écrire :
U m {x( τ)} = ∑ d m , k ⋅ ϕ m , k (τ)
k
où :
ϕ m , k (τ) = χ I m (τ) ⋅ g m , k (τ)
Meyer, a été le premier qui a démontré que ces fonctions sont des éléments
d'un paquet d'ondelettes, [45]. Il les a nommés ondelettes de type Malvar.
On a noté par χ Im (τ) la fonction caractéristique de l'intervalle Im, et
U m {x(τ)} représente le produit de la segmentation du signal x(τ) qui correspond à
l'intervalle Im. Dans la suite on considere que le signal x(τ) est définit sur [0, T ] .
Cet intervalle subit le partage suivant :
2.2. - L'utilisation des transformées orthogonales 65
I oo = [0, T ]
I1o = [0, T / 2] ; I11 = [T/ 2, T ]
12
I11
o = [0, T / 4] ; I 0 = [T/ 4, T / 2]
12
I11
1 = [T/ 2, 3T / 4] ; I1 = [3T/ 4, T ]
...
Wikerhauser a démontré que les ondelettes de type Malvar, obtenues pat
l'utilisation de la partition décrite dans la dernière relation se constituent dans un
paquet d'ondelettes. Il a nommé les paquets de ce type des paquets en cosinus ou
paquets de fonctions trigonométriques locaux. En cherchant la meilleure base dans
ce paquet, en utilisant, par exemple, le critère de minimisation de l'entropie, on
obtient l'ensemble {U m {x(τ)}}m∈I . Chaque élément de cet ensemble représente un
segment, qui correspond à un certain intervalle de la partition décrite par la
dernière relation, du signal x(τ) . Chacun de ces éléments représente un signal
quasi stationnaire. Chacun de ces signaux peut être ensuite soumis à la
compression. Les paquets en cosinus diminuent une déficience chronique des
paquets d'ondelettes, il s'agit de la localisation temporelle. Chaque paquet
d'ondelettes correspond à un certain banc de filtres d'analyse, qui réalise un certain
codage en sous-bandes. Il s'agit de filtres invariants en temps. En conséquence la
TPOD ne réalise aucune localisation en temps pour ce banc de filtres. Dans le cas
de la TPCD, dans chaque intervalle Im, on utilise une autre mère des ondelettes,
donc on travaille avec un banc de filtres d'analyse diffèrent, en faisant une
localisation temporelle de ces bancs.
2.2. L'utilisation des transformées orthogonales présentées
pour la compression des données
Dans ce paragraphe nous supposerons qu'on utilise une transformée
orthogonale en ondelettes (la TOD, la TPOD ou la TPCD). Pour le
commencement on justifie pourquoi a été faite cette sélection. A certte fin,
on démontre que ces transformées convergent asymptotiquement vers la
transformée de Karhunen-Loève. En conséquence elles réalisent une
décorrelation importante du signal a traiter.
2.2.1. L'analyse statistique de la TOD
Cette analyse a été déjà présentée dans [6]. On reprend ici les principaux
résultats obtenus. Pour le signal aléatoire stationnaire, les coefficients de la TOD
ont une autocorrélation donnée par :
66 Transformées en ondelettes discrètes - 2
rdm [k, l] =
1
2π
π
∞
∫ ∑
−π p=−∞
{
}(
)
{ }
F rxx (τ) 2m (w + 2pπ) ⋅ e− j w (l−k ) ⋅ F ψ (w + 2pπ)
2
dw
(2.2.1.1)
Si le signal aléatoire x(τ) est un bruit blanc de valeur moyenne nulle et de variance
unitaire alors :
F rxx (τ)
2 m (w + 2pπ ) = 1, (∀) w ∈ R
}(
{
)
Dans ce cas-ci, la relation (2.2.1.1) devient :
rd [k, l] =
m
π
1
2π
∞
∑
∫
F
p = −∞
−π
{ ψ }(w + 2pπ)
2
⋅ e − j w (l−k ) dw
(2.2.1.2)
Dans la suite on calcule la somme de membre droit de cette relation.
1
2π
π
∫ ∑
−π
F
p
{ ψ } ( u + 2pπ )
2
⋅e juk du = δ[k]
(2.2.1.3)
Le membre gauche de la dernière relation représente le k-eme coefficient de la
décomposition en série de Fourier d'une fonction périodique de période 2π. La
relation (2.2.1.3.) montre que cette fonction a seulement un coefficient non nul,
celui d'indice 0 (donc la composante continue). Il en résulte que la fonction
considérée est constante. Parce que pour k=0 la relation (2.2.1.3) devient :
π
∞
∫ ∑
F
− π p = −∞
{ ψ } ( w + 2pπ )
2
du = 2π
il résulte que la valeur de cette constante est 1 . On a démontré ainsi que :
∞
∑
F
p = −∞
{ ψ } ( w + 2pπ )
2
La relation (2.1.1.2) devient :
rd m [k, l] =
En conséquence :
1
2π
π
∫
e − j w (l− k ) dw
−π
rd m [k, l] = δ [k − l]
=1
2.2.1. - L'analyse statistique de la TOD 67
Si x(τ) est un bruit blanc alors tous les signaux d m [n ] sont des bruits blancs à
temps discrèt. Donc par l'application de la TOD à un signal à temps discrèt de type
bruit blanc on obtient des bruits blancs aussi. Evidement les échantillons de ces
signaux ne sont pas corrélés. On passe à la limite pour m tendant vers − ∞ , dans
les deux membres de la relation (2.1.1.1). On obtient :
rd − ∞ [k, l] =
1 π
∫F
2π − π
{r
xx ( τ)
} (0) ⋅ e
− j w (l − k )
⋅
∞
∑
F
p = −∞
{ ψ } ( w + 2 pπ )
2
dw
ou :
rd−∞ [k, l] =
1
F
2π
{r
xx (τ)
}(0) ⋅ ∫
π
−π
e − j w (l−k ) dw = F
{r
xx (τ)
}(0) ⋅ δ [k − l]
(2.2.1.4)
Donc le signal d − ∞ [n ] est un bruit blanc à temps discrèt. Ses échantillons sont en
conséquence non corrélés. On peut donc affirmer que la TOD converge
asymptotiquement vers la transformée de Karhunen-Loève. La preuve donnée plus
haut a été reproduite de [10]. Une analyse similaire pour des paquets d'ondelettes
est présentée en [46]. Voilà pourquoi est recommandée l'utilisation de la TOD à la
compression de données. Le résultat obtenu est illustré à la figure 1.2.2.1. En haut
est présentée la densité de puissance d'un bruit coloré. Celui-ci a été généré en
filtrant un bruit blanc à l'aide d'un médiateur numérique ayant une fenêtre d'analyse
de longueur 20. En bas a été représentée la densité spectrale de puissance du signal
obtenu par l'application de la TOD à ce bruit coloré. On constate qu'après
l'application de la TOD un bruit blanc a été obtenu.
Figure 1.2.2.1. L'effet de blanchissement de la TOD.
En [41] est démontré que pour un certain signal à comprimer, il y a une
certaine ondelette mère qui conduit à la réalisation d'une compression supérieure à
celle obtenue en utilisant la transformée en cosinus discrète. Il s'agit de l'obtention
68 Transformées en ondelettes discrètes - 2
d'un facteur de compression supérieur à des erreurs de reconstruction égales. En
[31] est présentée une méthode de compression à pertes d'information contrôlées.
Cette méthode a les pas suivants :
1. On calcule y[ n] , la TOD du signal à traiter, x[n ] .
2. On réalise la compression par l'élimination des échantillons du signal
obtenu au pas 1 qui sont inférieurs à un seuil imposé. On obtient le signal ŷ[n ] .
3. On calcule la transformée en ondelettes discrète inverse, TODI et on
obtient le signal x̂[n ] .
Le seuil mentionné au pas 2 est imposé en manière adaptative. Il est choisi tel que
l'erreur quadratique moyenne d'approximation du signal x[n ] par le signal x̂[n ] ne
dépasse pas un pour-cent de l'énergie du signal x[n ] .
Sont valables les relations suivantes :
Ex =
E x̂ =
N −1
N −1
k=0
k=0
M −1
M −1
k=0
k=0
∑ x 2 [k ] = ∑ y 2 [k ]
∑ x̂ 2 [k ] = ∑ ŷ 2 [k ]
(2.2.1.5)
(2.2.1.6)
parce que chacune transformée orthogonale conserve l'énergie, [4].
On peut écrire aussi :
 y[n ], si y[n ] > P
ŷ[n ] = 
0 , sinon
Soit o ŷ[n ] la séquence obtenue par la mise en ordre décroissante des échantillons
du signal ŷ[n ] . L'erreur quadratique moyenne d'approximation du signal x[n ] par le
signal x̂[n ] est proportionnelle à :
ε=
N −1
∑ o ŷ 2 [k ]
k=M
La valeur du M est obtenue comme solution de l'équation :
max ε =
M∈Z
Ex
100
Dans la suite on présente un exemple d'application de cette méthode. Sur la
2.2.1. - L'analyse statistique de la TOD 69
figure 2.2.2.1, est présenté un exemple de signal d'entrée, x[n ] (en haut) et le signal
reconstruit correspondent x̂[n ] (en bas). Le nombre d'échantillons utilisés pour la
reconstruction est indiqué. On constate qu'on a obtenu une valeur importante pour
le facteur de compression. Le signal x[n ] a 512 échantillons.
Figure 2.2.2.1. La compression d'un signal rectangulaire.
Le facteur de compression est de 8.
Récemment a été construit un nouveau dictionnaire temps-fréquence de
bases orthonormales ressemblant aux dictionnaires de paquets d'ondelettes, [48].
Ses éléments sont générés à l'aide des transformées Karhunen-Loève localisées.
Dans ce dictionnaire les éléments nécessaires pour la décomposition d'un certain
signal peuvent être trouvés en utilisant l'algorithme de recherche de la meilleure
base déjà présenté. Dans [49] est prouvée la supériorité de la TOD par rapport à la
transformée de Karhunen-Loève pour la compression des signaux qui peuvent être
modélisés par processus aléatoires non-Gaussiens.
Une formule analogue à la relation (2.2.1.1) peut être démontrée pour les
70 Transformées en ondelettes discrètes - 2
signaux sm[n], m=1÷M, aussi. Celle-ci est :
R s m [ k − l] ↔ ∑ F
p
{r }( 2
xx
m
)
(Ω + 2pπ) ⋅ F
{ ϕ } ( Ω + 2pπ )
2
(2.2.1.7)
La démonstration est identique avec celle de la relation (2.2.1.1).
Dans la suite on calcule les moyennes et les variances des signaux
aléatoires sm[n] et dm[n], m=1÷M. Ainsi pour le signal dm[n] :
E { d m [n] } = E { 〈 x(t) , ψ m ,k (t) 〉 } = E {
∞
∫
-∞
x(t) ⋅ ψ ∗m,k (t)dt }
ou, en appliquant le théorème de Fubini :
∞
E{ d m [k] } =
∫
-∞
E { x(t) } ⋅ ψ ∗m ,k (t)dt =
∞
∫
-∞
M n ⋅ ψ ∗m ,k (t)dt
où on a noté avec Mn la moyenne du signal aléatoire x(t).
La dernière relation peut etre écrite :
E { d m [k] } = M n ⋅ F
{ ψ } (0)
∗
m ,k
Mais :
F
{ ψ } (ω ) = 2
m ,k
m
2
⋅ e − jω 2
m
k
⋅F
{ψ }( 2
m
ω )
et en revenant :
m
E{ d m [k] } = M n ⋅ 2 2 ⋅ F
Mais :
F
{ ψ } (0)
(2.2.1.8)
{ ψ } (0) = m (0) ⋅ F { ϕ } (0) = m (0)
1
1
On a démontré dans le chapitre antérieur que :
2
2
H(Ω) + G(Ω) = 2
ou :
h n ↔ H(Ω) et g n ↔ G(Ω)
En utilisant aussi les relations :
(2.2.1.9)
2.2.1. - L'analyse statistique de la TOD 71
∗
h v [n] ↔ 2m 0 (Ω)
∗
g v [n] ↔ 2 m1 (Ω)
nous pourrons écrire :
2 m 0 (Ω) = H ∗ (Ω)
2 m 1 (Ω) = G ∗ (Ω)
La relation (2.2.1.9) sera écrite, pour Ω=0 dans la forme :
2
2
(2.2.1.10)
m 0 ( 0) + m 1 ( 0) = 1
Mais :
m 0 (0) = 1
et en utilisant la relation (2.2.1.10) nous obtiendrons :
m 1 ( 0) = 0 ;
et donc :
∑ g ∗ [p] = 0
(2.2.1.11)
p
F{ψ}(0) = 0
En fin, la relation (2.2.1.8) peut etre écrite :
E{d m [k]} = 0 , m = 1 ÷ M
(2.2.1.12)
On a démontré que tous les signaux aléatoires dm[n] sont de moyenne nulle
pour chaque m.
On calcule dans la suite les variances de ces signaux. En tenant compte du
fait que leur valeur moyenne est nulle, on obtient :
E { d 2m [k] } = R d m [0]
ou, en utilisant la relation (2.2.1.1) :
E {
d 2m [k]
1
}=
2π
∫
F
{ r }( 2
xx
m
u )⋅ F
{ ψ } (u )
2
du
(2.2.1.13)
R
C'est la relation qui exprime les variances des signaux dm[n] à l'aide des densités
spectrales de puissance du signal aléatoire x(t).
72 Transformées en ondelettes discrètes - 2
OBSERVATIONS
O1. Les variances des signaux aléatoires dm[n] peuvent être minimisées par le
choix juste de la fonction ψ(t) (en accord avec la densité spectrale de puissance du
signal aléatoire).
O2. Si x(t) est un bruit blanc de moyenne nulle et de variance σ2 alors :
F{rxx }(ω) = σ 2
et :
E {
σ2
⋅
}=
2π
d 2m [k]
π
=
σ2
⋅
2π − π
∫ ∑
F
(2p +1) π
∑ ∫
p
F
{ ψ } (u )
2
du =
(2p-1) π
{ψ }(
2
du = σ 2
u + 2 pπ )
p
Donc dans le cas où x(t) serait un bruit blanc de moyenne nulle et de variance σ2
alors les signaux aléatoires dm[n] sont aussi de type bruit blanc à temps discrèt de
moyenne nulle et de variance σ2.
O3. Pour m→-∞ la relation (2.1.1.13) devient :
E { d 2−∞ [k] } = F
{ r } (0)
(2.2.1.14)
xx
Cette relation décrit le comportement asymptotique des variances des signaux
aléatoires dm[n].
Dans la suite on détermine les moments d'ordre I et II des signaux
aléatoires sm[n] :
E
{s
}
m [k] = E
{ 〈 x(t) ,
ϕ m,k (t)〉
}= E
 ∞

∗
 ∫ x(t) ⋅ ϕ m,k (t) dt 
 -∞

ou :
∞
E { s m [k] } =
∫
-∞
E { x(t) } ϕ∗m ,k (t) dt =
∞
∫
-∞
M n ⋅ ϕ∗m ,k (t) dt
où avec Mn est notée la moyenne du signal aléatoire x(t).
La dernière relation peut être écrite dans la forme suivante :
2.2.1. - L'analyse statistique de la TOD 73
{ ϕ } (0)
*
E { s m [k] } = M n ⋅ F
m ,k
Parce qu'on peut écrire :
F
{ ϕ } (ω ) = 2
m ,k
m
2
⋅ e − jω2
mk
⋅F
{ϕ }( 2
m
ω )
nous aurons :
m
{ ϕ } (0) = M
E { s m [k] } = M n ⋅ 2 2 ⋅ F
m
(2.2.1.15)
2
n ⋅2
Donc la moyenne des signaux sm[k] s'abaisse avec l'augmentation du m en valeurs
absolues (conformément à la convention faite dans le chapitre antérieur m prends
des valeurs négatives).
Les variances des ces signaux sont :
E { s 2m [k] } = R sm [0] − E 2 { s m [k] }
La valeur de l'autocorrelation en origine est :
R s m [0] =
1
2π
∫
F
{ r }( 2
xx
−m
u )
F
{ ϕ } (u )
2
du
R
et nous obtenons :
E {
s 2m [k]
1
}=
2π
∫
F
{ r }( 2
xx
−m
u )
F
{ ϕ } (u )
2
du − 2 m ⋅ M n
2
R
(2.1.1.16)
Si le signal x(t) est de moyenne nulle alors :
E {
s 2m [k]
1
}=
2π
∫
F
{r }( 2
xx
−m
u )⋅ F
{ ϕ } (u )
2
du
R
(2.1.1.17)
OBSERVATIONS
O1. Les variances des signaux aléatoires sm[n] peuvent être minimisées par le
choix juste de la fonction d'échelle ϕ(t) (en accord avec la densité spectrale de
puissance F{rxx }(ω) ).
74 Transformées en ondelettes discrètes - 2
O2. Si x(t) est un bruit blanc de moyenne nulle et de variance σ2 alors :
F{rxx }(ω) = σ 2
et :
E
{s 2m [k]} =
(2p +1) π
σ2
⋅∑ ∫
F {ϕ}(u )
2π p (2p-1) π
2
σ2 π
du =
∫∑
2π − π p
F
{ ϕ } (u + 2pπ)
2
du = σ 2
Donc dans le cas où x(t) serait un bruit blanc de moyenne nulle et de variance σ2
alors les signaux aléatoires sm[n] sont aussi de type bruit blanc à temps discret de
moyenne nulle et de variance σ2.
O3. Pour m→-∞ la relation (2.2.1.17) deviens :
E{s 2m [k]} = F{rxx }(0)
Cette relation décrit le comportement asymptotique des variances des signaux
aléatoires sm[n].
O4. La condition :
E{x(t)} = 0
préviens la divergence des séquences E{sm[k]} et E{sm2[k]} quand m→-∞.
O5. Si x(t) est un signal aléatoire et stationnaire de moyenne nulle alors les
séquences sm[n] et dm[n] convergent asymptotiquement (pour m→-∞) vers des
signaux aléatoires de type bruit blanc de moyenne nulle et de variance F{rxx }(0) .
Après la propriété de blanchissement, la TOD a aussi la propriété de
Gaussianisation. Cette propriété est illustrée à la figure 3.2.2.1. En haut est
représentée la densité de probabilité d'un signal aléatoire distribué uniformément.
En bas est représentée la densité de probabilité du signal obtenu après le calcul de
la TOD du signal distribué uniformément. On constate que les signaux s et d,
éléments de la transformée calculée, sont des Gaussiens.
2.2.2. - L'analyse statistique de la TPOD 75
Figure 3.2.2.1. L'effet de Gaussianisation de la TOD.
2.2.2. L'analyse statistique de la TPOD
L'analyse statistique faite dans le paragraphe antérieur s'est basée sur les
propriétés mathématiques spécifiques à la theorie des ondelettes. L'analyse
statistique qui suit a, à la base, la théorie du codage en sous-bandes. On considère
au commencement les cellules de base d'un système de codage en sous-bandes,
représentées à la figure 1.2.2.2.
s m−1
h
2
sm
s m−1
g
2
dm
Figure 1.2.2.2. Les deux cellules de base pour la construction d'un codeur en sous-bandes.
A l'aide du filtre h sont générés les coefficients de type s et à l'aide du filtre g les
coefficients de type d.
Les relations entrée - sortie pour les deux systèmes sont :
s m [n ] =
∞
∑ h[k ] ⋅ s m−1 [2n − k ],
k = −∞
d m [n ] =
∞
∑ g[k ] ⋅ s m−1 [2n − k ]
k = −∞
(2.2.2.1)
On calcule les autocorrelations statistiques des signaux de sortie, en considérant les
signaux d'entrée stationnaires (propriété démontrée dans le paragraphe antérieur.
76 Transformées en ondelettes discrètes - 2
Pour le système représenté à gauche on peut écrire :
s rm
{s
[k ] ⋅ s m [l] }
=
s m −1 [2k − p] ⋅ h [p] ⋅
∑
[k − l] = E

=E 

∞
∑
( 2.2.2.1)
m
p = −∞
∞
q = −∞

s m −1 [2l − q ] ⋅ h[q ] 

∑ h[p] ⋅ h[q] ⋅ E { s [2k − p] ⋅ s [2l − q] }
∞
=
m −1
m −1
p ,q = −∞
Mais la valeur moyenne du membre droit représente juste l'autocorrélation
statistique du signal d'entrée, motif pour lequel la dernière relation peut être écrite
dans la forme :
s rm
[k − l] = ∑ h[p]⋅ h[q]⋅s rm−1 [ 2(k − l) −(p − q )
∞
p ,q = −∞
]
(2.2.2.2)
une relation similaire peut etre écrite pour le système représenté à droite, à la figure
2.2.2.1. :
d rm
[k − l] = ∑ g[p]⋅ g[q]⋅s rm−1 [ 2(k − l) − (p − q )
∞
p,q = −∞
]
(2.2.2.3)
ou tenant compte de la relation antérieure :
d rm
[k − l] =
∑ g[p1 ] ⋅ g[q1 ] ⋅ h[p 2 ] ⋅ g[q 2 ]⋅s rm−2 [
∞
p1 , p 2 .q1 ,q 2 = −∞
2 2 (k − l ) − 2(p1 − q 1 ) − (p 2 − q 2 )
]
(2.2.2.4)
Comme cela a déjà été montré le calcul de la TPOD est basé sur un schéma de la
forme:
2.2.2. - L'analyse statistique de la TPOD 77
h
s
g
d
g
h
ss
g
h
sd
ds
dd
Figure 2.2.2.2. Schéma de calcul de la TPOD. Les premières deux itérations.
En utilisant comme modèle la relation (2.2.2.4) on peut écrire l'expression de
l'autocorrelation statistique du signal obtenu après "a" filtrages passe-haut et "b"
filtrages passe-bas :
( dd...d )a ( ss...s ) b
[
r[k − l] =
⋅(ss...s ) b −1 r 2
a +1


p1 ,q1 ,p 2 ,q 2 ,..., p a ,q a ,p α ,q α = −∞ 

∞
∑
 a
 Π
 k =1

( g[p
]⋅ g[q k ] )⋅ h (p α ) ⋅ h (q α ) ⋅

k

(k − l) − 2 (p1 − q1 ) − ... − 2(p a − q a ) − (p α − q α ) ] }
a
(2.2.2.5)
On a obtenu la dépendance de l'autocorrélation statistique du signal obtenu après
"a" filtrages passe-haut et "b" filtrage passe-bas de l' autocorrélation statistique du
signal obtenu après "b-1" filtrages passe-haut. Mais cette autocorrélation
statistique a été calculée dans le paragraphe antérieur, rs b −1 [k −l ] . C'est le motif pour
lequel on peut utiliser les résultats de l'analyse asymptotique déjà faite pour
l'analyse asymptotique de la TPOD. Pour la transformée décrite dans la relation
(2.2.2.5) le nombre d'itérations est : − m = a + b . Ce nombre tend vers infini si b
tends vers infini. Dans la suite on calcule la limite du membre gauche de la relation
(2.2.2.5) quand b tends vers infini. Cette limite dépendra de la limite de l'
autocorrélation statistique du membre droit. Mais celle-ci peut être calculée en
utilisant l'analyse asymptotique effectuée dans le paragraphe antérieur. On peut
écrire :
[
]
lim s rb −1 2 a +1 (k − l ) − 2 a (p1 − q 1 ) − ... − 2(p a − q a ) − (p α − q α ) =
b →∞
F{rxx }(0) ⋅ δ
[2
a +1
(k − l) − 2 a (p1 − q1 ) − ... − 2(p a − q a ) − (p α − q α )
]
78 Transformées en ondelettes discrètes - 2
ou, tenant compte de la stationnarité du signal aléatoire avec la fonction d'
autocorrélation statistique s r∞ [k − l] et des propriétés de l'impulsion unitaire :
(
)
2
a

lim(dd...d)a (ss...s)b r[k − l] = (
 Π g[pk ] ⋅ h[pα ]  ) ⋅ F{rxx }(0) ⋅ δ[k − l]
∑
b→∞
p1 ,p2 ,...,pa ,pα =−∞ k=1

∞
(2.2.2.6)
Donc le signal (dd...d )a (ss...s ) b obtenu après a filtrage passe-haut et b filtrage
passe-bas est un bruit blanc à temps discrèt quand b tends vers l’ infini. Voilà
pourquoi on peut affirmer que la TPOD se comporte asymptotiquement comme la
TOD en convergeant vers la transformée de Karhunen-Loève. Les analyses
asymptotiques des signaux de la forme : (dd...d ) b (ss...s ) a , (ss...s ) b (dd...d ) a ou
(sdsd...sd ) b (dsds...ds ) a
conduisent vers le même résultat.
Dans la suite on calcule la moyenne et la variance du signal aléatoire
(dd...d ) a (ss...s ) b .
Sa moyenne est donnée par la relation :
{
 ∞
=
M
E
 ∑ g [p1 ]⋅ (dd...d )
(dd...d ) a (ss...s ) b
p1 = −∞
= (dd...d ) a −1 (ss...s ) b M ⋅
∞
∑ g[p1 ] = 0
a −1
(ss...s ) b [
2 n − p1
] }  =

(2.2.2.7)
p1 = −∞
parce que la somme des coefficients de la réponse impulsionelle du filtre passehaut, g, est nulle. Donc la moyenne du signal aléatoire considéré est nulle.
Dans la suite on détermine sa variance :
2.2.2. - L'analyse statistique de la TPOD 79
[]
2
(dd...d ) a (ss...s ) b σ = (dd...d ) a (ss...s ) b r 0 =
=
 a

 Π (g[p k ]⋅ g[q k ]) ⋅ h (p α ) ⋅ h (q α ) ⋅
=
k
1
p1 ,q1 , p 2 ,q 2 ,..., p a ,q a , p α ,q α = −∞ 

∞
∑
[
] }=
⋅(ss...s ) b −1 r − 2 a (p1 − q1 ) − ... − 2(p a − q a ) − (p α − q α )
(
∞
∑
=
p1 , p 2 ,..., p a , p α = −∞
+
 a
 Π g[p k ]
 k =1
)
2

h (p α ) ⋅s σ 2b −1 +

 a

 Π (g[p k ]⋅ g[q k ]) ⋅ h (p α ) ⋅ h (q α ) ⋅
p1 ,q1 , p1 ≠ q1 , p 2 ,q 2 , p 2 ≠ q 2 ,..., p a ,q a , p a ≠ q a p α ,q α , p α ≠ q α = −∞  k =1

s rb −1
∞
∑
[ −2 (p
a
1
− q1 ) − ... − 2(p a − q a ) − (p α − q α )
]
ou :
2
2
(dd...d ) a (ss...s ) b σ = s σ b −1 (
+
 a

 Π (g[p k ]) ⋅ h (p α )
∑
=
k
1
p1 , p 2 ,..., p a , p α = −∞ 

∞
2
+
 a

 Π (g[p k ]⋅ g[q k ]) ⋅ h (p α ) ⋅ h (q α ) ⋅
p1 ,q1 , p1 ≠ q1 , p 2 ,q 2 , p 2 ≠ q 2 ,..., p a ,q a , p a ≠ q a p α ,q α , p α ≠ q α = −∞  k =1

s ρ b −1
∞
∑
[ −2 (p
a
1
− q1 ) − ... − 2(p a − q a ) − (p α − q α )
(2.2.2.8)
])
où on a noté avec ρ le coefficient d' autocorrélation :
s ρ b −1
(x ) =
( )
s rb −1 x
2
s σ b −1
Les formules (2.2.2.7) et (2.2.2.8) sont très importantes parce qu'elles peuvent être
utilisées, comme cela a été montré en [50], pour la quantification optimale (nonuniforme) du signal qui a subit la transformation en ondelettes. L'avantage par
rapport aux formules établies dans le paragraphe antérieur (pour le cas particulier
de la TOD) réside dans leur forme recourante. Asymptotiquement :
(dd...d ) a (ss...s ) ∞ M = 0
et :
 a

σ
=
 Π (g[p k ]) ⋅ h (p α ) 
∑
(dd...d ) a (ss...s ) ∞
p1 , p 2 ,..., p a , p α = −∞  k =1

2
∞
2
⋅ F{rxx }(0)
80 Transformées en ondelettes discrètes - 2
formule qui donne la variance du bruit blanc vers lequel converge la séquence des
variances des coefficients de la TPOD quand le nombre d'itérations de celle-ci
tends vers infini. En conséquence si le nombre d'itérations de la TPOD est
suffisament grand alors à chaque nouvelle itération de celle-ci on obtient des
nouveaux coefficients qui représentent les échantillons d'un bruit blanc de moyenne
nulle et de variance donnée par la dernière relation. En conséquence la
quantification optimale de ces coefficients peut être réalisée en utilisant cette
valeur pour leur variance. Dans la figure 3.2.2.2 est illustrée la propriété de
blanchissement de la TPOD. En haut est présentée la densité spectrale de puissance
du signal d'entrée. Celui-ci est un bruit coloré, obtenu par le filtrage passe-bande
d'un bruit blanc. En bas est présenté la densité spectrale de puissance du signal
obtenu après le calcul de la TPOD du signal dont la densité spectrale de puissance
est présentée en haut.
Figure 3.2.2.2. L'effet de blanchissement de la TPOD.
On constate que la densité spectrale de puissance représentée en bas a une
enveloppe presque constante, comme est la densité spectrale de puissance d'un
bruit blanc.
2.2.3. L'analyse statistique de la TPCD
La transformée en paquets de cosinus discrète, TPCD, est une combinaison
entre la transformée en cosinus discrète (TCD) et la théorie des paquets
d'ondelettes. Dans le cas de cette transformée, on réalise une segmentation du
support du signal à analyser (considéré de longueur N) en blocs de longueur
dépendante du numéro d'ordre de l'itération courante. Pour l'itération numéro m ces
2.2.3. - L'analyse statistique de la TPCD 81
blocs ont la longueur 2 − m N. Le signal contenu dans chaque tel bloc est transformé
en utilisant la TCD. La procédure de segmentation et de calcul de la TCD est
illustrée à la figure 1.2.2.3.
c0
c1
Premiere iteration
c2
Deuxieme iteration
c11
c12
c 21
c 22
.
.
.
Figure 1.2.2.3. La procédure de calcul de la TPCD.
Le résultat de calcul de la TPCD est obtenu par le choix d'un nombre total de N
coefficients, d'un ou plusieurs blocs de coefficients spécifiques pour une ou
plusieurs itérations. Ce choix est fait par "la recherche de la meilleure base". Par
exemple un résultat possible pour la TPCD, présentée à la figure 1.2.2.3. est la
séquence de coefficients {c1 , c 21 , c 22 } . Un autre résultat possible est la séquence
{c 0 } . L'analyse asymptotique de la TPCD est basée sur le fait que pour N tendant
vers l’ infini la TCD converge vers la transformée de Karhunen-Loève, [48]. Si N
tends vers l’ infini alors le nombre d'échantillons de chaque séquence de
coefficients de la TCD correspondante à un certain segment à une certaine itération
tends vers l’ infini et donc les coefficients TCD de la séquence correspondante
convergent vers la transformée de Karhunen-Loève. Parceque chaque séquence de
coefficients obtenus après l'application de la TCD converge asymptotiquement vers
la transformée de Karhunen-Loève on peut affirmer que la TPCD converge
asymptotiquement vers la transformée de Karhunen-Loève. L'effet de
blanchissement de la TPCD est illustré à la figure 2.2.2.3. En haut est présentée la
densité spectrale de puissance d'un bruit coloré, obtenu par le filtrage avec un filtre
de moyenne d'un bruit blanc et en bas est présentée la densité spectrale de
puissance du signal obtenu après le calcul de la TPCD du signal avec la densité
spectrale de puissance représentée en haut. On constate que l'enveloppe de la
densité spectrale de puissance représentée en bas est une bonne approximation pour
une constante. On peut donc affirmer que le signal dont la densité spectrale de
puissance est représentée en bas est une bonne approximation pour un bruit blanc.
En conséquence, la propriété de blanchissement de la TPCD a été mise en
évidence. En faisant une analyse comparative des figures 1.2.2.1, 3.2.2.2 et 2.2.2.3.
82 Transformées en ondelettes discrètes - 2
on constate que, de point de vue de la vitesse de convergence vers un bruit blanc, la
TPCD a le meilleur comportement. Elle est suivie, dans ce classement par la TOD.
La plus lente convergence est enregistrée pour la TPOD.
Figure 2.2.2.3. L'effet de blanchissement de la TPCD.
Donc chacune des trois transformées, basées sur le ondelettes, la TOD, la
TPOD ou la TPCD, peuvent être utilisée comme transformée orthogonale dans un
schéma de compression de données, parce que ces trois transformées convergent
asymptotiquement vers la transformée de Karhunen-Loève. Tenant compte du
critère de la vitesse de convergence, la meilleure, semble être la TPCD. Cette
transformée a aussi l'avantage de la localisation temporelle des filtres d'analyse,
dans les intervalles Im. De plus, elle est aussi très appropriée pour le traitement du
signal de parole, tenant compte de son modèle sinusoïdal. Cette affirmation est
justifiée dans la suite.
2.3. La sélection de la meilleure ondelette mère
L'un des paramètres d'une transformée orthogonale en ondelettes est la
mère des ondelettes utilisée. L'autre paramètre est le nombre d'itérations. Comme
cela a été déjà montré,il est mieux que ce nombre soit le plus grand possible (ainsi
le régime asymptotique est touché). Quand il s'agit de la TPCD le nombre
d'itérations peut être choisi par des considérations différentes aussi. Dans les
applications de compression la sélection de la mère des ondelettes doit être faite en
fonction de la nature du signal à traiter, ainsi que la maximisation du facteur de
compression à une distorsion imposée, sera faite. La maximisation du facteur de
compression est réalisée par la minimisation du nombre de coefficients de valeur
superieure à un certain seuil. La valeur du seuil dépend du niveau de distorsions
accepté à la reconstruction. Le nombre de coefficients supérieurs au seuil est
2.3. - La sélection de la meilleure ondelette mère 83
inversément proportionnel au facteur de compression. Pour différents choix de
l'ondelette mère on obtient des nombres différents de coefficients supérieurs au
seuil. Cette affirmation peut être démontrée en utilisant la méthode de compression
décrite au paragraphe 2.2.1. A la figure 1.2.3 est présenté le signal qui sera
comprimé. A la figure 2.2.3 est présenté le résultat de la compression suivie par la
reconstruction du signal de la figure 1.2.3. quand, pour le calcul de la TOD, on a
choisit l'ondelette mère de type Dau 4 (voir [15]).
A la figure 3.2.3 est
présenté le résultat de la reconstruction après la compression pour le cas de
l'utilisation de l'ondelette mère Dau 20. En comparant les figures 2.2.3. et 3.2.3. on
constate que dans les deux expériences la puissance de la distorsion ne dépasse pas
1% de la puissance du signal de la figure 1.2.3. Mais le résultat de l’
experimentation décrit à la figure 2.2.3. est supérieur, du point de vue du facteur
de compression. En conséquence une procédure de sélection de la meilleure base
est demandée.
Figure 1.2.3. Le signal à traiter.
Figure 2.2.3. Le résultat des opérations de compression et reconstruction quand pour le
calcul de la TOD a été utilisée l'ondelette mère Dau 4.
84 Transformées en ondelettes discrètes - 2
Figure 3.2.3. Le résultat des opérations de compression et de reconstruction quand pour le
calcul de la TOD a été utilisée l'ondelette mère Dau 20.
Une telle procédure de sélection est décrite en [43]. Elle est basée sur la
segmentation du signal à traiter. Celui-ci est aproximé par polynômes, sur des
segments, par le développement en série de Taylor. Le dégré de chaque polynôme
est fixé tel que l'erreur d'approximation sur le segment correspondant ne dépasse
pas une valeur imposée. Elle se base sur la segmentation du signal à traiter. Celuici est aproximé par des polynômes, sur des segments, par le développement en
série de Taylor. Le dégré de chaque polynôme est fixé tel que l'erreur
d'approximation sur le segment correspondant ne dépasse pas une valeur imposée.
Pour le traitement de chaque segment est choisie une ondelette mère avec un
nombre de moments nuls égal au dégré du polynôme d'approximation sur le
segment respectif. Le premier segment considéré a une longueur égale avec la
durée du signal. S'il n'y a aucun polynôme approximant pour ce segment (le signal
entier ne peut pas être aproximé dans une manière satisfaisante par un polynôme de
dégré inférieur ou égal avec le nombre maximal de moments nuls d'une ondelette
mère disponible) alors le segment sera divisé en deux parties de même longueur et
on essaye l'approximation par polynômes pour chaque moitié. Cette procédure est
répétée jusqu'à la segmentation du signal entier. En fonction des degrés des
polynômes d’ approximation sont choisies, pour chaque segment, les ondelettes
mères utilisées pour le calcul de la TOD sur le segment considéré. Ainsi, sur
chaque segment, on utilise un banc de filtres diffèrent, pour le calcul de la TOD.
On a obtenu donc un banc de filtres variants en temps, qui s'adapte au signal à
traiter, en faisant une certaine localisation temporelle de ses paramètres. Ainsi peut
être améliorée aussi la déficience chronique de la transformée en paquets
d'ondelettes.
2.3. - La sélection de la meilleure ondelette mère 85
Dans le cas de la TPCD il n'y a pas de différences majeures entre les
différentes ondelettes mères qui peuvent etre utilisées. Les seules différences sont
générées par les formules de différentes fenêtres, w ( t ) , qui peuvent être utilisées.
Dans la suite on présente une modalité de sélection de la meilleure
ondelette mère pour le cas du signal de parole. Chaque proposition dite est une
séquence de tons qui ont différentes intensités, fréquences et durées. Chaque ton est
un signal sinusoïdal avec une amplitude, une fréquence et une durée spécifiques.
C'est le modèle sinusoïdal de la parole. Une description mathématique pour ce
modèle est :
x (t ) =
Q (t )
∑ A q cos θ q (t )
(2.3.1)
q =1
[51], où les composantes sont appelées des partiels. Chaque terme de cette somme
est un signal à double modulation. Donc il ne s'agit pas de signaux stationnaires.
Mais la parole est regardée fréquemment comme une succession de signaux
stationnaires. En partageant le signal de parole dans une succession de segments,
chacun ayant une durée inférieure à 25 ms, on obtient une séquence de signaux
stationnaires. Sur chaque segment le modèle de la parole peut être de la forme :
Q
x s (t ) = ∑ A q cos ωq t
(2.3.2)
q =1
Cette décomposition ressemble beaucoup à la décomposition du signal x s (t )
dans un paquet de cosinus.
La décomposition du même signal, en utilisant une base d'ondelettes est de la
forme :
K
L
x s (t ) = ∑ ∑ x s (t ), ψ k ,l (t ) ψ k ,l (t )
(2.3.3)
k =1 l =1
où ψ k ,l (t ) sont les ondelettes générées par l'ondelette mère ψ(t ) . Le facteur de
compression obtenu en utilisant une ondelette mère spécifiée est plus grand si le
nombre de coefficients :
d k ,l = x s (t ), ψ k ,l (t )
(2.3.4)
non nuls, de cette décomposition, N ψ , est plus petit. Mais :
d k ,l =
∞
∫ x s (t ) ⋅ ψ k , l (t )
−∞
*
dt = rx
s,
ψ k ,l
(0)
(2.3.5)
86 Transformées en ondelettes discrètes - 2
où le membre droit représente la valeur de l'intercorrelation des signaux x s (t ) et
ψ k ,l (t ) , calculée à l’ origine. C'est la valeur maximale de cette fonction.
L'intercorrelation mesure le dégré de ressemblance entre les deux signaux. Donc la
valeur du coefficient d k ,l est plus grande si les signaux x s (t ) et ψ k ,l (t ) sont plus
ressemblants. En utilisant la relation (2.3.2) on peut affirmer que les ondelettes les
plus ressemblantes au signal x s (t ) sont les éléments d'un paquet en cosinus. Mais,
si l'ensemble {ψ k ,l (t )}k∈Z,l∈Z est une base orthonormale alors l'énergie du signal
x s (t ) peut être calculée en utilisant la relation :
K L
E x = ∑∑
k =1 l =1
2
d k ,l
(2.3.6)
Parce que l'énergie du signal x s (t ) est une constante indépendante de l'ondelette
mère sélectionnée, on peut affirmer que le nombre N ψ est inférieur si la magnitude
des coefficients d k ,l non nuls est plus grande. Voilà pourquoi pour la
compression du signal de parole la meilleure transformée en ondelettes
discrète est la TPCD. Bien sûr cette conclusion est valable si le modèle sinusoïdal
de la parole est satisfait. Dans la suite on analyse les modalités d'optimisation de la
compression de la parole basée sur l'utilisation de la TPCD par la sélection de la
meilleure fonctionnelle de coût utilisée dans l'algorithme de choix de la meilleure
base. La TPCD est une transformée adaptative. Le résultat de son utilisation dans
une certaine application peut être optimisé en utilisant la procédure de recherche de
la meilleure base. C'est une procédure très efficace, qui peut augmenter beaucoup
la qualité d'une certaine méthode de traitement des signaux. Comme cela a été déjà
montré il y a plusieurs fonctionnelles de coût dont la minimisation peut conduire à
la sélection de la meilleure base. Celle utilisée le plus souvent est l'entropie des
coefficients d k ,l . Mais la minimisation de cette fonctionnelle ne conduit pas à la
maximisation du facteur de compression. La fonctionnelle de coût, dont la
minimisation conduit à la minimisation des nombres de coefficients, N s ,
supérieurs à un certain seuil de valeur t, (qui fixe la puissance de la distorsion
de reconstruction). En effet, en utilisant cette fonctionnelle de coût, pour la
sélection de la meilleure base (le meilleur paquet en cosinus) on obtient un certain
nombre N ψ , de coefficients de la TPCD non nuls (dont N s sont supérieurs au
seuil t).
A la sortie du détecteur de seuil, DP, de la figure 2.1.1, on obtient N s
coefficients non nuls. Mais celui-ci est un nombre minime, parce qu’ il a été
minimisé par la procédure de choix de la meilleure base. Voilà pourquoi cette
fonctionnelle de coût conduit à la maximisation du facteur de compression.
2.3. - La sélection de la meilleure ondelette mère 87
En augmentant la valeur du seuil t, le nombre N s s'abaisse et la valeur du
facteur de compression augmente. Malheureusement la valeur du rapport signal à
bruit à la sortie du système de reconstruction, rsz 0 , s'abaisse quand t augmente.
Donc l'augmentation du seuil t doit être contrôlée pour assurer la transparence de la
compression. C'est le motif pour le quel le détecteur de seuil DP, doit etre un
système adaptatif. Un autre paramètre de la TPCD qui peut être considéré pour
l'optimisation de la compression est le nombre d'itérations.
Donc la transformée en ondelettes recommandée pour la compression
de la parole est la TPCD (si le modèle sinusoïdal de la parole est valable).
Le choix d'un certain nombre d'itérations de celle-ci peut être utilisé pour la
maximisation du facteur de compression.
Chapitre 3. Le détecteur de seuil
L'un de plus importants blocs de la structure du système de compression de
la figure 1.1.2.1, qui représente le fil rouge de notre exposé, est le détecteur de
seuil. Le rôle de celui-ci est d'éliminer tous les coefficients de la transformée en
ondelettes discrète inférieurs à une certaine valeur. C'est en fait le mécanisme qui
réalise la compression. Ce bloc a dans la structure proposée une structure
adaptative.
3.1. La détection adaptative de seuil
En analysant le système de la figure 1.1.2.1 on peut constater que la
distorsion due à la compression a la valeur moyenne quadratique :

D=E 

( x[n ] − x̂[n ] )
2



(3.1.1)
Parce que la TPC et son inverse la TPCI sont des transformées orthogonales, la
dernière relation devient :
2 


D = E  y[n ] − u[n ]

(3.1.2)


(
)
La valeur du seuil, t, doit être choisie telle que la condition suivante sera satisfaite :
D < α ⋅ Ex
α <1
(3.1.3)
où E x représente l'énergie du signal d'entrée x[n ] . On démontre la proposition
suivante :
Proposition 3.1.1.
Une borne supérieure de la distorsion du signal reconstruit, obtenue après la
compression adaptative basée sur la TPC est N ⋅ t 2 ou N représente le nombre
d'échantillons du signal à traiter et t est la valeur du seuil.
Preuve.
L'erreur moyenne quadratique d'approximation du signal y[n ] par le signal z[n ]
3.1. - La détection adaptative de seuil 89
est :

ε1 = E 

( y[n ] − z[n ] )
2
 K 2
 = ∑ y [n k ]
 k =1
(3.1.4)
où n k représentent les positions des échantillons du signal y[n ] qui ont le module
inférieur à la valeur du seuil, t. On considère qu'il y a K tels échantillons. Soit o[n ]
le signal obtenu après la mise en ordre croissante des échantillons du signal y[n ] .
L'erreur quadratique moyenne devient :
ε1 =
K
∑ o 2 [k ] ≤ K ⋅ t 2
(3.1.5)
k =1
On considère que le bloc Cu de la figure 1.1.2.1 réalise une quantification
uniforme avec un pas de quantification de valeur t. Si on réalise une quantification
non-uniforme on obtient de meilleurs résultats. L'erreur quadratique moyenne est :
N
(
ε 2 = ∑ z[n ] − u[n ]
n =1
)
2
Pour chaque échantillon de la séquence o[k ],
(3.1.6)
k = 1, K , on introduit un
échantillon nul dans la séquence u[n ] . Pour les autres échantillons du signal z[n ] ,
la différence z[n ] − u[n ] est inférieure à la valeur t. C'est le motif pour lequel on
peut écrire :
ε2 ≤
N
∑
k = K +1
t 2 = (N − K ) ⋅ t 2
(3.1.7)
Parce que la distorsion définie à la relation (3.1.2) peut être écrite dans la forme :
D = ε1 + ε 2
(3.1.8)
tenant compte des relations (3.1.5) et (3.1.7) on peut affirmer que la proposition a
été démontrée.
Donc pour garder la distorsion sous la valeur α ⋅ E x , il est suffisant de
choisir la valeur de seuil :
α ⋅ Ex
(3.1.9)
t=
N
90 Le détecteur de seuil - 3
La constante α peut être exprimée à l'aide du rapport signal à bruit des signaux
u[n ] et x̂[n ] (qui ont la même énergie), rsz0 . On peut écrire :
rsz 0 = 10 ⋅ log10
Ex
≥ −10 ⋅ log10 α
D
(3.1.10)
Ainsi on a établi une borne inférieure du rapport signal à bruit, qui dépend de α :
β = −10 ⋅ log10 α
(3.1.11)
Prenant le signe égal dans la relation (3.1.10) on peut obtenir une borne inférieure
pour la constante α :
α m = 10
−
β
10
(3.1.12)
En utilisant cette valeur et la relation (3.1.10) on peut obtenir une borne inférieure
pour le seuil t :
t m = 10
−
β
10
⋅
Ex
N
(3.1.13)
Donc en choisissant pour le seuil une valeur t plus grande que t m on obtient une
valeur du rapport signal à bruit, à la sortie, superieure à β . Malheureusement la
valeur exacte du rsz 0 ne serait pas connue apriori parce qu’en général on n’utilise
pas des quantifications uniformes. Si on utilise une quantification non-uniforme on
obtient de meilleurs résultats. C'est le motif pour lequel un algorithme adaptatif
pour la sélection du seuil sera recommandé. Cet algorithme peut utiliser la valeur
t m pour initialisation. La valeur de seuil est augmentée en partant de cette
valeur. A chaque itération on calcule rsz 0 . Si cette valeur est supérieure à β ,
le processus d'augmentation de la valeur de seuil est continué. L'algorithme
prends fin quand pour la première fois la valeur rsz 0 deviens inférieur à β .
Le détecteur de seuil est un système non-lineaire qui est décrit par la relation entrée
- sortie suivante :
 y[n ] ,
y[n ] > t ,

z[n ] = 
(3.1.14)
y[n ] ≤ t
 0,
Dans la suite on présente une analyse statistique pour ce système.
3.2. - L'analyse statistique du détecteur de seuil 91
3.2. L'analyse statistique du détecteur de seuil
Soit X la variable aléatoire qui se trouve à l'entrée du détecteur de seuil et Y
la variable aléatoire obtenue à la sortie. On considérera que X est une variable
aléatoire Gaussienne de moyenne nulle. On étudie la robustesse de ce système. A
cette fin, on calcule la variance de la variable aléatoire de sortie. Si celle-ci est
inférieure à la variance de la variable aléatoire d'entrée alors on peut déclarer que le
système est robuste, [52]. En conséquence l’intégralité du système de compression,
de la figure 2.1.1., serait robuste. La relation entrée - sortie de la relation (3.1.14) a
la représentation graphique de la figure 1.3.2.
y
t
x
-t
0
-t
t
Figure 1.3.2. La relation entrée - sortie pour le détecteur de seuil.
La relation de liaison entre les fonctions de répartition des variables
aléatoires X et Y est :
FX (y ), y ∈ (-∞,-t )
 F (− t ), y ∈ [-t ,0)

FY (y ) =  X
(3.1.15)
 FX (t ), y ∈ [0, t )
 FX (y ), y ∈ [ t , ∞)
En dérivant cette fonction on obtient la liaison entre les densités de
probabilité des signaux d'entrée et de sortie, présentée à la figure 3.2.2. Pour
la moyenne de la variable aléatoire Y on obtient :
mY = 0
(3.1.16)
En calculant la variance de Y on obtient :
t
σ 2Y = σ 2X − 2 ∫ y 2 p X (y )dy
0
(3.1.17)
92 Le détecteur de seuil - 3
où σ 2X représente la variance du X. En conséquence :
σ 2Y ≤ σ 2X
(3.1.18)
Donc le détecteur de seuil est un système robuste. Voilà pourquoi la méthode de
compression proposée dans ce travail est également robuste. C'est l'un des
avantages de la compression basée sur l'utilisation de la théorie des ondelettes par
rapport à d’autres méthodes de compression.
p Y (y )
p X (y )
(FX (t) − FX (−t))δ( y)
-t
0
t
y
Figure 2.3.2. La densité de probabilité de la variable aléatoire Y.
Chapitre 4. Le système de quantification pour la
compression de la parole
Un autre bloc très important de la structure d'un système de compression
est le quantificateur. Sur l'opération de quantification on a beaucoup écrit. Les
principales techniques de quantification connues sont présentées en [50], en
utilisant intensivement les références [58], [59]. Un résultat remarquable, obtenu en
[50], est constitué par la généralisation du théorème de quantification de Widrow.
Ce résultat a été présenté en [60]. Le système de quantification doit étre conçu en
accord avec l'application qu'il dessert. Pour la compression de la parole, il est
important que la structure du quantificateur s'adapte aux particularités de ce type de
signal. Celles-ci sont mises en évidence par le modèle psycho-acoustique de la
parole. Dans la suite on fait une présentation succincte de ce modèle.
4.1. Propriétés psycho-acoustiques du signal de parole
La plus importante propriété psycho-acoustique du signal de parole, du
point de vue de la compression, est le phénomène de masquage.
4.1.1. Le phénomène de masquage
Il y a deux types de masquage d'un son par un autre son. On parle du
masquage fréquentiel si les deux sons sont produits simultanément et du masquage
temporel si les deux sons sont produits successivement. Dans la suite on fait des
commentaires seulement sur le masquage fréquentiel parce qu'il est difficile de
tenir compte, dans la structure d'un système de compression, du masquage
temporel.
Soit une sinusoïde de fréquence f 1 et d'amplitude A 1 . L'oreille ne saisit
pas le signal sonore décrit par cette sinusoïde dans une ambiance de silence totale
si la puissance de cette sinusoïde est inférieure au seuil d'audition absolu, S a (f ) .
L'aire d'audition est l'aire d'une surface qui s'étend au-dessus du seuil d'audition
entre 20 Hz et 20 kHz respectivement entre 0 et 90 dB.
Dans la suite on considère le cas où 2 sinusoïdes ont été émises, la
première, celle qui masque, ayant la fréquence f 1 et la puissance P1 et la
deuxième, celle qui est masqué, ayant la fréquence f 2 et la puissance P2 . On
mesure pour toutes les valeurs possibles de la fréquence f 2 de la bande audio, la
puissance P2 pour la quelle la deuxième sinusoïde est à la limite d'audibilité. La
fonction P2 (f 2 ) est appelée courbe de masquage. Les courbes de masquage d'une
94 Le système de quantification pour la compression de la parole - 4
sinusoïde par une autre sinusoïde ne sont pas les seules courbes psycho-acoustiques
intéressantes. Pour l'opération de quantification il sera accepté un bruit de
quantification dans une certaine bande de fréquences si celui-ci n'est pas
audible. Donc il est intéressant d'examiner le cas où le signal masqué est un bruit
de bande étroite. De plus, parce qu'un signal de parole peut être considéré comme
étant composé par un certain nombre de signaux purs (composantes tonales), qui
peuvent être modélisés par des sinusoïdes et par un autre nombre de signaux qui ne
sont pas purs (composantes non-tonales), qui peuvent être modélisés par des bruits
de bande étroite, il est nécessaire d'analyser les quatre cas suivants : le masquage
d'une sinusoïde par une sinusoïde, le masquage d'une sinusoïde par un bruit de
bande étroite, le masquage d'un bruit de bande étroite par une sinusoïde et le
masquage d'un bruit de bande étroite par un autre bruit de bande étroite. Un bruit
de bande étroite est caractérisé par trois paramètres : la fréquence centrale, la
largeur de bande et la puissance. Toutes ces courbes ont la même allure, une forme
triangulaire. Elles dépendent des paramètres f 1 et P1 . Toutes les courbes de
masquage ont le maximum à la fréquence f 1 . La puissance P2 à la fréquence f 1
est un peu plus petite que la puissance P1 .
La différence P2 (f 2 = f1 ) − P1 est appelée indice de masquage. Les pentes des
courbes de masquage sont plus grandes vers les bases fréquences et plus petites
vers les hautes fréquences. Ces pentes dependent de la fréquence f 1 du signal
masquant. Elles sont plus petites quand cette fréquence est plus grande.
Si la fréquence est mesurée en utilisant une nouvelle unité de mesure,
appelée Bark et si les puissances sont mesurées en dB, on peut démonter que ces
courbes de masquage peuvent être modélisées à l'aide de segments de droite (dans
une certaine bande de fréquences autour de la fréquence f 1 ) et que les pentes de
ces droites ne dépendent pas de f 1 . La relation entre une fréquence exprimée en
Hz, dans l'intervalle [20, 20000] et une fréquence exprimée en Barks, dans
l'intervalle [1, 24] est :
 f
f



f Bark = 13 ⋅ arctg 0,76 ⋅ Hertz  + 3,5 ⋅ arctg  Hertz 
1000
7500




2



(4.1)
Les courbes de masquage restent dépendantes de P1 . La pente vers les hautes
fréquences est plus petite si la puissance P1 est plus grande. La fonction de
masquage définie par le modèle psycho-acoustique numéro 1 du standard MPEG
Audio prends en compte l'influence de la puissance P1 du signal masquant. Les
fonctions de masquage sont définies par les relations suivantes :
4.1.2. - Des bandes critiques 95
17(f1 − f 2 + 1) − (0,4 ⋅ P1 + 6 ), − 3 ≤ f1 − f 2 < −1


(0,4 ⋅ P1 + 6)(f1 − f 2 ),
− 1 ≤ f1 − f 2 < 0

v(f1 − f 2 , P1 ) = 
0 ≤ f1 − f 2 < 1
 − 17 ⋅ (f1 − f 2 ),
− (f1 − f 2 − 1)(17 − 0,15 ⋅ P1 ) − 17,
1 ≤ f1 − f 2 < 8
(4.2)
où les fréquences sont mesurées en Barks et P1 et v en dB.
La courbe de masquage, exprimée en dB, a pour expression :
P2 (f 2 , f1 , P1 ) = P1 (f1 ) + a (f1 ) + v(f1 − f 2 , P1 (f1 ))
(4.3)
où l'indice de masquage a (f1 ) est donné par :
a t (f1 ) = −1,525 − 0,275 ⋅ f1 − 4,5
(4.4)
si le son masquant est tonal ou par :
a n (f1 ) = −1,525 − 0,175 ⋅ f1 − 0,5
(4.5)
si le son masquant est non-tonal (bruit de bande étroite).
En utilisant les courbes de masquage on peut éliminer les composantes
masquées dans le spectre du signal de parole. Ainsi on réalise une compression
transparente du signal de parole.
4.1.2. Des bandes critiques
La deuxième caractéristique du modèle psycho-acoustique est basée sur
l'hypothèse que l'oreille humaine se comporte comme un banc de filtres, en
réalisant une partition irrégulière de l'axe des fréquences. La bande audible est
divisée en 24 bandes appelées des BANDES CRITIQUES.
Soit une sinusoïde
de fréquence f 1 . Si sa puissance, P1 , vérifie :
P1 ≥ Sa (f1 )
(4.6)
alors cette sinusoïde est audible. Soit une deuxième sinusoïde de fréquence voisine
et de puissance P1 . Les deux sinusoïdes sont audibles si :
2 ⋅ P1 ≥ Sa (f1 )
(4.7)
Soient N sinusoïdes de fréquences f1 , f1 + df ,..., f1 + (N − 1)df et de puissance P1 .
96 Le système de quantification pour la compression de la parole - 4
L'ensemble de ces sinusoïdes est audible si :
N ⋅ P1 ≥ Sa (f1 )
(4.8)
Cette condition est satisfaite si la largeur de bande ∆f = N ⋅ df est inférieure à un
seuil, nommé largeur de bande critique, au voisinage de f 1 . Voilà comment
peuvent être définies les bandes critiques, le sujet de ce paragraphe. L'échelle
fréquentielle, mesurée en Barks, corresponde au nombre d'ordre de chaque bande
critique. Dans le tableau suivant on présente un choix possible des bandes critiques.
Numéro
d'ordre
(1)
1
2
3
4
5
6
7
8
9
10
11
12
Fréquence
inférieure
(2)
20
100
200
300
400
510
630
770
920
1080
1270
1480
Fréquence
supérieure
(3)
100
200
300
400
510
630
770
920
1080
1270
1480
1720
Largeur
de bande
(4)
80
100
100
100
110
120
140
150
160
190
210
240
(1)
(2)
(3)
(4)
13
14
15
16
17
18
19
20
21
22
23
24
1720
2000
2320
2700
3150
3700
4400
5300
6400
7700
9500
12000
2000
2320
2700
3150
3700
4400
5300
6400
7700
9500
12000
15500
280
320
380
450
550
700
900
1100
1300
1800
2500
3500
Tableau 1. Des bandes critiques.
Dans ce tableau les bandes critiques sont choisies artificiellement, l'oreille
pouvant créer une bande critique autour de n'importe quelle fréquence. Si on définit
une nouvelle échelle fréquentielle en associant à chaque fréquence centrale de ce
tableau le numéro d'ordre de la bande critique correspondante, on retrouve l'échelle
fréquentielle mesurée en Barks définie antérieurement.
4.1.2.1. Le seuil de masquage
A l'aide du modèle précèdent on détermine dans la suite la courbe de
masquage globale puis le seuil de masquage issu de l'ensemble des courbes
calculées en partant de toutes les composantes spectrales d'un signal de parole.
Chaque bruit de quantification dont la puissance est inférieure au seuil de
masquage sera inaudible. La quantification du signal de parole avec cette
propriété sera transparente. Le principe est simple mais la mise en œuvre est
difficile.
4.1.2.1. - Le seuil de masquage 97
La première opération est l'estimation de la densité spectrale d'énergie du
signal de parole x[n ] , Px (Ω ) . Celle-ci peut être estimée à l'aide des représentations
temps-fréquence où en utilisant la méthode basée sur le spectre du modèle autorégresif associé. Par l'échantillonnage en fréquence de cette fonction on obtient la
fonction Px [k ] . Cette fonction est normalisée tel que :
max{Px [k ]} = 96dB
(4.9)
k
Pour calculer le seuil de masquage il faut ajouter des nouvelles hypothèses au
modèle psycho-acoustique de l'audition de la parole. On supposera que chaque
composante de la densité spectrale de puissance Px [k ] contribue indépendamment
au seuil de masquage et qu'il est suffisant de sommer ces contributions. Cette
hypothèse est rationnelle à l'intérieur d'une bande critique mais rien ne justifie sa
généralisation au spectre entier du signal de parole.
Du fait que le modèle de masquage soit diffèrent si le signal masquant est
tonal ou non-tonal, il est nécessaire de réaliser cette distinction pour toutes les
composantes Px [k ] . En conformité avec le modèle psycho-acoustique MPEG
Audio numéro 1, une composante spectrale est considérée tonale si les trois
conditions suivantes sont vérifiées :
Px [k ] > Px [k − 1]
Px [k ] ≥ Px [k + 1]
Px [k ] − Px [k + j] ≥ 7dB
(4.10)
avec j dans les ensembles :
j ∈ {− 2,2}
j ∈ {− 3,−2,2,3}
pour
2 < k < 63
pour
63 ≤ k < 127
j ∈ {− 6,...,−2,2,...,6} pour 127 ≤ k ≤ 250
(4.11)
Le domaine de variation est de plus en plus large pour j, ceci est dû au fait que la
résolution fréquentielle de l'oreille est meilleure dans les basses fréquences.
A la puissance de chaque composante Px [k ] , classifiée comme tonale, les
puissances de deux composantes voisines sont ajoutés, on utilise la formule
suivante:
Px (k )
Px ( k +1)
 Px (k −1)

fe 

10
10

+ 10
+ 10 10 
P1  f1 = k  = 10 ⋅ lg 10


N



(4.12)
98 Le système de quantification pour la compression de la parole - 4
où N représente le nombre de composantes de Px [k ] et f e la fréquence
d'échantillonnage du signal de parole.
Pour les composantes classifiées comme non-tonales, on calcule dans
chaque bande critique, leurs puissances et on applique une formule equivalente à la
relation (4.12). Toutes les composantes, tonales ou pas, qui ont une puissance
inférieure au seuil d'audibilité absolu peuvent être éliminés. Si deux composantes
tonales sont à une distance inférieure à 0,5 Barks alors celle de puissance inférieure
peut être éliminée. Apres ce traitement on obtient N t composantes tonales et N n
composantes non-tonales, avec N t ≤ 24 et N n ≤ 24 . Le but de cette réduction de
nombre de composantes est la limitation de la complexité de traitement qui suit. Le
seuil de masquage S m (f 2 ) est calculé en sommant la contribution à la fréquence f 2
des N t composants tonals et des N n composantes non-tonales :
 Sa (f 2 ) N t P2 (f 2 ,f1 ,P1 ) N n P2 (f 2 ,f1 ,P1 ) 
S m (f 2 ) = 10 ⋅ lg10 10 + ∑10 10
+ ∑10 10 


k =1
k =1


(4.13)
où P2 est calculé en utilisant la relation (4.3). Dans cette relation les fréquences
sont calculées en Barks et on a considéré que l'influence d'un son masquant ne se
manifeste que dans une plage [f1 − 3, f1 + 8] en Barks. Ces fréquences doivent bien
sûr être obtenues après une discrétisation. Cette discrétisation est décrite dans le
cadre du standard MPEG Audio à l'aide de la relation suivante :
[ ]
[ ]
[
[
[
]
]

⇒ i ∈ 0, 48
 f 2 ∈ 0, 3 kHz


⇒ i ∈ 49, 72
 f 2 ∈ 3, 6 kHz

f 2 ∈ 6, 15,6 kHz ⇒ i ∈ 73, 108


[
]
(4.14)
]
A l'aide du seuil de masquage on peut calculer dans chaque bande critique le
rapport signal à masque :
RSM =
Ps
Sm
(4.15)
où Ps représente la puissance du signal de la bande respective et S m le seuil de
masquage de la même bande.
4.1.2.1.- L'utilisation du seuil de masquage à la compression du signal de parole 99
4.1.2.2. L'utilisation du seuil de masquage à la compression
du signal de parole
Le rapport signal à masque peut être utilisé pour la quantification du signal
de parole. Du fait de la quantification, le nombre de bits alloué à chaque
échantillon de ce signal diminue, on réalise donc une compression. La
quantification doit être réalisée telle que la puissance du bruit de quantification
soit, en chaque bande critique, inférieure au seuil de masquage. Si cette condition
est satisfaite alors la quantification est transparente. En supposant qu'en chaque
bande critique du signal de parole on fait une quantification entropique, la
puissance du bruit de quantification, conformément à [50], est :
Pz =
1 h (S ) − 2 b
⋅2 ⋅2
12
(4.16)
où h (S) représente l'entropie différentielle du signal S, S est le signal d'entrée du
système de quantification correspondant à la bande critique considérée, et b
représente le nombre de bits utilisés pour la description du signal de la sortie de ce
système de quantification. En posant la condition que cette puissance soit inférieure
au seuil de masquage on obtient :
1 2⋅h (S ) −2 b
⋅2
⋅ 2 < Sm
12
ou :
2 2b
2 2 h (S )
> 12
Sm
(4.17)
Si à la place de la quantification entropique on réalise une quantification uniforme
alors :
2 2⋅h (S ) = Ps
[61], et la relation (4.17) deviens :
2 2b >
1
⋅ RSM
12
(4.18)
La dernière relation (aussi comme la relation (4.17)) permet la sélection du
nombre de bits b, pour lequel la quantification du signal de parole dans la bande
critique considérée soit transparente.
100 Le système de quantification pour la compression de la parole - 4
4.2. La quantification adaptative dans le domaine de la TPC
Dans le paragraphe destiné à l'étude du détecteur de seuil on a considéré
pour la démonstration de la proposition, qui représente le principal résultat de ce
paragraphe, qu'on utilisait une quantification uniforme. On pourrait obtenir des
meilleurs résultats si on utilisait une quantification non-uniforme. Celle-ci peut se
baser sur l'utilisation du modèle psycho-acoustique, comme cela a déjà été montré
dans le paragraphe précèdent. La principale déficience d'une telle méthode est
qu'elle nécessite un volume de calcul important, le calcul du seuil de masquage
étant une opération laborieuse. Dans la suite on présente une solution très simple
pour la réalisation d'une quantification non-uniforme. La séquence obtenue (signal
y[n]) à la sortie du bloc TO de la figure 1.1.2.1 représente le spectre d'amplitudes
instantané du bloc courant du signal de parole, on obtient ce spectre car on a choisit
comme transformée orthogonale la TPC. C'est le motif pour lequel on peut réaliser
une quantification perceptive, basée sur une approximation du modèle psychoacoustique du signal de parole. Le support du signal z[n ] , obtenu à la sortie du bloc
DP, de la figure 2.1.1. est divisé en 32 intervalles, où sont définis les blocs de
k = 1,32 , de même longueur. Ceux-ci correspondent aux bandes
signal z k [n ],
critiques du modèle psycho-acoustique de la parole. Pour chaque bande, le bloc DP
a éliminé toutes les composantes spectrales dont le module est inférieur à un
certain seuil: t.
Cette valeur est une approximation de la valeur du seuil de masquage.
Comme cela a déjà été montré dans le paragraphe dédié à l'étude du détecteur de
seuil, la valeur t est choisie d'une manière adaptative, en utilisant un algorithme de
maximisation du rapport signal à bruit pour le signal reconstruit. On réalise la
quantification uniforme de chaque bloc. Dans ce but on détecte les plus grandes
valeurs des signaux z[n ] et z k [n ] , z M et z kM . Pour chaque bloc il est alloué un
certain nombre de bits. Cette procédure est basée sur les valeurs z kM . Pour chaque
valeur z M il est alloué 6 bits ( 2 6 niveaux de quantification).
Pour les valeurs zkM il est alloué :
 z
γ k =   kM ⋅ 2 6
  z M


 
(4.19)
niveaux de quantification, où [[ ]] symbolise la fonction partie entière. Ainsi un
nombre de b k = [[log 2 (γ k + 1)]] bits sont alloués pour chaque échantillon du bloc
avec l'indice k. La quantification de ce bloc est réalisée en utilisant la
transformation :
4.2. - La quantification adaptative dans le domaine de la TPC 101

z k [n ]
u k [n ] =  
⋅ γk
  z kM + 0.01


 
(4.20)
Ainsi on réalise une normalisation de niveau dans chaque bloc. La dénormalisation correspondante sera réalisée dans le cadre de la phase de
reconstruction avant le calcul de la TPCI. Cette opération est réalisée par le bloc D
de la figure 2.1.1. Le grand avantage de la procédure de quantification proposée est
dû à la propriété de décorrélation de la TPC. Grâce à cette propriété de nombreuses
valeurs z kM sont nulles. Les valeurs correspondantes γ k et b k sont nulles. C'est le
[]
motif pour lequel le nombre total de bits alloués aux échantillons du signal u n ,
N b , est très petit en comparaison avec le nombre de bits du signal x[n ] . Cette
procédure de quantification a un petit désavantage aussi. Pour la transmission ou
pour l'enregistrement de chaque bloc du signal u[n ] , u k [n ] , il faut ajouter aux
"coordonnées" de chaque échantillon quelques valeurs supplémentaires, les valeurs
z kM . En utilisant ces valeurs et la relation (3.46) les nombres γ k peuvent être
calculés pendant la phase de reconstruction. A l'aide des paramètres z kM et γ k on
peut réaliser "les opérations inverses" des relations décrites par la relation (4.2).
Parce que le nombre de bits demandé pour la représentation des valeurs z kM est
très petit par rapport à N b , le facteur de compression global n'est pas affecté par la
nécessité d'ajouter les valeurs supplémentaires pour chaque bloc, u k [n ] . La valeur
du facteur de compression réalisé par le système de la figure 2.1.1. peut être
calculée en utilisant la relation :
16 ⋅ N
fc =
(4.21)
Nc + Np + B
où on a supposé que chaque échantillon du signal d'entrée est codé sur 16 bits, N p
représente le nombre de bits nécessaire pour le codage des positions des
échantillons du signal u[n ] et B représente le nombre de bits demandé pour le
codage des paramètres. Les nombres N c et B peuvent être calculés en utilisant les
relations suivantes:
32
N c = ∑ N(k ) ⋅ b k
k =1
(4.22)
où N(k ) représente le nombre d'échantillons non nuls du bloc indexé par k :
32
B = ∑ bk
k =1
(4.23)
102 Le système de quantification pour la compression de la parole - 4
On calcule le nombre N p avec la relation suivante:
32
N p = ∑ N(k ) ⋅ ζ k
k =1
(4.24)
où ζ k représente le nombre de bits nécessaire pour la représentation de la position
de chaque échantillon de valeur non nulle appartenant au bloc indexé par k. Parce
que dans chaque bloc il y a un nombre maximal de 32 telles positions et que les
valeurs ζ k sont inférieures à 5. C'est le motif pour lequel une borne supérieure
pour N p est :
32
5 ⋅ ∑ N(k ) = 32 ⋅ N n
k =1
(4.25)
4.3. Les autres blocs du système de compression
L'utilisation du codeur Co de la figure 1.1.2.1 conduit à l'augmentation du
facteur de compression sans affecter le niveau de la distorsion de reconstruction,
parce que ce système réalise une compression sans pertes. La construction de ce
système fait appel à l'une des techniques classiques de codage comme par exemple
le codage de Huffman ou le codage arithmétique, [55], [2]. L'utilisation de tels
systèmes pour la compression des signaux audio est expérimentée en [62]. Des
résultats et des conclusions pour l'utilisation de tels blocs dans le schéma de
compression sont présentés dans la même référence.
Le signal v[n ] de la sortie du codeur représente le résultat de la procédure
de compression. C'est le signal enregistré ou transmis. Les deux autres blocs du
système de la figure 1.1.2.1 sont utilisés dans la phase de reconstruction. Le bloc D
réalise le décodage du signal v[n ] . A la sortie de ce bloc on obtient les signaux
u k [n ] et la séquence z kM , k = 1,32 . En utilisant la relation (4.19) on calcule les
valeurs γ k . Puis on réalise la dé-normalisation :
w k [n ] =
u k [n ]
⋅ z kM
γ k + 0.01
(4.26)
Par la réunion des composantes w k [n ] on obtient le signal w [n ] . Le dernier bloc
de la figure 1.1.2.1 fait le calcul de la TPCI. Le résultat est le signal x̂[n ] . Celui-ci
représente le résultat de la procédure de reconstruction. En utilisant ce signal on
peut calculer la distorsion D. Toutes les opérations déjà décrites sont répétées, pour
différentes valeurs du seuil, t, pour la maximisation de la valeur du facteur de
compression global, f c , sous la contrainte que rsz 0 soit supérieur à β .
Chapitre 5. La compression de la musique
Toutes les méthodes de compression déjà présentées sont dépendantes du
type de données à comprimer. Pour différents types de données il faut utiliser
différentes méthodes de compression. Voilà pourquoi dans la suite il sera présentés
différents types de méthodes de compression en accord avec le type spécifique de
données à comprimer. On a déjà vu que pour les textes ou pour les logiciels il faut
utiliser des méthodes de compression sans pertes. Dans la suite on étudiera les
méthodes de compression des données obtenues par l’échantillonnage de différents
signaux analogiques comme la musique, la parole ou les images. Ce sont des
signaux redondants. On peut donc utiliser des méthodes de compression à pertes.
Le premier système de compression d’un signal musical a été le système NICAM
(Nearly Instantaneously Companded Audio Multiplex) à 384 kbit/s par voie promu
par la BBC. Deux systèmes ont, ensuite, été mis en compétition par le groupe de
travail ISO/MPEG, le codeur MUSICAM (Masking Pattern Adapted Universal
Subband Integrated Coding and Multiplexing) et ASPEC (Adaptive Spectral
Perceptual Entropy Coding). Le premier a été sélectionné, une partie du deuxième
a été intégrée dans la troisième couche de MPEG Audio. Le codeur MUSICAM a
été normalisé par le groupe ISO/MPEG en 1990.
5.1. Le codeur MUSICAM
C’est un codeur en sous-bandes avec quantification scalaire des
échantillons et allocation optimale de bits dans chaque sous-bande. Le diagramme
fonctionnel est donné à la figure 1.5.1. La première couche du codeur assure un
codage transparent à 192 kbit/s avec une complexité de traitement réduite. La
deuxième couche assure toujours un codage transparent à 128 kbit/s mais au pris
d’une complexité plus importante. La troisième couche, à 64 kbit/s n’assure pas la
transparence. Il y a une dissymétrie très forte entre l’émetteur (un studio
professionnel) et le récepteur (un poste de radio ou de télévision grand public). La
transmission n’est pas full-duplex.
104 La compression de la musique 5
Figure 1.5.1. Schéma de principe du codeur Musicam.
Le banc de filtres d’analyse est composé de 32 filtres décomposant
régulièrement l’axe des fréquences. Chaque filtre est une version modulée (pseudoQMF) d’un filtre passe-bas comportant 512 coefficients. Dans chacune des sousbandes, les signaux sont sous-échantillonnés par 32, ce qui correspond au souséchantillonnage critique, puis 12 échantillons sont regroupés, ce qui permet
d’obtenir un facteur d’echelle commun, puis codés, ce qui correspond
à 12 ⋅ 32 = 384 échantillons, s[n]. L’allocation dynamique de bits est réalisée en
fonction d’un seuil de masquage calculé en parallele à partir d’une estimation
spectrale calculée à partir de 512 échantillons du signal originel (fenêtre de 16 ms
si la fréquence d’échantillonnage est de 32 kHz). Au récepteur, les opérations
inverses de décodage, sur-échantillonnage et filtrage sont réalisées. Le banc de
filtres de synthèse est identique au banc de filtres d’analyse (à un coefficient près).
Le banc de filtres d’analyse et de synthèse sont décrits en [61]. Le modèle
d’audition et le calcul du seuil de masquage utilisé pour l’allocation de bits et pour
la quantification sont présentés dans [62] et [63].
Le signal s[n] est décomposé en M (dans notre exemple M=32) sous-bandes.
2
Appelons σ Y ( j) la puissance du signal dans la sous-bande j. Pour que le codage
soit transparent, il suffit que la puissance du bruit de quantification σ Q2 ( j) soit
inférieure, dans chacune des sous-bandes, au seuil de masquage S m ( j) . Mais la
5.1. Le codeur MUSICAM 105
liaison entre la puissance du bruit de quantification, la puissance du signal et le
nombre de bits b( j) utilisés pour la quantification scalaire du signal dans la sousbande j est:
σ Q2 ( j) = c ⋅ σ 2Y ( j) ⋅ 2 −2 b ( j)
(5.1)
où c est une constante.
On obtient la condition:
c ⋅ σ 2Y ( j) ⋅ 2 −2 b ( j) < Sm ( j)
soit:
2 2 b ( j) > c ⋅
σ 2Y
Sm ( j)
(5.2)
Voilà le critère d’allocation des bits pour la quantification des signaux de chaque
sous-bande. Si les ressources binaires disponibles ne sont pas suffisantes pour
respecter cette condition dans toutes les sous-bandes, l’allocation optimale des bits,
minimisant la puissance du bruit de quantification:
σQ2 =
c M σ 2Y ( j) − 2 b ( j)
⋅∑
⋅2
M j=1 Sm ( j)
(5.3)
est donnée par:
σ 2 ( j) / S ( j)
1
b( j) = b + ⋅ log 2 Y 2 m
2
α
(5.4)
où:
1
 M σ 2 ( j)  M
α = ∏ Y 
 j=1 S m ( j) 
2
La quantification des signaux dans les 32 sous-bandes a lieu tous les 12 ⋅ 32 = 384
échantillons. On détermine d’abord un facteur d’echelle dans chacune des sousbandes en sélectionnant, dans un tableau contenant 64 valeurs, la valeur
immédiatement supérieure à la valeur maximale de 12 échantillons de la sousbande. On transmet l’index, codé sur 6 bits, uniquement si l’allocation de bits dans
la sous-bande est non nulle. Les 12 échantillons sont ensuite normalisés par le
facteur d’échelle puis quantifiés par un simple quantificateur scalaire uniforme sur
106 La compression de la musique 5
un certain nombre de bits donné par la procédure d’allocation déjà décrite. Cette
procédure peut allouer 0, 2, 3, ..., 15 bits à chacune des sous-bandes. La première
fois que l’on alloue 2 bits à une quelconque sous-bande, on doit coder le facteur
d’echelle (6 bits), l’allocation des bits (4 bits) et les 12 échantillons correspondant
soit ( 2 ⋅ 12 bits). Ensuite, il suffit de prendre en compte l’augmentation du nombre
de bits et de multiplier par le nombre d’échantillons. Ainsi, si on décide d’allouer
des bits à une sous-bande, l’augmentation du nombre de bits utilisés sera de 30 bits
la première fois, de 12 par la suite.
On ne doit pas consommer plus de bits que ceux qui sont disponibles dans
une trame. Ce nombre se calcule simplement en retranchant au nombre total de bits
disponibles (32 ⋅12 ⋅ debit / f e ) d’abord les 32 bits du “header” où sont codés la
fréquence d’échantillonnage, le numéro de la couche, le débit binaire sélectionné,
ensuite 16 bits utilisés par un code cyclique correcteur d’erreurs, enfin des bits
d’information auxiliaire...
5.2.
Le codeur MP-3
MP-3 est l’extension des fichiers codés en utilisant le standard MPEG
audio couche 3. La couche 3 est l’une de trois méthodes de compression (couche 1,
couche 2 et couche 3) des signaux audio. La couche 3 utilise une méthode
perceptuelle de codage pour rejeter toute information redondante (plus spécifique
les parties redondantes d’un signal audio qui ne sont pas perçues par l’oreille).
Cette méthode utilise une transformée en cosinus discrète modifiée qui implemente
un banc de filtres.
Le résultat est la transparence de la compression des signaux de musique
stéréo d’un CD à un facteur de compression de 12 (le débit à l’entrée est de 1411,2
kbit/s et le débit à la sortie est de 112-128 kbit/s).
En 1987, IIS a commencé à travailler au codage perceptuel dans le cadre du
programme Eureka, le projet EU 147, Digital Audio Broadcasting (DAB).
L’algorithme créé a été normalisé comme ISO-MPEG Audio Layer-3 (IS 11172-3
et IS 13818-3). Sans compression, les signaux numériques audio sont des
représentations des signaux audio analogiques à 16 bit/échantillon. La fréquence
d’échantillonnage est de 44,1 kHz pour les CD. Donc on a plus de 1.400 Mbit pour
représenter une seule seconde de musique stéréo à la qualité d’un CD. En utilisant
Le codeur MP3 107
le codage audio MPEG on peut obtenir un facteur de compression de 12 sans
perdre la qualité du signal. Des facteurs de compression de 24 ou plus conduisent
aux reconstructions (après la compression) qui sont meilleur que les
reconstructions réalisées dans les cas où seulement la fréquence d’échantillonnage
ou la résolution ont été réduites. On peut réaliser ça par codage perceptuel. Celui-ci
est basé sur un modèle de perception de l’oreille. En utilisant le codage MPEG
audio, on peut obtenir un facteur de compression de: 4 par la couche 1 (384 kbits/s
pour un signal stéréo), 6 à 8 par la couche 2 (256 à 192 kbits/s), 10 à 12 par la
couche 3 (128 à 112 kbits/s).
La qualité sonore assurée par MP-3 peut être appréciée à l’aide du tableau
suivant:
Qualité sonore
Téléphonique
Meilleure que celle des
transmissions radio à ondes
courtes
Meilleure que les signaux
radio modulés en amplitude
Similaire aux signaux radio
modulés en fréquence
Presque CD
CD
bande de
fréquences
2,5 kHz
mono
débit
kbit/s
8
facteur de
compression
96
4,5 kHz
mono
16
24
7,5 kHz
mono
32
24
11 kHz
stéréo
56-64
26-24
15 kHz
> 15 kHz
stéréo
stéréo
96
112-128
16
14-12
Mode
Tableau 1.5.2. Exemples des performances du codeur MP-3.
Le diagramme fonctionnel du codeur MP-3 est donnée à la figure 1.5.2.
108 La compression de la musique 5
Signal d’entrée
Banc de
filtres
Modèle
perceptuel
Boucles d’iteration
Codage
stereo
Multiplexeur
Signal
codé
MP-3
Facteurs
d’echelle
Contrôle
debitdistorsion
Quantification
Codage
sans bruit
Figure 1.5.2. Schéma de principe du codeur MP-3.
Le banc de filtres utilisé dans MPEG couche 3 est hybride. On utilise un
banc de filtres polyphasés et une transformée en cosinus discrète modifiée. Cette
forme hybride a été choisie pour la compatibilité avec les prédécesseurs, les
couches 1 et 2. Le modèle perceptuel est le facteur déterminant pour la qualité
d’un codeur. Celui-ci peut utiliser un banc de filtres propre ou peut combiner le
calcul des énergies (pour le calcul du seuil de masquage) avec le banc de filtres
principal (déjà décrit). A la sortie du modèle perceptuel on obtient le seuil de
Le codeur MP3 109
masquage ou la puissance de bruit pour la partition du chaque codeur. Si le bruit de
quantification est tenu sous le seuil de masquage alors la compression est
transparente. Le codage stéréo exploite le fait que les deux voies d’une paire stéréo
contiennent des informations très proches. Ces redondances peuvent être utilisées
pour la réduction du débit. Le système de codage stéréo est utilisé quand on a à sa
disposition seulement des versions comprimées mais on désire des signaux stéréo.
Pour la quantification et pour le codage on utilise un système basé sur deux boucles
d’itération. La quantification est réalisée à l’aide d’un quantificateur basé sur une
loi de puissance. Ainsi les valeurs grandes sont quantifiées avec une précision
réduite en générant une certaine structure pour le bruit de quantification. Les
valeurs de la sortie du quantificateur sont codées en utilisant un codage de
Huffman. C’est le codage sans bruit. Le processus de recherche d’un gain optimal
et des facteurs d’echelle optimaux pour un certain block, débit et sortie du modèle
perceptuel, est réalisé à l’aide de deux boucles d’itération analyse-synthése.
La boucle intérieure (pour le débit).
Les tableaux de code de Huffman assignent des mots de code plus courts
aux caractères avec fréquence d’apparition plus grande, qui sont les valeurs de la
sortie du système de quantification les plus petites. Si le nombre de bits qui résulte
de l’opération de codage dépasse le nombre de bits disponibles pour un certain bloc
de données, celui-ci peut être corrigé par la modification du gain globale en
obtenant un pas de quantification plus grand et en conséquence des valeurs
quantifiées plus petites. Cette opération est répétée pour différents pas de
quantification jusqu’á ce que le nombre de bits demandé par le codage de Huffman
soit suffisamment petit. Ainsi on fixe le débit.
La boucle extérieure (pour le contrôle de la distorsion).
Pour former le bruit de quantification en accord avec le seuil de masquage,
on utilise les facteurs d’échelle. Le système est initialisé avec la valeur 1 du facteur
d’echelle dans chaque bande de fréquence (spécifiée par le modèle perceptuel). Si
le bruit de quantification dans une bande donnée dépasse le seuil de masquage, le
facteur d’échelle pour cette bande est modifié pour réduire le bruit de
quantification. Parce que la réduction du bruit de quantification demande
l’augmentation du nombre de niveaux de quantification et donc l’augmentation du
débit, la boucle intérieure doit être répétée chaque fois qu'on utilise un facteur
d’échelle nouveau. Donc la boucle intérieure est inclue dans la boucle extérieure.
Celle-ci est exécutée seulement quand la puissance du bruit courante (calculée par
la différence entre les valeurs spectrales originales et les valeurs spectrales
obtenues après la quantification) est sous le seuil de masquage pour chaque bande
critique.
110 La compression de la musique 5
5.2.1. L’avenir du codeur MP-3
Un nouveau codeur appelé MPEG-2 Advanced Audio Coding (AAC) a été
déclaré standard international par le groupe MPEG à la fin du mois avril en 1997.
On peut trouver des renseignements sur ce standard à l’adresse
http://www.iis.fhg.de/amm/techinf/aac/index.html.
Le plus récent codeur audio de MPEG est le codeur MPEG-4. On peut
trouver des renseignements sur ce codeur à l’adresse Internet:
http://www.iis.fhg.de/amm/techinf/mpeg4/index.html.
Ce codeur fait appel à la théorie des représentations temps-fréquence. Celle-ci est
très bien présentée en [11] et [64].
Une autre possibilité pour la réalisation des codeurs plus performants est
l’utilisation de la théorie des ondelettes, présentée en [25] et [13]. Quelques
systèmes de compression basés sur la théorie des ondelettes sont présentés en
[65]...[70].
5.2.2. La compression de la musique à l’aide des paquets en
cosinus
Le schéma de la figure 1.1.2.1 a été utilisée pour la compression de la
musique [62]. Le signal à traiter a été lu d’un CD (donc il était échantillonné en
utilisant une fréquence d’échantillonnage de 44100 Hz, chaque échantillon étant
représenté sur 16 bits) et a été segmenté en blocs de 2048 échantillons. On a utilisé
une transformée en paquets de cosinus discrète. La meilleure base a été choisie en
utilisant la fonctionnelle de coût représentée par le nombre des coefficients de la
transformée, supérieurs à un certain seuil. Le nombre de niveaux de décomposition
a été limite à 5. Pour la sélection du seuil de compression on a utilisé la formule
(3.1.13). On a utilisé une quantification uniforme sur 6 bits. A la sortie on a utilisé
un codage entropique.
Pour un morceau de musique de 3,58 s, on a obtenu un facteur moyen de
compression de 16,504 et un rapport moyen signal à distorsion de reconstruction de
23,77 dB. Le temps de calcul et le volume de mémoire occupé sont convenables.
Ces performances nous donnent le droit d’affirmer que cette méthode de
compression est très prometteuse.
5.3. La compression de la parole 111
5.3.
La compression de la parole
Le signal de parole est un signal très complexe possédant de nombreuses
caractéristiques. On peut trouver beaucoup sur le traitement du signal de parole en
[51]. Dans cette ouvrage on utilise beaucoup de méthodes de traitement du signal.
Celles-ci sont présentées dans les livres classiques de traitement du signal comme
[71]...[74]. Dans un but de compression, il est utile de souligner d’abord que ce
signal n’est évidemment pas stationnaire mais qu’il peut être considéré comme
localement stationnaire pendant des durées de l’ordre de quelques dizaines de ms.
En codage de la parole il est tout à fait standard de choisir des fenêtres dites
d’analyse de 20 ms. On distingue ensuite différents types de sons: des sons voisés,
des sons non-voisés, des plosives. La compression des sons voisés et des sons nonvoisés peut être réalisée dans de bonnes conditions. Il n’en est pas de même, par
contre, pour les plosives et pour les transitions entre phonèmes.
La troisième caractéristique, très importante comme on le verra par la suite,
est l’existence d’un modèle de production simple et efficace. Il s’agit d’un modèle
auto-régressif, c’est-à-dire qu'il admet que le signal analysé est le résultat du
filtrage d’un bruit blanc par un filtre ne comportant que des pôles. Ce modèle est
plus approprié pour les sons non voisés. Pour les sons voisés le bruit de l’entrée du
filtre doit être remplacé par le signal obtenu par le filtrage d’une peigne de Dirac.
Enfin, précisons un qualificatif habituellement associé au signal de parole. On parle
de signal de parole dans la bande téléphonique si on filtre le signal à temps continu
dans la bande [300, 3300 Hz] puis si on l’échantillonne à 8 kHz. On parle de signal
de parole en bande élargie si on le filtre dans la bande [50, 7000 Hz] puis si on
l’échantillonne à 16 kHz. Le signal de parole dans la bande téléphonique est celui
qui est transmis dans le réseau téléphonique public. Les enjeux économiques sont
très nettement les plus significatifs dans cette bande. L’intérêt de transmettre du
signal de parole en bande élargie est d’obtenir un signal de parole reconstitué plus
net et plus intelligible que dans le cas précèdent. Les applications sont les
conférences audiovisuelles, le visiophone, la téléphonie sur haut-parleurs, etc.
Plusieurs normes ont été recommandées par l’UIT-T pour le réseau
téléphonique public. Depuis 1972, la norme internationale G.711 précise un codage
par modulation par impulsions codées (MIC ou PCM) correspondant à un débit de
64 kbit/s: l’amplitude des échantillons est simplement quantifiée sur 8 bits après
une compression de type non-lineaire. Depuis 1984, la norme G.721 définit un
codage MIC différentiel adaptatif (MICDA ou ADPCM) correspondant à un débit
de 32 kbit/s: on ne quantifie plus directement l’amplitude de l’échantillon mais la
différence entre l’amplitude et une valeur prédite déterminée par un filtrage de type
adaptatif. Un codeur à 16 kbit/s basé sur des techniques de
112 La compression de la musique 5
modélisation et de quantification vectorielle, a été sélectionné par l’UIT-T en 1991.
Cette norme G.728 est également appelée LD-CELP (Low Delay Code Excited
Linear Predictive coder) mettant en évidence que c’est un codeur de type CELP et
qu’il présente un faible délai de reconstruction, propriété particulièrement
importante pour un échange téléphonique.
Les communications avec les mobiles sont en plein développement
actuellement. La nature du canal de transmission, une liaison radio, réclame
d’économiser au maximum la largeur de bande du signal transmis pour permettre
un grand nombre d’utilisateurs. Depuis 1989, il existe une norme européenne dite
GSM (Groupe Spécial Mobile). L’ouverture du service Itineris par France Télécom
a eu lieu le 1er juillet 1992. Cette première génération est basée sur les techniques
d’accès multiples par division du temps (TDMA) et sur le codeurs de source, RPELTP (Regular Pulse Excitation-Long Term Prediction) à 13 kbit/s. Cette première
génération ne permet qu’une multiplication par trois environ des capacités de ce
réseau par rapport au réseau analogique (Radiocom 2000 en France). Pour
permettre une multiplication par dix et même plus, le European
Telecommunications Standard Institute (ETSI) a choisi les standards de la
deuxième génération ½ GSM.
5.3.1. Le codeur CELP
Comment on a déjà vu (dans le paragraphe antérieur) ce codeur représente
la brique de base pour la construction des systèmes de compression de la parole.
Le schéma de principe d’un codeur CELP est équivalent au schéma de
modélisation standard d’un signal s[n] comme le montre la figure suivante.
s
ε
+
r̂
1 / A(z )
ŝ
-


Min ∑ ε n 2 
n

Figure 1.5.3.1. Principe du codeur CELP.
Le codeur CELP 113
1 / A(z ) représente la fonction de transfert du filtre de synthèse.
La compression est réalisée parce que la transmission des échantillons du
signal de parole s est substituée par la transmission du signal d’erreur ε (qui est
représenté sur un nombre réduit de bits) et des coefficients du filtre de synthèse.
5.3.1.1. La détermination des coefficients du filtre de synthèse
Le premier traitement consiste à déterminer puis coder les coefficients du
filtre utilisé à la synthèse. Une modélisation par prédiction linéaire est quasi
systématiquement utilisée. On dit qu’on realise une analyse LPC (linear predictive
coding), [51]. Le choix de l’ordre de prédiction, P, résulte d’un compromis. Il doit
être suffisamment élevé pour reproduire correctement la structure "formantique" du
signal de parole: un ordre de 8 est nécessaire pour créer 4 pics dans le spectre et on
a vu que le signal de parole comporte généralement 4 "formants". Inversement,
l’ordre doit être le plus faible possible pour économiser le débit. On choisit donc P
compris entre 8 et 16.
Les coefficients a 1 ,..., a P du filtre A(z) doivent être codés. Parce qu’ils ont
de mauvaises propriétés de codage, on préfère en pratique coder les coefficients
k1 ,..., k P du filtre en treillis correspondant. Ces coefficients peuvent être calculés à
partir des coefficients de corrélation normalisés ρ1 ,...,ρ P du signal qui se trouve à
l’entrée du filtre, en utilisant l’algorithme de Levinson ou l’algorithme de Schur.
Malheureusement la distribution statistique de ces coefficients ne resemble pas à
une distribution uniforme. Pour uniformiser leur distribution on fait subir à ces
coefficients une transformation non-lineaire de la forme:
K i = log
1+ ki
1− ki
(5.5)
On appelle ces nouveaux coefficients les Log Area Ratios. Il existe une quatrième
représentation de ces coefficients équivalente aux trois représentations précédents
possédant des propriétés de codage encore meilleurs, [61]. Il s’agit des Line
Spectrum Pairs.
A partir du polynôme d’ordre P:
P
A(z ) = 1 + ∑ a i z −i
i =1
(5.6)
114 La compression de la musique 5
on construit deux nouveaux polynômes d’ordre P+1:
B1 (z ) = A(z ) + z − P−1A (z −1 )
( )
(5.7)
B 2 (z ) = A(z ) − z −p−1A z −1
On peut montrer que ces deux polynômes ont les propriétés suivantes:
„ Le polynôme B1 (z ) est un polynôme symétrique. Le polynôme B 2 (z )
est un polynôme antisymétrique.
„ Si toutes les racines de A(z ) sont à l’intérieur du cercle unité, toutes
les racines de B1 (z ) et de B 2 (z ) sont sur le cercle unité.
„
„
Les racines de B1 (z ) et de B 2 (z ) apparaissent de façon alternée sur le
cercle unité.
Si P est pair on peut écrire ces deux polynômes sous la forme:
(
B1 (z ) = 1 + z −1
(
B 2 (z ) = 1 + z
)∏ (1 − 2 cos ϕ
−1
P/2
i =1
2i −1z
)∏ (1 − 2 cos ϕ
P/2
i =1
2i z
−1
−1
+ z −2
+z
−2
)
(5.8)
)
Si P est impair on obtient:
B1 (z ) =
(P +1) / 2
∏
i =1
(
(1 − 2 cos ϕ
B 2 (z ) = 1 − z −2
„
(P −1) / 2
2i −1z
−1
+ z −2
) ∏ (1 − 2 cos ϕ
i =1
)
−1
+ z −2
2i z
)
Les Line Spectrum Pairs ϕ1 ,...,ϕ P vérifient les relations:
0 < ϕ1 < ϕ 2 ... < ϕ P < π
(5.9)
(5.10)
Connaissant les coefficients a i , on en déduit les coefficients ϕi . Réciproquement,
connaissant les coefficients ϕi , on en déduit les coefficients a i puisque:
B (z ) + B 2 (z )
A(z ) = 1
(5.11)
2
5.3.1.1. La détermination des coefficients du filtre de synthèse 115
La quantification des coefficients ϕi doit conserver la relation (5.11) pour
maintenir la stabilité du filtre de synthèse. Si l’on quantifie la différence entre deux
coefficients successifs, cette relation est automatiquement conservée.
Les fonctions de coût quadratiques se prêtent bien aux calculs mais ne sont
pas bien adaptés à notre système auditif. Pour pallier à cet inconvénient on peut
faire une correction perceptive au schéma de la figure 1.5.3.1.1 en rajoutant un
filtre de fonction de transfert W(z), avant le système qui implemente le critère de
minimisation (celui qui a à l’entrée le signal ε), pour masquer le bruit de
quantification. L’expression de cette fonction de transfert est:
W (z ) =
A(z )
A(z / γ )
avec
0 < γ <1
Le diagramme donnant le principe de la modélisation devient celui de la
figure suivante.
s
A(z )
1 / A(z / γ )
p
ε
+
r̂
p̂
1 / A(z / γ )
-


Min ∑ ε n 2 
n

Figure 1.5.3.1.1. Un autre schéma possible de codeur CELP.
Ce diagramme met clairement en évidence le fait que l’on cherche à
modéliser le signal perceptuel p (et non le signal de parole s) par le signal p̂ . Le
filtre qui a la fonction de transfert 1 / A(z / γ ) s’appelle filtre perceptuel. On choisit
généralement γ voisin de 0,8.
Pour pouvoir estimer les coefficients du filtre de synthèse il faut connaître
le signal d’excitation r̂[n ] . Celui-ci doit être un bruit blanc pour les fenêtres
d’analyse qui contient des sons non-voisés et une peigne de Dirac filtrée pour les
sons voisés. On peut utiliser comme signal d’excitation un vecteur issu d’un
dictionnaire C = c1 ,..., c L composé de L vecteurs de dimension N:
{
}
116 La compression de la musique 5
K
r̂ = ∑ g k c j(k )
(5.12)
k =1
où on a noté avec K l’ordre de modélisation de l’excitation. L’idée d’utiliser des
dictionnaires est spécifique pour la quantification vectorielle, [47]. Les K vecteurs
du dictionnaire d’excitation sont connus aussi bien par l’émetteur que par le
récepteur. Pour construire le signal d’excitation il faut donc chercher K vecteurs
c j(1) ...c j(K ) dans le dictionnaire d’excitation et K gains g1 ,..., g K de façon à ce que
le vecteur r̂ filtré par le filtre perceptuel 1 / A(z / γ ) donne le vecteur modélisé p̂ le
plus ressemblant possible au vecteur p.
La forme du modèle de l’entrée étant fixée, il faut déterminer la valeur
2
p − p̂ relativement aux indices
numérique des paramètres. On minimise
j(1),..., j(k ) et aux gains g 1 ,..., g K . En notant avec h[n] la réponse impulssionnelle
du filtre perceptuel et en considérant que n=0 caractérise le premier échantillon de
la fenêtre d’analyse courante, on peut écrire:
∞
n
p̂[n ] = ∑ h [i ]r̂[n − i ] = ∑ h (i )r̂ (n − i ) +
i =0
K
n
k =1
i =0
i =0
= ∑ g k ∑ h [i ]c j(k ) (n − i ) +
En notant avec:
∞
∑ h[i]r̂[n − i] =
i = n +1
∞
∑ h[i]r̂[n − i]
(5.13)
i = n +1
[
]
p̂ 0 = p̂ 0 (0 )...p̂ 0 (N − 1)
t
où:
p̂ 0 (n ) =
∞
∑ h[i]r̂[n − i]
i = n +1
la contribution dans la fenêtre courante de l’excitation provenant des fenêtres
précédentes est donnée par:
[
]
f j = f j (0 )...f j (N − 1)
avec:
t
5.3.1.1. La détermination des coefficients du filtre de synthèse 117
n
f j (n ) = ∑ h[i]c j [n − i]
i =0
le résultat du filtrage du vecteur c j par le filtre perceptuel partant de conditions
initiales nulles, la relation (5.13) devient:
p̂ = ∑ g k f j(k )
(5.14)
k
et l’opération de filtrage décrite plus
matricielle:
0
 h[0]
 h[1]
h[0]
fj =
 .
.

h [N − 1] .
haut peut être caractérisée par l’expression
.
.
.
.
.
.
. h[1]
0 
.  j
c = Hc j

0

h[0]
(5.15)
Les éléments f j appartiennent au dictionnaire filtré F. Maintenant on peut trouver
la solution du problème de la modélisation de l’excitation en faisant une
minimisation au sens de moindre carrés. Il faut trouver les indices j(1),..., j(K ) et
les gains g1 ,..., g K de façon à minimiser:
D = p − p̂
2
K
= p − ∑ g k f j(k )
2
(5.16)
k =1
Si on suppose connu le dictionnaire F, en formulation matricielle ce problème
devient: étant donné une matrice F composée de L vecteurs colonnes f j et un
vecteur p, il faut extraire de F une matrice A composée de K vecteurs colonnes
parmi L, et trouver un vecteur g de dimension K de façon à minimiser:
D = p − Ag
2
(5.17)
Il s’agit d’un problème classique de minimisation au sens des moindres carrées si
l’on suppose connus les indices j(1),..., j(K ) , c’est-à-dire la matrice A. On
détermine g à partir du système sur-dimensionné:
p=Ag
118 La compression de la musique 5
On écrit que la meilleure approximation p̂ de p est la projection
orthogonale de p dans le sous-espace engendré par les vecteurs colonnes de A. On
obtient les équations normales:
(f ( ) )
jk
t
(p − Ag ) = 0
k = 1...K
pour
(5.18)
ou de façon matricielle:
A t Ag = A t p
(5.19)
Malheureusement les indices j(1),..., j(K ) ne sont pas connus et doivent être
déterminés simultanément avec les gains. Il existe un algorithme optimal pour ce
problème; il suffit de déterminer toutes les matrices A correspondant à toutes les
combinaisons de k vecteurs parmi L, de résoudre pour chaque matrice A les
équations normales, d’évaluer le critère et de sélectionner la combinaison qui
minimise ce critère. Malheureusement cet algorithme demande un volume de calcul
trop élevé. Il est donc nécessaire à se limiter à un algorithme sous-optimal.
La minimisation de D consiste à choisir une combinaison j(1),..., j(K ) ,
résoudre les équations normales A t Ag = A t p , enfin choisir la combinaison qui
) 2
maximise g t A t Ag puisque la minimisation de p − p est équivalente à la
2
maximisation de p̂ . Puisque:
(
g = AtA
)
−1
Atp
(5.20)
le problème consiste finalement à sélectionner la combinaison j(1),..., j(K ) qui
maximise:
p̂
2
[(
= p t A A t A −1
)]
t
Atp
(5.21)
puis à calculer les gains en résolvant, une seule fois, les équations normales
correspondant à la combinaison choisie.
5.3.1.1.1. Algorithme itératif standard pour la construction de l’excitation 119
5.3.1.1.1. Algorithme itératif standard pour la construction
de l’excitation
La difficulté provient essentiellement de l’inversion de la matrice A t A .
Pour dépasser cette difficulté on peut se limiter á la recherche d’un vecteur à la
fois, l’expression A t A est alors un scalaire, le calcul des indices et des gains se
fait de façon itérative.
L’algorithme itératif standard se base sur les étapes suivantes.
A la première itération, un seul vecteur f j est sélectionné. On a:
AtA = f j,f j
(5.22)
Atp = f j,p
On doit donc choisir l’index j qui maximise:
p, f
j
j
f ,f
1
j −
puis calculer le gain:
g1 =
j
f ,p =
f j,p
2
f j,f j
f j(1) , p
f j(1) , f j(1)
(5.23)
(5.24)
A la k eme itération, la contribution des k-1 premiers vecteurs f j(i ) est retirée de p:
k −1
p k = p − ∑ g i f j(i )
i =1
et un nouvel index j(k ) et un nouveau gain g k sont calculés:
(5.25)
120 La compression de la musique 5
j(k ) = arg max
f j, pk
j
2
f j,f j
(5.26)
f j(k ) , p k
gk =
f j( k ) , f j( k )
On obtient l’algorithme itératif standard.
Pour j = 1...L
„
α j = f j,f j ;
„
β1j = f j , p
Pour k=1...K
{
„ j(k ) = arg max (β kj )
j
„
„
2
}
/αj ;
g k = β kj(k ) / α j(k ) ;
Pour j=1...L (si k<K);
• r(k, j) = f j(k ) , f j / α j(k ) ;
•
β kj +1 = β kj − r (k , j)β kj(k ) .
Cet algorithme est applicable quel que soit le contenu du dictionnaire d’excitation
C.
Jusqu’ici il a seulement été faite une prédiction à court terme du signal de
parole (on a trouvé seulement les P coefficients du filtre de synthèse et le signal
d’erreur ε). On peut faire une réduction supplémentaire de l’amplitude du signal
d’erreur si on pratique une prédiction à longue terme aussi. Celle-ci pourra offrir
une prédiction du “pitch” du signal de parole. Cette prédiction est basée sur la
minimisation de l’énergie d’une nouvelle erreur:
D 2 = ∑ (ε[n ] − bε[n − Q])
n
2
(5.27)
5.3.1.1.1. Algorithme itératif standard pour la construction de l’excitation 121
par rapport aux paramètres inconnus b et Q et utilise le filtre de synthèse avec la
fonction de transfert:
(5.28)
B(z ) = 1 − bz − Q
En utilisant le paramètre Q on peut estimer le “pitch”.
A l’aide de cette prédiction à long terme on peut construire une partie du
dictionnaire d’excitation C appelée dictionnaire adaptatif, le reste du dictionnaire C
sera nommé dictionnaire stochastique, [61].
Les éléments spécifiques pour un codeur CELP décrits plus haut, qui se
trouvent dans la structure de différents codeurs déjà réalisés, conduisent à un
algorithme possible pour le codage CELP décrit dans la suite.
5.3.1.1.2 Description algorithmique
Après une phase d’initialisation où l’on met à zéro le dictionnaire adaptatif,
où l’on charge le dictionnaire stochastique et où l’on met à zéro l’état de tous les
filtres, on realise systématiquement pour chaque fenêtre d’analyse les traitements
suivants.
• Acquisition, analyse LPC, calcul du perceptuel, calcul de la réponse
impulsionnelle du filtre perceptuel et de son énergie,
„ La lecture de N échantillons dans un fichier permet de
construire le vecteur s[0],...,s[N-1].
„ A partir de ces N échantillons, on calcule les P+1 coefficients
d’autocorrélation R[0],..., R[P] . En utilisant ces coefficients
l’algorithme de Schur fournit les P coefficients k[1],...,k[P].
On code ces coefficients puis on calcule les coefficients
a[1],...,a[P] des filtres d’analyse et de synthèse. Le filtrage du
vecteur s[0],..., s[N-1] par le filtre d’analyse donne le vecteur
résiduel r[0],...,r[N-1]. L’état du filtre n’est pas modifiée
lorsque l’on passe d’une fenêtre à la suivante.
„ Apres détermination des coefficients du filtre perceptuel par
pondération de la forme a ' [i] = γ i a [i] , on filtre le vecteur
résiduel ce qui donne le vecteur perceptuel p[0],..., p[N-1].
„ Pour déterminer la réponse impulsionnelle h[0],..., h[Nh-1], il
suffit de filtrer la séquence 1,0,...,0 par le filtre perceptuel
partant de conditions initiales nulles. On calcule également
l’énergie de cette réponse impulsionnelle.
122 La compression de la musique 5
• Actualisation du dictionnaire adaptatif, filtrage des dictionnaires et
calcul de l’énergie des vecteurs filtrés
„ On actualise le dictionnaire adaptatif par l’excitation du filtre
de synthèse précédemment déterminée c’est-à-dire par le
vecteur d’excitation correspondant à la dernière sous-fenêtre
de la fenêtre précédente r̂[− N'],..., r̂[−1] , où r̂ = ∑ g k c j(k ) .
k
„
„
•
„
Puisque les caractéristiques du filtre perceptuel ont été
modifiées, il faut actualiser le dictionnaire filtré. On exploite le
caractère Toeplitz du dictionnaire adaptatif et on filtre
brutalement le dictionnaire stochastique.
On calcule également l’énergie α j de tous les vecteurs des
deux dictionnaires.
Traitement par sous-fenêtre
„ Actualisation du dictionnaire d’excitation adaptatif, filtrage et
calcul de l’énergie des vecteurs nouvellement filtrés:
# Au début de chaque sous-fenêtre, excepté la première,
puisque cette opération a été déjà réalisée, on actualise le
dictionnaire d’excitation adaptatif puis on filtre les N’
vecteurs modifiés. Les autres vecteurs sont simplement
décalés.
# On calcule l’énergie des N vecteurs filtrés et on décale
les autres.
Détermination du signal d’excitation, du modèle perceptuel:
# On calcule la contribution p̂ 0 [0],..., p̂ 0 [ N'−1] dans la
sous-fenêtre courante de l’excitation provenant des sousfenêtres précédentes en soumettant une entrée nulle à un
filtre perceptuel particulier,
# On calcule d’abord la première erreur de modélisation
correspondant à p[n ] − p̂ 0 [n ] . On recherche ensuite l’indice
j(1) du vecteur sélectionné dans le dictionnaire adaptif et le
gain g1 associé en calculant les intercorrélations β j entre
cette erreur de modélisation et les vecteurs filtrés du
dictionnaire adaptatif puis en
Description algorithmique 123
( )
2
maximisant le rapport β j / α j . On actualise r̂[n ] et
p̂[n ] dans la sous-fenêtre courante.
# On recommence exactement le même traitement pour les
K-2 vecteurs issus du dictionnaire stochastique, à savoir, le
calcul de la deuxième erreur de modélisation et des indices
j(2),...,j(K) et des gains g1 ,..., g K . Si K est strictement
supérieur à 2, on ne calcule pas de nouvelles erreurs de
modélisation mais on actualise les intercorrélations β j .
•
Synthèse
Dans un codeur réel, l’encodage et le décodage sont totalement séparés. Il
faut donc, à la synthèse, refaire certains traitements, comme par exemple la gestion
du dictionnaire adaptatif.
„ Pour obtenir le signal synthétique ŝ[0],..., ŝ[N − 1] , il suffit de filtrer le
résiduel synthétique r̂[0],..., r̂[N − 1] par le filtre de synthèse.
„
On écrit ce vecteur dans un fichier.
5.3.1.1.3 Le codeur GSM
Ce codeur, qui fonctionne à 13 kbit/s n’a aucun traitement perceptuel. La
prédiction à court terme est réalisée à l’aide d’un système dont le diagramme de
fonctionnement est présenté à la figure 1.3.2.3.1. Une analyse LPC d’ordre 8 est
réalisée par l’algorithme de Schur toutes les fenêtres de N=160 échantillons après
avoir effectué une pré-accentuation en utilisant un filtre de fonction de transfert
1 − 0,86 ⋅ z −1 . Les coefficients Log Area Ratios sont codés en utilisant un nombre
total de 36 bits. Le signal résiduel (l’erreur de prédiction) correspondant à une
fenêtre d’analyse est ensuite traité, pour faire une prédiction à long terme, en quatre
sous-fenêtres de 40 échantillons. La prédiction à long terme est réalisée par la
maximisation de l’intercorrélation entre le vrai signal résiduel et le signal résiduel
prédit par le système de prédiction basé sur le filtre de fonction de transfert B(z).
Cette prédiction donne aussi les valeurs de paramètres b et Q. Le décalage Q est
codé sur 7 bits et le coefficient b sur 2 bits. Le signal obtenu à la sortie du système
de prédiction à long terme subit une nouvelle compression à l’aide d’un système de
sous-échantillonnage. Premièrement il est filtré avec un filtre anti-repliement de
type RIF à phase linéaire de 11 coefficients prédéterminés. A partir des 40
échantillons du signal de la sortie de ce filtre sont extraits 4
124 La compression de la musique 5
signaux de 13 échantillons correspondant à un sous-échantillonnage par un facteur
3. On choisit comme signal de sortie le plus énergétique de ces quatre signaux et ce
choix est codé sur 2 bits. Les 13 échantillons sélectionnés sont normalisés par
l’échantillon de plus grande valeur absolue puis quantifiés par un quantificateur
non-uniforme sur 6 bits.
On peut trouver plus sur le codeur GSM en [75]...[81]. La description du
codeur ½ GSM est faite dans les standards: [80], [81].
La théorie des ondelettes peut être utilisée, elle aussi, pour la compression
de la parole. Quelques algorithmes utilisés dans ce but sont présentés dans
[82]...[85]. Dans la suite on présente quelques résultats obtenus en utilisant pour la
compression de la parole le schéma
de la figure 1.2.1.1, les transformées
orthogonales du chapitre 2, le détecteur de seuil présenté dans le chapitre 3 et le
système de quantification du chapitre 4.
5.3.2. La compression de la parole en utilisant les paquets de
cosinus
Dans ce paragraphe on présentera quelques expérimentations durant
lesquelles on a fait la simulation du système de compression de la parole, proposé
dans le chapitre 1, en différentes variantes. La complexité du système simulé
augmente d'une expérience à l'autre. Pour toutes les expériences on a utilisé le
même signal de parole, une proposition en anglais ; "Houston we have a problem".
Le fichier source est en format "wave". Pour sa réalisation on a utilisé une
fréquence d'échantillonnage d'environ 44 KHz, chaque échantillon étant codé sur
16 bits. La forme d'onde de ce signal est présentée à la figure 1.5.3.2. Ce signal est
segmenté en blocs de 1024 échantillons (la durée de chaque bloc étant inférieure à
25 ms). Ces simulations ont été effectuées sous Matlab en utilisant la boite à outils
Wavelab, [86]. Pour chaque expérience on a présenté le programme utilisé, les
résultats obtenus et quelques commentaires.
5.3.2. La compression de la parole en utilisant les paquets de cosinus 125
Figure 1.5.3.2. La forme d'onde du signal à comprimer.
5.3.2.1. Première expérience
Celle-ci est l'expérience la plus simple. Le système de compression de la
parole n'est pas adaptatif. On utilise la TPCD sans aucune itération (cette
transformée est en fait la DCT). On utilise une valeur de seuil pour le bloc DP
égale à t m . On fait une quantification uniforme sur six bits. On n'utilise pas les
blocs Co et D. L'effet de l'utilisation de ces blocs est seulement estimé. Le
programme de simulation est le suivant :
126 La compression de la musique 5
Programme 1.
Instructions
Commentaire
[s,fs,wmode,fidx]=readwav('problem.wav','y L'acquisition du signal de parole
',-1,-1);
X=s(1025:2048);
La segmentation du signal de parole
(Premier segment)
I=x.*x; Pi=sum(i);
Le calcul de la puissance du signal d'entrée
[n,D]=dyadlength(x);
L'analyse en paquets de cosinus
cp=cpanalysis(x,0,'Sine');
Parce qu'on utilise une seule itération la
TPCD est identique à la DCT
T=0.1.*sqrt(Pi./1024);
L'initialisation du seuil
Eps=t; stree=calcstattree(cp,'N(eps)',eps);
Le choix de la meilleure base
[btree,vtree]=bestbasis(stree,0);
Coef=fpt_cp(btree,x,0,'Sine');
Le calcul de la TPCD
Y=hardthresh(coef,t);
Comparaison avec le seuil
La quantification scalaire uniforme des
coefficients
Ampl=max(abs(y));
La détection du coefficient de plus grande
N=nnz(y);
valeur
B=round(y./ampl.*64);
La quantification
Nc=N.*16;
Le calcul du nombre de bits nécessaire
On utilise 6 bits pour la valeur du chaque
échantillon et 10 bits pour le codage de sa
position
Yf=ampl.*b./64; z=ipt_cp(btree,yf,0,'Sine'); Le calcul de la transformée inverse
E=-x+z'; o=e.*e; Po=sum(o);
Le calcul du rapport signal à bruit à la sortie
Rsb=10.*log10((Pi)/(Po));
Fc=(1024.*16)./(Nc);
Le calcul du facteur de compression sur le
segment courant
Figure(1);
Représentations graphiques
Subplot(121); plot(x); title('s de intr');
Subplot(122); plot(z); title('s. rec');
Figure(2); plot(abs(y)); title('spectre');
Figure(3); a=1/512:1/512:1; v=fc.*a./a;
w=rsb.*a./a;
Subplot(121);
plot(a,v);
title('fc');
subplot(122);
Plot(w); title('RSZ0');
Save rez z –ascii
Le signal d'entrée
Le signal reconstruit
L'analyse spectrale du segment courant
Le facteur de compression et le rapport
signal à bruit
L'enregistrait du segment reconstruit
5.3.2.1. Première expérience 127
Apres le traitement du deuxième segment en utilisant le programme présenté plus
haut on a obtenu les résultats présentés dans les figures suivantes:
Figure 1.5.3.2.1. Signaux d'entrée et
reconstruit.
Figure 2.5.3.2.1. Le spectre du signal
reconstruit.
Figure 3.5.3.2.1. f c = 3,38 , rsb = 24dB
En faisant la première expérience pour chaque segment on obtient les
résultats présentés dans le tableau suivant.
128 La compression de la musique 5
No.
D'ordre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fc
rsz 0 [dB]
Observations
1,9248
3,38
2,9854
1,4692
1,3581
2,0317
2,5793
2,6056
3,3907
2,4323
1,9284
1,9140
2,5600
2,7234
3,9690
1,7124
1,2800
3,4020
2,6528
2,5793
23,531
24
23,8294
27,1865
25,7967
22,1999
23,3007
22,7519
25,3689
23.9739
22,9190
25,1832
25,7500
25,5362
26,0653
25,1859
24.0950
27,5556
27,1692
27,3962
Bruit prépondérant. (figure 5.1.4)
sinus prépondérant
sinus prépondérant
Bruit prépondérant
Bruit prépondérant
sinus prépondérant
sinus prépondérant
sinus prépondérant
sinus prépondérant
sinus prépondérant
sinus prépondérant
Bruit prépondérant
sinus prépondérant
Bruit prépondérant
Sinus prépondérant (figure 5.1.5)
Bruit prépondérant
Bruit prépondérant (figure 5.1.6)
sinus prépondérant
sinus prépondérant
Bruit prépondérant
Tableau 1.5.3.2.1. Les résultats de la première expérience.
Les observations liées à la qualité du segment traité sont présentées dans la
dernière colonne du tableau. Si sa forme d'onde est propre et si l'indice de la
dernière composante spectrale significative est inférieur à 512 alors le segment est
considéré comme un segment sinusoïdal. Dans le cas contraire le segment est
considéré comme un bruit. Un exemple de segment prépondérant sinusoïdal est le
segment numéro 2, présenté dans les figures 1.5.3.2.1. et 2.5.3.2.1. Un exemple de
segment prépondérant bruit est le segment numéro 1. Son spectre est présenté à la
figure 4.5.3.2.1. On observe que celui-ci contient une composante de bruit blanc.
5.3.2.1. Première expérience 129
Figure 4.5.3.2.1. Le spectre d'un segment de type bruit prépondérant.
Ce bruit peut être éliminé si on utilise une valeur supérieure du seuil, t.
C'est le motif pour lequel on peut affirmer que la procédure de sélection adaptative
du seuil est utile pour la compression. En conformité avec le tableau 1.5.3.2.1, le
segment avec le plus grand facteur de compression est le segment numéro 15 et le
segment avec le plus petit facteur de compression est le segment numéro 17. Sur la
figure 5.5.3.2.1 est présenté la forme d'onde du segment numéro 15 et sur la figure
6.5.3.2.1 la forme d'onde du segment numéro 17. On constate que le segment avec
le plus grand facteur de compression est un segment prépondérant sinusoïdal.
Il y a un très petit nombre de coefficients non nuls avec l'indice supérieur à 400. En
conséquence on peut affirmer que la méthode de compression marche mieux si le
modèle sinusoïdal de la parole est respecté. En analysant la figure 5.5.3.2.1 on
constate que la valeur du seuil, t, peut être augmentée. Conformément à la figure
6.5.3.2.1 on constate que dans le cas du segment numéro 17 le modèle sinusoïdal
de la parole n'est pas satisfait, motif pour lequel ce segment a été considéré de type
bruit prépondérant. En analysant le tableau 1.5.3.2.1 on constate que les valeurs
obtenues pour le facteur de compression sont petites, entre 1,28 (le segment
numéro 17), et 3,97 (le segment numéro 15). En revanche les valeurs du rapport
signal à bruit à la sortie de la reconstruction sont grandes, entre 22,75 (le segment
numéro 8, prépondérant sinusoïdal) et 27,55 (le segment numéro 18 de type bruit
prépondérant). Ce résultat est très intéressant parce qu'on a utilisé une
130 La compression de la musique 5
quantification en utilisant seulement 6 bits. On constate qu'il y a des réserves pour
la réduction du rapport signal à bruit à la sortie (par l'augmentation du seuil t)
surtout pour les segments de type bruit prépondérant. Mais le motif principal
pour la petite valeur des facteurs de compression enregistrés est que pour le
calcul de ces coefficients on ait considéré que les positions des échantillons du
signal traité sont codés sur 10 bits ( 210 = 1024 ). Ce problème peut être résolu
si on utilise la méthode de compression adaptative (basée sur l'utilisation des
bandes critiques) présentée dans le chapitre antérieur.
Figure 5.5.3.2.1. Les formes d'onde de l'entrée et de la sortie du système de compression
(en haut) pour le segment numéro 15 et le spectre du signal reconstruit (en bas).
5.3.2.1. Première expérience 131
Figure 6.5.3.2.1. Les formes d'onde à l'entrée et à la sortie du système de compression (en
haut) pour le segment numéro 17 et le spectre du signal reconstruit (en bas).
132 La compression de la musique 5
5.3.2.2. La deuxième expérience
Le but de cette expérience est de montrer l'importance de l'influence du nombre
d'itérations de la TPCD sur le facteur de compression. Dans le cas de l'expérience
déjà présentée, la sélection de la meilleure base ne se faisait pas parce que la TPCD
était calculée sans aucune itération. Dans le cadre de la deuxième expérience le
nombre total d'itérations sera de 10 (l'arbre de la TPCD étant impose par
l'algorithme de choix de la meilleure base, qui minimise le nombre de coefficients
supérieurs au seuil t). Le programme qui se trouve à la base de cette expérience est
le suivant.
Programme 2.
[s,fs,wmode,fidx]=readwav('problem.wav','y',-1,-1); x=s(17409:18432);
%le calcul de la puissance du signal d'entrée ; i=x.*x; Pi=sum(i);
% l'analyse en paquets de cosinus ;
[n,D]=dyadlength(x); cp=cpanalysis(x,D,'Sine');
%l'initialisation du seuil;
t=0.1.*sqrt(Pi./1024);
%la sélection de la meilleure base;
eps=t; stree=calcstattree(cp,'N(eps)',eps); [btree,vtree]=bestbasis(stree,D);
%le calcul de la TPCD;
coef=fpt_cp(btree,x,D,'Sine');
% la comparaison avec le seuil;
y=hardthresh(coef,t);
% la quantification scalaire uniforme des coefficients;
%la detection du coefficient de plus grande valeur;
ampl=max(abs(y)); N=nnz(y); b=round(y./ampl.*64);
% le calcul du nombre de bits utilisés pour la quantification; Nc=N.*16;
% le calcul de la transformée inverse;
yf=ampl.*b./64; z=ipt_cp(btree,yf,D,'Sine');
% le calcul du rapport signal à bruit à la sortie ;
e=-x+z'; o=e.*e; Po=sum(o); rsb=10.*log10((Pi)/(Po));
% le calcul du facteur de compression pour le segment courant;
fc=(1024.*16)./(Nc);
a=1/512:1/512:1;v=fc.*a./a; w=rsb.*a./a;
% représentations graphiques;
figure(1); subplot(121); plot(x); title('s d'entr'); subplot(122);plot(z); title('s. rec');
figure (2); plotbasistree(btree,D,stree,'Sinus'); title('arbre');
5.3.2.2. La deuxième expérience 133
Les instructions du programme 2 qui sont différentes par rapport au
programme 1 ont été marqués en caractères gras. Les résultats de l'application du
programme 2 pour les segments de 1 à 10, 15 et 17 sont présentés dans le tableau
suivant. Pour les segments où le nombre d'itérations obtenu après l'application de
l'algorithme de sélection de la meilleure base est égal à zéro les résultats des
expériences 1 et 2 sont identiques. Il s'agit des segmentes numéro 2,3,7 et 15. Les
facteurs de compression obtenus pour les autres segments sont légèrement plus
grands (ce qui prouve la supériorité de la TPCD par rapport à la DCT) et des
rapports signal à bruit à la sortie légèrement plus faibles. Le plus petit rapport
signal à bruit de sortie obtenu est supérieur à 23 dB. C'est une valeur trop grande.
En conséquence on peut tirer la même conclusion comme pour la première
expérience, la valeur de seuil, t, peut être augmentée. Les arbres obtenus après
l'application de l'algorithme de recherche de la meilleure base sur les segments
numéro 4 et numéro 5 sont presentés dans les figures 4.2.1. et 4.2.2.
No.
d'ordre
1
2
3
4
5
6
7
8
9
10
15
17
fc
rsz 0 [dB]
Observations
1.9922
3.38
2.9854
1.4819
1.4124
2.1695
2,5793
3.5189
3,3907
2.645
3,9690
1.4322
23.3
24
23,8294
26.3483
26.0918
26.1181
23,3007
23.2196
25,3689
23.4842
26,0653
26.5688
1 itération
0 itérations
0 itérations
10 itérations (fig 5.2.1)
10 itérations (fig 5.2.2)
10 itérations
0 itérations
1 itération
0 itérations
1 itération
0 itérations
10 itérations
Tableau 1.5.3.2.2. Quelques résultats pour la deuxième expérience.
Evidement pour pouvoir calculer la transformée inverse, TPCDI, la connaissance
de ces arbres est nécessaire. C'est le motif pour lequel il faut connaître les
coefficients retenus à la sortie du détecteur de seuil (les valeurs et les positions de
ces coefficients) et les arbres de la meilleure base aussi. D'ici résulte la nécessité de
codage de l'arbre de la meilleure base. Cette opération réclame un nombre
supplémentaire de bits. Ce nombre n'a pas été considéré pour le calcul des facteurs
de compression présentés dans le tableau 1.5.3.2.2. C'est le motif pour lequel les
facteurs de compression réels sont légèrement plus faibles par rapport aux valeurs
présentées dans le tableau.
134 La compression de la musique 5
Figure 1.5.3.2.2 L'arbre de la meilleure base
pour le segment numéro 4.
Figure 2.5.3.2.2 L'arbre de la meilleure base
pour le segment numéro 5.
Une possibilité de codage de l'arbre de la meilleure base est décrite par les
règles suivantes :
- à chaque itération (niveau de partition du support du signal à traiter) on
associe un 1 si la partition est faite (il y a un nœud dans l'arbre) et un 0 si la
partition n'est pas faite (il n'y a pas un nœud dans l'arbre),
- chaque niveau de l'arbre est parcouru de gauche à droite.
Un exemple d'application de cette méthode de codage est présenté à la
figure suivante :
1
1
0
1
0
0
0
Figure 3.5.3.2.2. Un exemple de codage d'un arbre de la meilleure base.
On a obtenu le code : 110010000000000. Celui-ci est exprimé sur 15 bits
(15=24-1). Donc le nombre de bits nécessaire pour le codage, en utilisant la
5.3.2.2. La deuxième expérience 135
méthode décrite, d'un arbre qui a 10 niveaux de partition, est de 211 − 1 .
C'est une valeur trop grande. Voilà pourquoi le nombre d'itérations utilisées pour le
calcul de la TPCD doit être limité. Si on utilise seulement trois itérations, comme
dans l'exemple de la figure 3.5.3.2.2, alors pour le codage de l'arbre de la meilleure
base il faut seulement 16 bits. Ce nombre ne modifie pas la valeur du facteur de
compression. Dans ce cas-ci l'utilisation de la TPCD conduit aux facteurs de
compression supérieurs par rapport à l'utilisation de la DCT. On répète dans la suite
l'expérience numéro 2 en limitant le nombre de partitions utilisé dans l'algorithme
de recherche de la meilleure base au trois. Ainsi on obtient l'expérience 2.1. Le
programme de cette expérience a deux instructions différentes par rapport au
programme numéro 2. Celles-ci sont : [btree,vtree]=bestbasis(stree,3) et
fc=(1024.*16)./(Nc+16) .
Les résultats obtenus pour l'expérience 2.1. sont présentés dans le tableau
2.5.3.2.2.
No.
d'ordre
1
2
3
4
5
6
7
8
9
10
15
17
fc
rsz 0 [dB]
Observations
1.9922
3.38
2.9854
1.4713
1.3763
2.1070
2,5793
3.5189
3,3907
2.645
3,9690
1.2800
23.3
24
23,8294
26.4203
26.2515
21.5087
23,3007
23.2196
25,3689
23.4842
26,0653
24.0950
1 itération
0 itération
0 itération
1 itération
1 itération
1 itération
0 itération
1 itération
0 itération
1 itération
0 itération
0 itération
Tableau 2.5.3.2.2. Quelques résultats de l'expérience 2.1.
Après la réalisation de l'expérience 2.1. on a obtenu des résultats différents
par rapport à l'expérience 2, sur les segments 4, 5, 6 et 17. Les valeurs obtenues
pour les facteurs de compression correspondants sont légèrement plus petites (mais
supérieures par rapport aux valeurs correspondantes obtenues dans la première
expérience) et les valeurs des rapports signal à bruit à la sortie sont légèrement plus
grandes. C'est le motif pour lequel celle-ci sera la modalité d'application de
l'algorithme de recherche de la meilleure base utilisée dans la suite. Le bloc de
données qui correspond à chaque segment aura un entête, de 16 bits, où sera inclus
136 La compression de la musique 5
le code de l'arbre de la meilleure base spécifique pour le bloc courant. Parce que
les valeurs des facteurs de compression obtenus sur chaque segment sont encore
plus petites, dans la suite on présent une nouvelle expérience, où la quantification
scalaire uniforme, sur 6 bits, considérée jusqu'ici, est substituée par une
quantification scalaire non-uniforme (décrite dans le chapitre antérieur).
5.3.2.3. La troisième expérience
La séquence des coefficients TPCD (calculée en utilisant l'algorithme de
sélection de la meilleure base qui fait la minimisation de la fonctionnelle de coût
définie par le nombre des coefficients supérieurs à la valeur de seuil t) est traitée
par le détecteur de seuil. Le signal obtenu à la sortie du détecteur de seuil est
quantifié avec un quantificateur non uniforme. Dans ce but il est segmenté en 32
bandes et dans chacune des bandes on réalise une normalisation et une
quantification uniforme sur 6 bits. Le programme utilisé pour cette expérience est
présenté dans la suite.
Programme 3.
% l'acquisition du signal à traiter;
[s,fs,wmode,fidx]=readwav('problem.wav','y',-1,-1);
% la segmentation;
x=s(16385:17408);
%le calcul de la puissance du signal d'entrée;
i=x.*x; Pi=sum(i);
% l'analyse en paquets de cosinus;
[n,D]=dyadlength(x); cp=cpanalysis(x,D,'Sine');
%l'initialisation du seuil;
t=0.1.*sqrt(Pi./1024);
%la sélection de la meilleure base;
eps=t; stree=calcstattree(cp,'N(eps)',eps); [btree,vtree]=bestbasis(stree,3);
%le calcul de la transformée en paquets de cosinus;
coef=fpt_cp(btree,x,D,'Sine');
% la comparaison avec le seuil;
y=hardthresh(coef,t);
% la partition en 32 bandes; le calcul du nombre de niveaux de quantification
dans chaque bande b(k); le calcul du nombre de bits dans chaque bande
nb(k); la quantification uniforme sur 6 bits en chaque bande; le calcul du
nombre de coefficients non nuls dans chaque bande N(k);
% initialisation;
5.3.2.3. La troisième expérience 137
yk=zeros(32,32); ykc=zeros(32,32); ykf=zeros(32,32); yf=zeros(1,1024);
% la partition en 32 bandes:
for k=1:1:32; yk(k,:)=y(32.*(k-1)+1:32.*k);
% la normalisation en chaque bande;
% la détection de la plus grande valeur dans chaque bande;
z(k)=max(abs(yk(k,:)));
% la quantification uniforme sur 6 bits de la plus grande valeur de chaque
bande;
b(k)=round(z(k)./(ampl).*64);
% le calcul du nombre de bits nécessaire pour la quantification du signal
contenu dans la bande k;
nb(k)=round(log2(b(k)+1));
% la quantification uniforme sur 6 bits des valeurs normalisées de chaque
bande;
ykc(k,:)=round((yk(k,:)./(z(k)+0.01)).*b(k));
% le calcul du nombre de coefficients non nuls de chaque bande;
N(k)=nnz(ykc(k,:));
% la de-normalisation en chaque bande;
ykf(k,:)=(ykc(k,:)./(b(k)+0.01)).*z(k);
% la reconstruction de la séquence de 1024 échantillons;
yf=[ykf(1,:) ykf(2,:) ykf(3,:) ykf(4,:) ykf(5,:) ykf(6,:) ykf(7,:) ykf(8,:) ykf(9,:)
ykf(10,:) ykf(11,:) ykf(12,:) ykf(13,:) ykf(14,:) ykf(15,:) ykf(16,:) ykf(17,:)
ykf(18,:) ykf(19,:) ykf(20,:) ykf(21,:)
ykf(22,:) ykf(23,:) ykf(24,:) ykf(25,:) ykf(26,:) ykf(27,:) ykf(28,:) ykf(29,:)
ykf(30,:) ykf(31,:) ykf(32,:)];
% le calcul du nombre de bits utilisés pour la quantification;
Nc=N*nb'; end;
% le calcul du nombre de bits nécessaire pour le codage des plus grandes
valeurs de chaque bande;
B=sum(nb);
% le calcul du nombre de coefficients non nuls;
Nn=sum(N);
% le calcul de la transformée inverse;
z=ipt_cp(btree,yf,D,'Sine');
% le calcul du rapport signal à bruit à la sortie;
e=-x+z'; o=e.*e; Po=sum(o); rsb=10.*log10((Pi)/(Po));
% le calcul du facteur de compression du segment; le nombre de bits
nécessaire pour le codage des positions est 5Nn parce que c'est le codage de 32
positions (on a besoin de 5 bits suplémentaires pour coder une bande), 16 bits
sont utilisés pour le codage de l'arbre de la meilleure base;
138 La compression de la musique 5
fc=(1024.*16)./(Nc+Nn.*5+B+16);
% représentations graphiques;
figure(1); subplot(121); plot(x); title('s d'entr'); subplot(122); plot(z); title('s. rec');
figure (2); plotbasistree(btree,D,stree,'Sine'); title('arbre');
%save rez z -ascii;
Les instructions différentes contenues dans le programme 3 par rapport au
programme 2.1. ont été écrites en utilisant des caractères gras. Dans le tableau
suivant on présente les résultats obtenus.
No.
d' ordre
1
2
3
4
5
6
7
8
9
10
15
17
fc
rsz 0 [dB]
Observations
3.4183
4.7850
4.4692
2.5564
2.4813
3.2946
4.0716
4.0059
5.1506
3.8406
5.6672
2.9008
26.0701
28.8661
27.8201
25.4162
23.1911
26.8812
27.3254
26.9479
27.7076
27.4574
28.3064
21.5571
1 itération
0 itération
0 itération
1 itération
1 itération
1 itération
0 itération
0 itération
1 itération
0 itération
0 itération
0 itération
Tableau 1.5.3.2.3. Les résultats de la troisième expérience.
On constate que tous les facteurs de compression ont augmentés. Les
valeurs du rapport signal à bruit de sortie sont trop grandes encore (on peut
considérer que la compression est transparente si le rapport signal à bruit de sortie
est supérieur à 20 dB). Les facteurs de compression de chaque segment peuvent
être augmentés si on fait un choix adaptatif de la valeur de seuil, t, (tel que le
rapport signal à bruit de sortie soit d'environ de 20 dB pour chaque segment) et si
on utilise des méthodes performantes de codage des données. Il s'agit de trois
catégories de données : les valeurs des coefficients non nuls, les positions des
coefficients non nuls et l'arbre de la meilleure base. Pour chaque catégorie de
données on peut réaliser des codages (compressions sans pertes) performantes,
capables de faire descendre le nombre des bits nécessaire pour la représentation de
la catégorie respective. Par exemple, pour le cas de l'arbre de la meilleure base on
peut utiliser un codage run-lenght tenant compte du fait que cette séquence de
5.3.2.3. La troisième expérience 139
données contient des longues sous séquences de bits de valeur 0. Pour le codage
des valeurs des coefficients non nuls on pourrait utiliser un codage de Huffman ou
un codage arithmétique. La structure du bloc de données qui corresponde à un
certain segment inspirée par la méthode utilisée dans la troisième expérience est
présentée à la figure suivante.
Entête segment
Entête
bande 1
Valeurs
bande 1
Positions
bande 1
.
.
.
Entête
bande
32
Valeurs
Bande
32
Positions
bande
32
Figure 1.5.3.2.3. La structure du bloc de données qui corresponde à un certain segment,
inspirée par la troisième expérience
Dans l'entête du segment on a codé l'arbre de la meilleure base, puis la plus
grande valeur des coefficients appartenant au segment considéré. C'est le motif
pour lequel cet entête aura 22 bits (16 bits pour l'arbre de la meilleure base et 6 bits
pour la plus grande valeur). Dans les entêtes des bandes on a codé les plus grandes
valeurs des coefficients de ces bandes et le nombre des coefficients non nuls de
chaque bande. C'est le motif pour lequel ces entêtes ont une longueur de 11 bits.
Dans les blocs intitulés "Valeurs de la bande k" on a codé les valeurs des
coefficients non nuls de la bande numéro k, k = 1,32 . La longueur d'un tel bloc est
un multiple de 6. Dans les blocs intitulés "Positions de la bande k" on a codé les
positions des coefficients non nuls de la bande k. Chacune de ces positions a une
longueur de 5 bits. C'est le motif pour lequel la longueur d'un tel bloc doit être un
multiple de 5. Il faut remarquer qu'il y a plusieurs bandes qui contiennent des
coefficients nuls. Le bloc qui correspond à une telle bande contient seulement 14
bits, tous de valeur 0. Du fait de la présence de 14 zéros dans le groupe, on sait
qu'il s'agit d'une bande contenant seulement des coefficients nuls. Voilà pourquoi le
groupe de bits suivant est considéré comme un nouveau entête de bande (si l'entête
courant n'était pas celui avec le numéro 32) ou comme un nouveau entête de
segment. Dans la suite on présente la dernière expérience de ce chapitre, qui se
réfère au choix adaptatif du seuil, t.
5.3.2.4. La quatrième expérience
On utilise l'algorithme adaptatif de choix du seuil, présenté dans le chapitre
antérieur. Le programme spécifique pour cette expérience est le suivant.
140 La compression de la musique 5
Programme 4.
[s,fs,wmode,fidx]=readwav('problem.wav','y',-1,-1); x=s(1:1024);
%le calcul de la puissance du signal d'entrée; i=x.*x; Pi=sum(i);
%
l'analyse
en
paquets
de
cosinus
;
[n,D]=dyadlength(x);
cp=cpanalysis(x,D,'Sine');
%l'initialisation du seuil ; t=0.1.*sqrt(Pi./1024);
%le choix de la meilleure base; eps=t; stree=calcstattree(cp,'N(eps)',eps);
[btree,vtree]=bestbasis(stree,3);
%le calcul de la TPCD; coef=fpt_cp(btree,x,D,'Sine');
% la detection de seuil; y=hardthresh(coef,t);
% le calcul du rapport signal a bruit; e=-coef+y; o=e.*e; Po=sum(o);
% la sélection de la valeur optimale de seuil; rsz=10.*log10((Pi)./(Po)); while
(rsz>=20), t=t+t./10; eps=t;
stree=calcstattree(cp,'N(eps)',eps);[btree,vtree]=bestbasis(stree,3);coef=fpt_cp
(btree,x,D,'Sine');
y=hardthresh(coef,t); e=-coef+y; o=e.*e; Po=sum(o);
rsz=10.*log10((Pi)./(Po)); end;
ampl=max(y);
% la partition en 32 bandes; le calcul du nombre de niveaux de quantification en
chaque bande b(k); le calcul du nombre de bits nécessaire pour la représentation du
signal dans chaque bande nb(k); la quantification en chaque bande;
% la partition en 32 bandes: for k=1:1:32; yk(k,:)=y(32.*(k-1)+1:32.*k);
% la normalisation en chaque bande; la détection de la plus grande valeur dans
chaque bande; z(k)=max(abs(yk(k,:)));
%la quantification uniforme sur 6 bits de la plus grande valeur en chaque bande;
b(k)=round(z(k)./(ampl).*64);
% le calcul du nombre de bits nécessaire pour la quantification de la bande k;
nb(k)=round(log2(b(k)+1));
% la quantification uniforme sur 6 bits dans chaque bande;
ykc(k,:)=round((yk(k,:)./(z(k)+0.01)).*b(k));
% le calcul du nombre des coefficients non nuls de chaque bande;
N(k)=nnz(ykc(k,:));
% la de-normalisation dans chaque bande;
ykf(k,:)=(ykc(k,:)./(b(k)+0.01)).*z(k);
% la reconstruction de la séquence de 1024 échantillons;
yf=[ykf(1,:) ykf(2,:) ykf(3,:) ykf(4,:) ykf(5,:) ykf(6,:) ykf(7,:) ykf(8,:) ykf(9,:)
ykf(10,:) ykf(11,:) ykf(12,:) ykf(13,:) ykf(14,:) ykf(15,:) ykf(16,:) ykf(17,:)
ykf(18,:) ykf(19,:) ykf(20,:) ykf(21,:) ykf(22,:) ykf(23,:) ykf(24,:) ykf(25,:)
ykf(26,:) ykf(27,:) ykf(28,:) ykf(29,:) ykf(30,:) ykf(31,:) ykf(32,:)];
5.3.2.4. La quatrième expérience 141
% le calcul du nombre de bits utilisés pour la quantification; Nc=N*nb'; end;
% le calcul du nombre de bits nécessaire pour le codage des plus grandes valeurs
de chaque bande; B=sum(nb);
% le calcul du nombre de coefficients non nuls; Nn=sum(N);
% le calcul de la transformée inverse; z=ipt_cp(btree,yf,D,'Sine');
% le calcul du rapport signal à bruit du segment;
e=-x+z'; o=e.*e; Po=sum(o); rsb=10.*log10((Pi)./(Po));
% le calcul du facteur de compression sur segment; le nombre de bits nécessaires
pour le codage des positions est 5Nn parce que c'est le codage de 32 positions (c'est
le nombre total dans une bande) on a besoin de 5 bits, 16 bits sont utilisés pour le
codage de la meilleure base; fc=(1024.*16)./(Nc+Nn.*5+B+16);
% représentations graphiques; figure(1); subplot(121); plot(x); title('s d'entr');
subplot(122); plot(z); title('s. rec'); figure (2); plotbasistree(btree,D,stree,'Sine');
title('arbre');
%l'enregistrement du segment reconstruit; Celui-ci est enregistré en format ascii
dans le répertoire d\Matlab5\toolbox\Wavelab.
%save rez1 z -ascii;
Les résultats obtenus en utilisant ce programme sont présentés dans le
tableau suivant. Les 25 segments obtenus après la reconstruction (réalisée sur
chaque segment) ont été réunis en obtenant le signal reconstruit après la
compression. Sa forme d'onde est présentée à la figure suivante et peut être
comparée avec la forme d'onde du signal initial, présentée à la figure 5.1. Les deux
signaux, initial et reconstruit peuvent être écoutés aussi. Dans ce but deux fichiers
de type wav ont été créés. Après l'audition du signal reconstruit, on peut remarquer
que la méthode de compression proposée est transparente. En analysant le tableau
5.4.1. on constate que les valeurs obtenues pour les facteurs de compression et pour
les rapports signal à bruit de sortie pour chaque segment sont acceptables. Le plus
petit facteur de compression, 4,05, a été obtenu sur le segment no. 17 et le plus
grand facteur de compression, 18,3, sur le segment no. 15.
142 La compression de la musique 5
No.
d' ordre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
fc
rsz 0 [dB]
Observations
7.3968
15.9844
12.6615
4.4317
4.1145
7.8694
13.3856
12.7900
16.4333
11.3384
8.1189
6.1826
7.8168
12.6811
18.3061
7.4847
4.0534
18.0441
12.1094
8.3464
9.3303
14.1853
14.2099
14.8271
8.5289
19.4129
18.9756
18.9907
19.1134
18.8286
19.5280
19.4330
19.3277
19.6479
19.3460
19.5016
19.2819
19.5904
19.7608
19.7918
18.5319
16.3397
19.3680
19.8325
19.1047
19.7703
19.0936
18.1952
19.2795
17.4512
Bruit prépondérant. (3 itérations)
Sinus prépondérant. (0 itération)
Sinus prépondérant. (3 itérations)
Bruit prépondérant. (2 itérations)
Bruit prépondérant. (0 itération)
Sinus prépondérant. (2 itérations)
Sinus prépondérant. (0 itération)
Sinus prépondérant. (0 itération)
Sinus prépondérant. (2 itérations)
Sinus prépondérant. (2 itérations)
Sinus prépondérant. (2 itérations)
Bruit prépondérant. (3 itérations)
Sinus prépondérant. (2 itérations)
Bruit prépondérant. (0 itération)
Sinus prépondérant. (0 itérations)
Bruit prépondérant. (1 itération)
Bruit prépondérant. (0 itération)
Sinus prépondérant. (3 itérations)
Sinus prépondérant. (0 itération)
Bruit prépondérant. (0 itération)
2 itérations
1 itération
1 itération
1 itération
1 itération
Tableau 1.5.3.2.4. Les résultats de l'expérience numéro 4.
En analysant le dernier tableau on constate que des valeurs plus petites du facteur
de compression, entre 4 et 8, ont été obtenues sur les segments classifiés comme
bruit prépondérant. La répartition des rapports signal à bruit de sortie est
homogène. La plus petite valeur, 16,33 dB, a été obtenue pour le segment numéro
17 et la plus grande valeur, 19,83, a été enregistrée sur le segment numéro 19.
Toutes ces valeurs sont suffisamment grandes pour certifier une reconstruction de
qualité. La valeur moyenne du facteur de compression obtenue est de 10,82. C'est
une valeur suffisamment élevée tenant compte du fait qu'on n'a pas utilisé des
méthodes de compression sans pertes pour le codage de l'arbre de la meilleure base
5.3.2.4. La quatrième expérience 143
respectivement pour les valeurs et les positions des coefficients non nuls. On
suppose qu'en utilisant de telles techniques de codage aussi, la valeur du facteur de
compression moyen sera augmentée de 1,5 fois.
Figure 1.5.3.2.4. La forme d'onde du signal reconstruit.
Dans la suite on présente quelques conclusions. Il s'agit d'un schéma de
compression à pertes d'information contrôlées. Une telle méthode de compression
est appropriée pour le signal de parole parce que celui-ci est très redondant. Le
schéma proposé est spécifique pour un système de compression basé sur
l'utilisation d'une transformée orthogonale. Une telle transformée est utile parce
qu'elle réalise la décorrélation du signal à traiter, donnant la possibilité d'éliminer
des échantillons dans le domaine de la transformée, sans affecter dans une manière
significative le contenu informationnel du signal traité. Il y a d'autres
transformations, non orthogonales, qui peuvent réaliser la décorrélation mais ceuxci sont plus redondants, motif pour lequel ce genre de transformations a été évité
dans ce livre. Il y a plusieurs transformées orthogonales qui peuvent être utilisées
pour la compression du signal de parole. Celle qui réalise la plus forte décorrélation
est la transformée de Karhunen-Loève. Malheureusement il n'y a pas d'algorithmes
rapides pour le calcul de cette transformée. Dans ce livre on propose l'utilisation
des transformées orthogonales basées sur la théorie des ondelettes. Ce sont des
décompositions, du signal à traiter, en bases orthonormales dont les éléments sont
obtenus par la translation et le changement d'échelle d'une fonction unique,
nommée ondelette mère. L'avantage majeur de telles fonctions est qu'elles ont
simultanément une bonne localisation temporelle et fréquentielle. C'est le
144 Compression de la musique-5
motif pour lequel une telle décomposition, nommée série d'ondelettes, a un
nombre réduit de coefficients de valeurs significatives. La compression est réalisée
par la transmission ou l'enregistrement de ces coefficients à la place des
échantillons du signal à traiter. Les connaissances nécessaires de la théorie des
ondelettes ont été présentées au chapitre 2, en utilisant la perspective de la theorie
du codage en sous-bandes. Trois types de transformées orthogonales, basées sur la
théorie des ondelettes ont été analysées, la transformée en ondelettes discrète,
TOD, la transformée en paquets d'ondelettes discrète, TPOD et la transformée en
paquets de cosinus discrète, TPCD. L'effet de décorrélation de ces transformées a
été mis en évidence, en démontrant que toutes les trois transformées convergent
asymptotiquement vers la transformée de Karhunen-Loève. Du point de vue de la
vitesse de convergence le meilleur comportement est celui de la TPCD.
L'une des difficultés pour l'utilisation de la TOD ou de la TPOD est la
nécessité de sélectionner l'ondelette mère à utiliser. Un critère de sélection, utile
dans les applications de compression est présenté en [43].
L'utilisation de la TPCD a aussi l'avantage de pouvoir sélectionner la
meilleure base, en utilisant un critère utile pur la compression, la minimisation du
nombre des coefficients de la transformée supérieur à un certain seuil. En utilisant
le modèle sinusoïdal de la parole, dans le chapitre 2, il est suggéré que la plus
appropriée transformée orthogonale pour la compression de la parole, parmi les
transformées déjà analysées, est la TPCD.
Au chapitre 3 il a été présenté le détecteur de seuil du schéma de la figure
1.1.2.1. Il faut remarquer le caractère adaptatif du système de compression. On
propose un algorithme simple et assez rapide pour la simulation de ce bloc. On
présente une modalité d'initialisation du seuil, utile pour l'augmentation de la
vitesse de l'algorithme de simulation du système de compression proposé.
L'algorithme adaptatif proposé est basé sur la minimisation de l'erreur quadratique
moyenne d'approximation du signal à traiter par le signal reconstruit après la
compression.
Tenant compte du caractère orthogonal des transformées utilisées, on n'a pas besoin
de la reconstruction du signal après sa compression pour le calcul de l'erreur
d'approximation. L'erreur quadratique moyenne d'approximation peut être calculée
dans le domaine de la transformée, en utilisant le signal de sortie du bloc de calcul
de la transformée orthogonale et le signal de sortie du bloc de quantification. Le
critère de l'erreur quadratique moyenne n'est pas approprié pour l'appréciation
d'une méthode de traitement de la parole, mais sa simplicité le rend très utile. Peut
être que la conception de la solution de ce problème par la minimisation d'un autre
critère, basée sur le calcul d'une distance, construite en utilisant le modèle psychoacoustique de la parole, comme celui proposé en [87] serait intéressante. Le
chapitre 4 présente le système de quantification contenu
5.3.2.4. La quatrième expérience 145
dans le schéma présenté à la figure 1.1.2.1. Celui-ci est un système adaptatif, qui
fonctionne sur la base d'une variante simplifiée du modèle psycho-acoustique de la
parole. Sa construction exploite aussi l'utilisation de la TPCD dans le schéma de
compression choisie. L'utilisation de ce système a une contribution importante pour
l'augmentation du facteur de compression du système proposé. Le système de
quantification est très simple, pour chaque bande critique du signal de parole on
effectue une quantification uniforme sur 6 bits. Le pas de quantification est
diffèrent d'une bande critique à une autre bande critique, parce qu'en chaque bande
on réalise la normalisation par la plus grande valeur. C'est le motif pour lequel on
peut considéré, que sur l'ensemble, une quantification non uniforme est réalisée.
Celle-ci est adaptative aussi parce qu'on tient compte de la forme du signal à traiter
en considérant les plus grandes valeurs de chaque bande critique. Le système de
quantification peut être regardé comme un système de compression de la
dynamique du signal à traiter (comme par exemple les systèmes Dolby ou DNL) en
réalisant la même excursion pour chaque signal de chaque bande critique. Une
solution ressemblante est présentée en [88].
Le chapitre 5 est dédié à la simulation du système de compression présenté
dans les chapitres antérieurs. On présente plusieurs expériences de simulation, de
plus en plus compliquées. Dans la première expérience, la plus simple, les blocs de
la structure du système de compression ne sont pas adaptatifs. Apres la réalisation
de cette expérience on constate l'existence de deux types de segments de parole :
bruit prépondérant et sinus prépondérant. Pour le premier type le model sinusoïdal
de la parole n'est pas respecté. On remarque que pour les segments de type bruit
prépondérant on obtient des facteurs de compression plus petits. La deuxième
expérience utilise un premier bloc adaptatif. Il s'agit du bloc de calcul de la
transformée orthogonale. Dans la première expérience on a utilisé, en fait, la
transformée en cosinus discrète, DCT (si aucune itération n'est effectuée pour le
calcul de la TPCD alors on calcule la DCT). Dans la deuxième expérience on
calcule la TPCD, en utilisant l'algorithme de recherche de la meilleure base, qui
minimise la fonctionnelle de coût donnée par le nombre des coefficients supérieurs
à un seuil donné. La valeur de ce seuil est celle qui corresponde à la formule
d'initialisation proposée au chapitre 3. Il s'agit donc d'une transformée orthogonale
adaptative. La supériorité de la TPCD par rapport à la DCT est montrée par
l'augmentation des valeurs des facteurs de compression obtenus pour la deuxième
expérience. En utilisant la deuxième expérience on a aussi montré la nécessité de
limiter les nombres d'itérations de la TPCD. La troisième expérience est destinée à
l'étude d'un nouveau bloc adaptatif, celui de quantification. Les résultats de cette
expérience montrent que les valeurs des facteurs de compression obtenues sur
chaque segment augmentent beaucoup. En fin la quatrième expérience a comme
but la mise en évidence des avantages obtenus en utilisant un détecteur de seuil
146 Compression de la musique-5
adaptatif. On constate que l'utilisation d'un tel bloc augmente beaucoup les valeurs
des facteurs de compression sur chaque segment. Pour la réalisation de chaque
expérience un programme en Matlab a été écrit. Ces programmes ont été construits
sur une plate-forme commune, pour chaque nouvelle expérience quelques
nouvelles instructions sont ajoutées au programme antérieur. Ainsi le programme
obtenu pour la dernière expérience représente le programme final, celui qui réalise
la simulation de l'entier système adaptatif de compression. C'est le motif pour
lequel les conclusions de la quatrième expérience sont valables pour la méthode de
compression proposée. Ceux-ci sont :
- En utilisant la méthode de compression décrite on obtient un facteur de
compression moyen de 10,82, pour le signal à traiter considéré,
supérieur au facteur de compression réalisé par le codeur GSM qui est
égal à 8.
Le facteur de compression de la méthode proposée est encore plus
grand si pour le codage des données obtenues, contenues dans l'arbre
de la meilleure base et dans les valeurs et les positions des coefficients
non nuls obtenus, on utilise des méthodes de codage performantes,
comme par exemple le codage run-enght ou le codage arithmétique.
Pour tous les calculs de facteur de compression effectués dans ce
rapport le codage du canal de télécommunications n'a pas été
considéré. C'est une opération redondante qui diminue la valeur du
facteur de compression global. On a procédé ainsi pour deux raisons :
- dans le cas des standards de compression de la parole déjà publiés,
comme par exemple le GSM ou le MPEG, on ne prend pas en
compte le codage du canal pour le calcul du facteur de
compression;
- il y a des applications de la méthode de compression de la parole
proposée ici, où le codage du canal n'est pas nécessaire, par
exemple l'enregistrement d'une transmission téléphonique ou la
telephonie sur INTERNET (dans ce cas-ci on peut considérer un
canal sans bruit).
En utilisant l'analyse statistique présentée on constate que la méthode de
compression proposée dans ce rapport est robuste.
La méthode proposée assure une bonne qualité de la reconstruction (sur
chaque segment on obtient un rapport signal à bruit supérieur à 16 dB et la valeur
moyenne du rapport signal à bruit pour l'entier signal est superieure à 19 dB), motif
pour lequel on peut dire que la méthode de compression est transparente. Il faut
mentionner que la méthode de compression utilisée dans le standard GSM,
5.3.2.4. La quatrième expérience 147
évoqué plus haut, ne fait aucune estimation de la qualité de la reconstruction. En
écoutant le signal reconstruit on constate que le bruit qui perturbe la composante
utile du signal à traiter a été pratiquement entièrement éliminé.
Le fait que les valeurs des coefficients non nuls aient été quantifiés
seulement sur 6 bits est remarquable;
-
-
La méthode de compression proposée est assez rapide, tenant compte
du fait que le nombre de multiplications nécessaire n'est pas exagéré.
Par exemple le calcul de la TPCD d'une séquence nécessite le même
nombre de multiplications que le calcul de la transformée de Fourier
rapide, FFT, de la même séquence.
C'est le motif pour lequel on pourrait implanter cette méthode de
compression de la parole sur un processeur de signal;
-
Le programme numéro 4 devrait être modifié, tel que sur chaque
segment sera résolu le problème aux bords, qui donnent le caractère
saccadé du signal reconstruit;
-
Une possibilité d'augmentation du facteur de compression serait la
combinaison de la méthode de compression basée sur la théorie des
ondelettes avec la méthode de compression basée sur la prédiction
linéaire, qui se trouve dans le standard GSM. Les segments de type
sinus prépondérant pourraient être traités avec la méthode basée sur la
théorie des ondelettes et les segments de type bruit prépondérant
pourraient être traités avec la méthode basée sur la prédiction linéaire.
-
Pour la méthode de compression de la parole présentée il y a plusieurs
applications. Elle pourrait être utilisée pour la telephonie fixe ou
mobile.
Des nouveaux types de robots téléphoniques pourraient être construits
en utilisant cette nouvelle méthode de compression.
-
148 Compression de la musique-5
-
La méthode de compression de la parole proposée dans ce rapport
pourrait être utilisée aussi pour la telephonie sur INTERNET ou pour
la construction des modems haut débit, [89].
Chapitre 6. La compression d’images
C’est la plus complexe technique de compression. Il y a une grande variété
de formats d’images et on a un très grand nombre d’applications qui demandent le
stockage ou la transmission des images. Ceux-ci représentent aussi des signaux
redondants. Une technique très importante dans le cadre du traitement des images
est leur modélisation. Malheureusement les modelés de production et de perception
des images sont très compliqués. En fait ces modelés sont plus compliqués que les
modelés utilisés pour les signaux de parole. C’est le motif pour lequel les modelés
de production s’utilisent seulement pour indiquer les techniques de traitement
d’images le plus appropriées et non pour le codage des images. En ce qui concerne
les modelés de perception, comme par exemple celui présenté dans [63], ce sont
déjà utilisés pour la quantification des images. L’un de plus utile modèle de
l’image est celui de Marr et Hildreth [90], qui permet l’utilisation des équations à
dérivées partielles en traitement d’images. Il y a des techniques de compression
d’images sans pertes, on utilise les méthodes de codage déjà présentées. On utilise
ce genre de compression par exemple pour les images satelitaires, [91].
Le plus souvent on utilise les techniques de compression à pertes.
Généralement on utilise les techniques basées sur les transformées orthogonales
(comme celle présentée au paragraphe 3.2.1). La transformée utilisée le plus
souvent est la transformée en cosinus discrète (DCT).
6.1. La compression d’images fixes
Il y a un standard pour la compression d’images fixes, appelé JPEG (Joint
Photographic Experts Group). Ce standard est appelé aussi IS 10918-1 (ITU-T
T.81). On présente dans la suite le compresseur JPEG pour les images binaires. La
compression des images en couleurs se fait pareille. Le compresseur JPEG est
présenté dans la figure suivante. Après la décomposition de l’image à traiter en
blocs (de 8× 8 pixels) on calcule la DCT de chaque bloc. Les coefficients obtenus
sont quantifiés en utilisant une certaine matrice de quantification. Cette opération
est responsable pour la perte d’information mais aussi pour la valeur élevée du
facteur de compression qu’on obtient en utilisant cette méthode de compression.
Après la quantification on réalise un codage sans pertes. A la fin, un fichier
contenant les données obtenues après la compression est formé. Celui-ci a la
terminaison .jpg. Pour la reconstruction de l’image traitée on applique la
transformée en cosinus discrète inverse.
Image
d’entrée
Partage
en
blocs
D.C.T
Quantifi
cation
Codage
binaire
Figure 1.6.1. Le système de compression JPEG.
Fichier
.jpg
150 La compression d’images - 6
La transformée DCT réalise un codage en sous-bandes des blocs. Elle est
décrite par la formule:
B(k 1 , k 2 ) =
N1 −1 N 2 −1
∑ ∑
i =0
j= 0
 π ⋅ k1



(2 ⋅ i + 1) ⋅ cos  π ⋅ k 2 (2 ⋅ j + 1)
4 ⋅ A(i, j) ⋅ cos 
 2 ⋅ N1

2 ⋅ N2

(6.1)
L’image d’entrée est une matrice de dimensions N 1 × N 2 ; A(i,j) représente
l’intensité du pixel qui se trouve dans la ligne i et dans la colonne j. B(k1,k2) est le
coefficient de la DCT qui se trouve dans la ligne k1 et dans la colonne k2. La
matrice d’entre (A(i, j))i =1,8 j=1,8 contient le niveau de gris pour chacun pixel de
l’image à l’entrée, décrit sur 8 bits. La matrice de sortie contient des entiers
compris dans l’intervalle: [-1024, 1023].
Pour la grande majorité d’images, la plus grande partie de l’énergie se
trouve aux fréquences basses, qui correspondent au coin de gauche-haut de la DCT.
Les valeurs qui se trouvent dans le coin droite-bas sont en général petites et
peuvent être négligées sans distorsions visibles.
Il y a un compromis entre la qualité de l’image reconstruite après la
compression et le dégrée de sa quantification. Un pas de quantification trop élevé
peut produire une distorsion de l’image trop importante. Malheureusement une
quantification trop fine conduit à un facteur de compression trop petit. Le problème
est la quantification optimale des coefficients DCT. Tenant compte de la structure
de l’œil les hautes fréquences sont moins importantes. C’est le motif pour le quel
on peut utiliser un pas de quantification plus élevé pour les coefficients de haute
fréquence. Apres la quantification généralement plus d’une moitié des coefficients
DCT sont égal a zéro. On exploite cet avantage en faisant un codage run-lenght
après la quantification. Pour chaque coefficient DCT non nulle, le système de
compression JPEG fait une enregistration du nombre des zéros qui précède ce
6.1. - La compression d’images fixes 151
coefficient, du nombre de bits nécessaire pour la représentation de la valeur du
coefficient et de la valeur du coefficient. Les coefficients DCT sont balayés en
zigzag comme le montre la figure suivante:
La
matrice
DCT
(0,0)
(0,1)
(1,0)
(1,1)
La sequence continue
pour l’entier bloc de
8× 8 pixels.
Figure 2.6.1. Le balayage des coefficients DCT.
Le nombre des zéros antérieurs et le nombre de bits nécessaire pour la
quantification d’un coefficient forment une paire. Chaque pair a son mot de code
correspondent, obtenu en appliquant un codage à longueur variable (comme par
exemple le codage de Huffman ou le codage arithmétique). Le système de
compression JPEG met à la sortie le mot de code de la paire et après le mot de code
pour la valeur du coefficient (obtenu aussi en utilisant un codage à longueur
variable). Après chaque bloc le système de compression JPEG met à la sortie une
séquence unique qui indique la fin du bloc et après passe au bloc suivant. Quand
tous les blocs sont finis le système de compression JPEG met à la sortie le
marquage pour la fin du fichier.
La matrice de quantification est une matrice de dimensions 8× 8 pixels.
Chacun de ses éléments correspond à un coefficient DCT. Elle contient les pas de
quantification utilisés pour la quantification des coefficients DCT. Généralement
c’est une matrice symétrique. Les pas de quantification sont petits pour les
coefficients qui se trouvent dans le coin gauche-haut de la matrice des coefficients
(qui correspondent aux fréquences basses) et grands pour les coefficients qui se
trouvent dans le coin bas-droite.
Comme résultat beaucoup des coefficients de haute fréquence sont mis à
zéro, faisant le codage plus facile et le facteur de compression plus grand.
Donc la matrice de quantification est responsable pour le caractère perceptif du
système de compression JPEG. La compression JPEG des images en couleurs est
152 La compression d’images - 6
présentée en [92]. Il y a aussi une modalité de transmission progressive de l’image
JPEG qui se base sur une certaine organisation des coefficients DCT. C’est le
système de compression JPEG progressif. Celui-ci peut être configuré d’une
manière hiérarchique. On obtient le système de compression JPEG hiérarchique,
[92].
Comme nous avons déjà montré la transformée en ondelettes est supérieure
à la DCT pour des applications de compression.
En fait la transformée en ondelettes a un très grand avantage, elle peut
séparer en quelques-unes sous-images les détails de l’image qui sera traitée. Ainsi
on peut traiter d’une manière différente ces détails en contrôlant la distorsion
introduite par la compression. En effet on peut garder seulement les détails qui ont
une certaine importance pour l’image à traiter. On dit qu’on peut choisir la
résolution de représentation de l’image originale par l’image reconstruite après la
compression basée sur la transformée en ondelettes discrète. En fait la transformée
en ondelettes discrète est basée sur une analyse multirésolution. Dans son
“tutorial”, [93], Albert Cohen présente les stratégies de codage des coefficients
obtenus par l’application de la transformée en ondelettes. La meilleure méthode de
quantification pour ces coefficients est la quantification vectorielle. Une autre
approche suppose, l’utilisation d’un détecteur de seuil avant la quantification. Tous
les coefficients de la transformée orthogonale sont comparés avec un seuil et les
coefficients dont la valeur est inférieure à ce seuil sont mis à zéro. Seulement les
coefficients non nuls sont codés. Il faut coder aussi leur position. On obtient des
résultats supérieurs pour une telle compression si on utilise la transformée en
ondelettes en comparaison avec l’utilisation de la DCT. Cette conclusion est
prouvée, par quelques exemples, dans la boite à outils WaveLab du logiciel
Matlab, [94], [95], [96]. Parmi les premiers travaux dédiés à la compression
d’images basée sur la transformée en ondelettes il faut mentionner [21] et [97]. Ce
dernier travail pose le problème du choix de la meilleure ondelette mère qui peut
être utilisée pour la compression d’une certaine image. En effet la transformée en
ondelettes est plus versatile que la DCT. Pour chaque ondelette mère il y a une
transformée en ondelettes différente (la transformée est paramètrée par l’ondelette
mère). Il est donc légitime de choisir la meilleure ondelette mère pour la
compression d’une certaine image. En fait il y a quelques paramètres pour la
transformée en ondelettes:
„ l’ondelette mère,
„ le nombre d’itérations utilisées pour le calcul de la transformée en
ondelettes,
„ la solution du problème aux bords choisie.
6.1. - La compression d’images fixes 153
On peut optimiser la compression par rapport à chacun un de ces
paramètres.
Il faut ajouter que la transformée en ondelettes est un choix très favorable
en ce qui concerne le volume de calcul et la vitesse de calcul. L’algorithme pour le
calcul de la transformée en ondelettes est plus rapide que l’algorithme de la DCT
ou de la transformée de Fourier discrète (l’algorithme FFT).
Les ondelettes sont utilisées pour la compression d’images satelitaires
aussi, [98], [99], [100]. On a été élaborée une méthode de compression progressive
basée sur les ondelettes, favorable pour les images de type METEOSAT, [101].
Des travaux plus récents ont montrés la supériorité des ondelettes
biorthogonales, [102].
Une autre source d’augmentation des performances des méthodes de
compression basées sur la théorie des ondelettes est la possibilité d’exploitation des
corrélations qui existe entre les sous images de différentes résolutions d’une
analyse multirésolution. On peut faire ça surtout quand les valeurs des coefficients
et leurs positions sont codées séparément. L’augmentation du facteur de
compression peut être réalisée par le codage plus efficient des positions. On peut
faire la prédiction des positions des coefficients non nuls à une certaine résolution
en utilisant les positions des coefficients non nuls à une autre résolution, [103]. La
localisation des coefficients de détail non nuls (supérieurs à un certain seuil) peut
être représentée par une image binaire, appelée “signifiant map”. Une telle image
peut être construite pour chaque image de détail d’une certaine résolution obtenue
dans une certaine itération d’une transformée en ondelettes. On peut faire la
prédiction d’une telle image à l’aide d’autres images de même type (obtenues dans
les itérations antérieures). Cette prédiction peut être faite à l’aide de la morphologie
mathématique, technique très bien présentée en [104]. Le processus de prédiction
proposé en [103] s’appelle MRWD (Morphological Representation of Wavelet
Data). Le problème du codage des coefficients d’une transformée orthogonale fait
l’objet de la thèse de doctorat, [105], aussi. En fait la grande majorité des méthodes
de compression présentées déjà font le codage de la source. Donc elles doivent être
suivies par des techniques de codage de la voie de transmission. Cette opération
fait baisser le facteur de compression global. Voilà pourquoi en [105] sont traitées
des méthodes de compression mixte qui font en même temps le codage de la source
et le codage de la voie de transmission.
Les paquets d’ondelettes ont été introduits par Wickerhauser, [11].
Ceux-ci représentent aussi des outils très appropriés pour la compression des
images. Leur grand avantage provient du fait qu’ils permettent l’application d’une
procédure de sélection de la meilleure ondelette mère à chaque itération de la
transformée en paquets d’ondelettes. Ce choix est basé sur un critère
d’optimisation, par exemple la minimisation de l’entropie, [11]. La sélection de la
meilleure ondelette mère (la meilleure base) est une opération qui demande un
certain volume de calcul. La vitesse de calcul d’une transformée en paquets
d’ondelettes est comparable à la vitesse de calcul de l’algorithme de la transformée
154 La compression d’images - 6
de Fourier rapide (FFT). Un critère diffèrent est présenté en [106] et [107]. Il
s’agit d’une nouvelle méthode de sélection de la meilleure base qui a une
complexité de calcul réduite. Cette méthode s’appelle CCBB (complexity
constrained best basis algorithm). Cet algorithme fait la construction itérative d’une
collection de bases de paquets d’ondelettes en faisant l’extension d’une collection
de bases donnée en accord avec la distribution énergétique de la représentation en
paquets d’ondelettes de l’image à traiter. Cette construction itérative prend fin
quand une mesure de complexité du calcul subit une condition spécifiée.
La méthode de codage des coefficients présentée en [103] a été généralisée
pour le cas des paquets d’ondelettes en [108].
Ces avantages de l’utilisation de la théorie des ondelettes pour la
compression des images fixes ont conduit à la conception d’un nouveau standard
appelé JPEG-2000.
6.1.1. Le standard JPEG-2000
L’initiative JPEG-2000 est démarrée pour la réalisation d’un nouveau
système de codage en utilisant les meilleures techniques de compression basées sur
la théorie des ondelettes. Son architecture est choisie pour pouvoir utiliser ce
système dans un grand nombre d’applications: en partant de la construction des
cameras vidéo portables jusqu’aux appareils utilisés en medecine. On a 6 parties
pour ce standard. La première partie (le noyau du standard) doit être approuvée par
ISO comme standard international à la fin de cette année. Les parties sont:
Première partie: Le système de codage d’images JPEG-2000;
Deuxième partie: Extensions;
Troisième partie: Mouvement JPEG-2000;
Quatrième partie: Conformité;
Cinquième partie: Logiciel de référence (programmes en Java et en C)
Sixième partie: le format du fichier d’image.
Apres la réunion du groupe JPEG organisée à Mauï en décembre 1999 on nous a
été proposée la première version du standard JPEG-2000. Cette version conduira au
standard international ISO, IS 15444, Première partie. Celui-ci sera aussi une
recommandation de ITU-T, T.8000. Les textes des documents de JPEG sont et
seront disponibles à l’adresse: http://www.jpeg.org/
Ce standard introduit quelques nouvelles facilités:
„ la qualité de l’image transmise peut varier entre la qualité spécifique à une
compression à pertes et la qualité spécifique pour une compression sans pertes;
6.1.1. - Le standard JPEG-2000 155
„
la possibilité de définir des régions importantes dans une image et de coder ces
régions à haute résolution ou sans pertes pour préserver les détails dans ces
régions;
„
l’utilisation des “markers” pour la re-syncronisation de la transmission quand
la voie de transmission est très bruitée;
„
une bonne qualité de l’image reconstruite aux débits égaux ou inférieurs à 0,1
bits/pixel;
„
la possibilité de protéger la propriété intellectuelle des auteurs des images par
“watermarking”.
Le principe du système de compression JPEG-2000 est présenté en [109].
Ce système est très flexible, il permet non seulement la compression mais aussi
l’accès aux données obtenues après la compression.
La structure de la suite des codes générée par ce système de compression
permet la localisation et l’extraction des données pour différents buts:
retransmission, stockage, ou édition. Cet accès permet la récupération des données
appropriées pour une certaine application sans décodage.
Le partage de la suite de données originales et de la suite des données
obtenues après compression, de quelques manières différentes, permet l’extraction
des données de la suite des codes pour former une image reconstruite de résolution
réduite ou de débit réduit ou contenant des régions de l’image originale. La suite
des codes spécifique pour ce standard contient trois domaines: le domaine spatial
(qui contient les échantillons de l’image à comprimer) le domaine transformé (qui
contient les coefficients de la transformée en ondelettes) et le domaine codé (qui
contient des codes).
Ce standard utilise une famille d’objets. Il y a des objets qui se trouvent
dans tous les trois domaines de la suite des codes déjà mentionnés et des objets
spécifiques pour l’un de trois domaines. Les procédures principales de ce standard
sont présentées dans la figure suivante.
156 La compression d’images - 6
La syntaxe de la suite des codes
L’ordre
des
données
Codage
arithmetique
Le modèle
de bits pour
coefficients
Quantification
Transformée
Transformée
de la
composante
continue
Region d’interet
Figure 1.6.1.1. Les procédures du standard JPEG-2000.
L’image à traiter peut être partagée en rectangles. Chaque rectangle peut
être traité indépendant. Les rectangles sont décomposés à différents niveaux, en
différentes sous-images de différentes résolutions, en utilisant une transformée en
ondelettes discrète. On utilise des ondelettes biorthogonales. On utilise les paires
d’ondelettes mère Daubechies 9/7 et Daubechies 5/3. La transformée en ondelettes
est calculée en utilisant l’algorithme appelé “lifting scheme”. A chaque niveau on a
quatre images appelées sous-bandes qui contient les coefficients de la transformée
en ondelettes correspondant au niveau de décomposition choisi. Le nombre des
coefficients est égal avec le nombre des échantillons de l’image à traiter mais leur
grande majorité ont des valeurs absolues très petites. Donc on peut dire que
l’information contenue dans l’image originale est concentrée dans un nombre
réduit de coefficients. Par la quantification des coefficients l’information contenue
dans un grand nombre de coefficients de valeur absolue petite est encore réduite.
Le signal de la sortie du quantificateur est codé en utilisant un codeur entropique
pour réduire le nombre de bits nécessaires pour la représentation des coefficients
quantifiés.
Les sous-bandes individuelles d’un niveau de décomposition sont
partagées de nouveau en “code-bloks”. Ce sont des régions rectangulaires de
coefficients qui peuvent être extraites indépendamment. Les plans de bits de
chaque “code-block” sont codés en trois pas. En chaque pas de codage sont
collectées des informations contextuelles sur le plan de bits correspondent. Un
codeur arithmétique utilise cette information contextuelle pour décoder une suite de
bits. Différentes méthodes terminales réalisent différents niveaux d’extraction
indépendante des données
6.1.1. - Le standard JPEG-2000 157
codées en utilisant ces trois pas. La suite de bits obtenue par ce codage en trois pas
est partagée en couches. L’utilisation de chaque couche nouvelle contribue à
l’augmentation de la qualité de l’image reconstruite.
Les paquets sont des unités fondamentales de la suite de codes. Un paquet
est une partition particulière d’une couche d’un niveau de décomposition d’un
rectangle. Cette partition conduit à une nouvelle méthode d’extraction
indépendante d’une certaine région de l’image originelle. Les paquets peuvent être
mêlés dans la suite de codes en utilisant quelques méthodes différentes. Le système
de compression JPEG-2000 est prévu avec la possibilité de détection des erreurs de
transmission, si on utilise des voies de communications bruitées. Les données
obtenues après la compression d’un rectangle, organisées en paquets, sont
arrangées en un ou plusieurs parties de rectangle. Un “header” de partie de
rectangle contient une série d’éléments de marquage ou de segments d’éléments de
marquage. Chacun de ceux-ci contient de l’information sur les mécanismes ou les
styles de codage, nécessaire pour la localisation, l’extraction, le décodage et la
reconstruction de chaque partie de rectangle. Au commencement de l’entière suite
de codes se trouve un “header” principal, qui contient des éléments de marquage et
des segments d’éléments de marquage, qui offrent des informations similaires et
des informations sur l’image originelle.
La suite de codes peut être sauvée dans un fichier dont la structure est
décrite en [109].
Le premier bloc de la figure 1.6.1.1, appelé “L’ordre des
données” réalise le partage de données en rectangles et sous-bandes. Le deuxième
bloc, appelé “codage arithmétique” assure le codage et le décodage en trois pas des
plans de bits de chaque “code-block”. Le troisième bloc de la figure 1.6.1.1, appelé
“Le modèle de bits pour coefficients” a le rôle d’organiser la suite de bits des sousbandes en plans de bits, “code-blocks” et structures correspondant à chaque pas de
codage. Pour chaque plan de bits d’un “code-block” un balayage spécial est utilisé
dans chacun des pas de codage. Chaque bit de coefficient de chaque plan de bits
d’un “code-block” est codé une seule fois parmi le trois pas de codage. Les pas de
codage sont appelés: propagation significative, raffinement de la magnitude et
éclairage. Le quatrième bloc, appelé “Quantification” fait la quantification et
l’opération inverse. Il s’agit d’une quantification scalaire non-uniforme dont la loi
se base sur la statistique de l’image à comprimer. Le fonctionnement du cinquième
bloc de la figure, appelé “Transformée”, qui calcule la transformée en ondelettes
des rectangles a été déjà brièvement décrit. Le dernier bloc de la figure 1.6.1.1
appelé “Transformée de la composante continue” a le rôle de convertir les valeurs
obtenues après décodage dans le format des échantillons de l’image originelle. Le
bloc appelé “Région d’intérêt” sélectionne de telles régions. Les codes de ceux-ci
se trouvent avant les codes des régions qui représentent le reste de l’image
(appelées fond) dans la suite de codes. La méthode de sélection des régions
d’intérêt s’appelle MaxShift. P.a.
L’importance du standard JPEG-2000 pour la vie scientifique de la communauté
des chercheurs de la théorie des ondelettes est prouvée par le fait que Yves Meyer,
158 La compression d’images - 6
l’un de parents de cette théorie, a présenté, cette année, à une conférence
internationale, organisée à Perpignan, un article sur ce standard, [80].
6.2.
La compression des séquences d’images
La standardisation des systèmes de compression des séquences d’images
est réalisée par un autre groupe appelé MPEG (Moving Pictures Experts Group).
Celui-ci a élaboré déjà deux standards: MPEG-1 et MPEG-2 et est en train
d’élaborer un nouveau standard MPEG-4. On fera dans la suite une présentation
succincte de ceux standards.
6.2.1. Le standard de compression MPEG-1
Ce standard contient 5 parties:
ISO/IEC 11172-1:1993 Technologie de l’information – Le codage de séquence
d’images et des signaux audio associés pour environnement de stockage numérique
à un débit supérieur à 1,5 Mbits/s—Première partie: Systèmes
ISO/IEC 11172-2:1993 Technologie de l’information – Le codage de séquence
d’images et des signaux audio associés pour environnement de stockage numérique
à un débit supérieur à 1,5 Mbits/s—Deuxième partie: Vidéo
ISO/IEC 11172-3:1993 Technologie de l’information – Le codage de séquence
d’images et des signaux audio associés pour environnement de stockage numérique
à un débit supérieur à 1,5 Mbits/s – Troisième partie: Audio
ISO/IEC 11172-4:1995 Technologie de l’information – Le codage de séquence
d’images et des signaux audio associés pour environnement de stockage numérique
à un débit supérieur à 1,5 Mbits/s – Quatrième partie: Méthodes de test
ISO/IEC TR 11172-5 Technologie de l’information – Le codage de séquence
d’images et des signaux audio associés pour environnement de stockage numérique
à un débit supérieur à 1,5 Mbits/s Cinquième partie: Logiciel de simulation.
La première partie analyse les possibilités de combinaison de plusieurs
suites de données provenues de parties vidéo et audio du standard MPEG-1 avec
l’information de temps pour la réalisation d’une seule suite comme est montré à la
figure 1.6.2.1.
6.2.1. - Le standard de compression MPEG-1 159
Suite ISO 11172
Decodeur
specifique
pour
l’environeEnvironement
ment
de stockage
numerique
Decodeur
de systeme
ISO/IEC 11172
Audio
Controle
d’horologe
ISO/IEC 11172
Video
Decodeur
audio
Audio
decodé
.
.
.
Decodeur
video
Video
decodé
Figure 1.6.2.1. La combinaison des suites de données. Le décodeur ISO/IEC prototype.
C’est une fonction très importante parce que la combinaison des données
dans une seule suite conduit à une forme plus appropriée des données pour le
stockage ou pour la transmission numérique.
La deuxième partie spécifie une représentation codée qui peut être utilisée
pour la compression des séquences vidéo (pour les systèmes à 625 lignes et aussi
pour les systèmes à 525 lignes) à un débit autour de 1,5 Mbits/s.
On utilise quelques opérations pour obtenir un facteur de compression
grand. La première opération est la sélection d’une résolution spatiale appropriée
pour le signal à traiter. Puis l’algorithme utilise une méthode de compensation du
mouvement basée sur blocs, pour réduire la redondance temporelle. La
compensation du mouvement est utilisée pour la prédiction causale de l’image
actuelle à l’aide d’une image antérieure, pour la prédiction non-causale de l’image
actuelle à l’aide d’une image prochaine ou pour la prédiction interpolatrice de
l’image actuelle basée sur des images antérieures et prochaines. Le signal de
différence, l’erreur de prédiction est comprimée de nouveau en utilisant la DCT
160 La compression d’images - 6
pour éliminer les corrélations spatiales et puis est quantifiée. Finalement les
vecteurs de mouvement sont combinés avec l’information de la DCT et le résultat
est codé en utilisant des codes à longueurs variables. La figure suivante illustre une
combinaison possible de trois types d’images qui sont utilisées dans le standard.
Figure 2.6.2.1. Exemple de la structure temporelle des images.
La troisième partie spécifie une représentation codée qui peut être utilisée
pour la compression des séquences audio (mono ou stéréo). L’algorithme est
présenté à la figure 3.6.2.1. Les échantillons du signal audio d’entrée sont dirigés
vers l’entrée du codeur. Le premier bloc de celui-ci réalise une opération appelée
“maping”. Il s’agit d’un filtrage et d’un souséchantillonnage du signal audio. Le
deuxième bloc realise la quantification et le codage. On utilise un modèle psychoacoustique pour faire ces opérations. Il y a un bloc spécial pour le modèle psychoacoustique. Celui-ci realise aussi l’analyse spectrale du signal qui sera quantifié.
A la sortie du codeur on obtient un ensemble de symboles de code. Le dernier bloc
du codeur audio, appelé “frame packing”, organise les données obtenues à la sortie
des différents autres blocs et ajoute des informations supplémentaires (par exemple
celle pour la correction des erreurs) si c’est nécessaire.
6.2.1. - Le standard de compression MPEG-1 161
Figure 3.6.2.1. Structure de base du codeur audio.
La quatrième partie spécifie comment on peut concevoir les tests pour la
vérification des performances imposées dans les premières trois parties du standard
MPEG-1.
Ces tests peuvent être utilisés par les fabriquants de codeurs et leurs clients
pour vérifier si:
- les codeurs produisent des suites de bits valides,
- les codeurs ont les performances spécifiées dans les premières trois
parties du standard,
- les caractéristiques d’une suite de données respectent les conditions
d’application demandées, par exemple si les dimensions d’une image codée ne sont
plus grandes que les valeurs imposées pour une certaine application.
La cinquième partie est un rapport technique et donne un logiciel pour la
simulation des systèmes présentés dans les premières trois parties du standard.
6.2.2 Le standard de compression MPEG-2
Ce standard contient neuf parties. Les trois premières parties sont déjà des
standards internationaux, les autres sont en train d’obtenir cette qualité.
Quelques parties du standard sont les suivantes:
162 La compression d’images - 6
ISO/IEC DIS 13818-1 Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: Systèmes; ISO/IEC DIS
13818-2 Technologie de l’information—Le codage générique des images en
mouvement et de l’information audio associée: Vidéo:
ISO/IEC 13818-3:1995: Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: Audio
ISO/IEC DIS 13818-4 Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: Tests;
ISO/IEC DTR 13818-5 Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: Logiciel de simulation
ISO/IEC IS 13818-6 Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: logiciel de simulation qui
fait l’extension pour le système DSM-CC;
ISO/IEC IS 13818-9 : Technologie de l’information—Le codage générique des
images en mouvement et de l’information audio associée: Extension pour les
interfaces a temps réel pour les systèmes de décodage.
La première partie du standard MPEG-2 présente les méthodes de fusion
des suites de données élémentaires, comme par exemple les suites de données
vidéo, les suites de données audio ou les suites d’autres types de données, en
nouvelles suites de données qui sont mieux organisées pour le stockage ou pour la
transmission. Il y a deux formes: la suite programme et la suite transport. Chaque
forme est optimisée pour un ensemble particulier d’applications. Un modèle est
présenté à la figure suivante.
6.2.2. - Le standard de compression MPEG-2 163
Données
vidéo
Données
audio
Codeur
vidéo
Video
Packetizer PS
Codeur
audio
Audio
PS
Mux
Packetizer
Suite
PS
Suite
TS
Mux
Specification de sytemes
Figure 1.6.2.2. Modèle pour les systèmes MPEG-2.
La suite programme est similaire à celle du standard MPEG-1 (Systems
Multiplex). Cette suite résulte de la fusion d’un ou plusieurs suites en paquets
élémentaires Packetised Elementary Streams (PES), qui ont une base de temps
commune dans une seule suite. La suite programme est désignée pour être utilisée
en environnements relativement non bruités et est appropriée pour des applications
qui demande des traitements logiciels. Les paquets de la suite programme peuvent
être d’une longueur relativement grande.
La suite transportée fait la fusion d’une ou plusieurs suites en paquets
élémentaires, qui ont une base de temps commune ou plusieurs bases de temps
indépendantes, dans une seule suite. Les suites élémentaires qui utilisent la même
base de temps forment un programme. La suite transportée est désignée pour être
utilisée dans des environnements bruités. La longueur des paquets de la suite
transportée est de 188 octets.
La deuxième partie du MPEG-2 est construite sur les performances de
compression vidéo du standard MPEG-1 pour offrir une gamme large d’outils de
164 La compression d’images - 6
codage. Ceux-ci ont été groupés par profiles pour offrir des fonctionnalités
différentes. Seulement les combinaisons marquées par "X" dans le tableau suivant
sont reconnues par le standard.
Le
profile
simple
Le
profile
moyen
Le
profile
“SNR
scalable”
niveau
X
haut
niveau
haut
X
1440
niveau
X
X
X
moyen
niveau
X
X
bas
Tableau 1.6.2.2. Profiles vidéo MPEG-2.
Le
profile
“Spatial
scalable”
Le
profil
e haut
Le profile
”Multiview
”
Le profile à
résolution
des couleurs
4:2:2
X
X
X
X
X
X
Le profile à résolution des couleurs 4:2:2 a été approuvé en janvier 1996.
Le profile “Multiview” (MVP) est un profile additionnel. En utilisant les
outils de codage vidéo MPEG-2 qui existent déjà, il est possible de coder
efficacement deux séquences vidéo obtenues de deux cameras dont les axes font un
angle petit, fixées sur la même scène.
Les expériences réalisées par le groupe MPEG ont montré que les codeurs
vidéo MPEG-2 ont des performances similaires ou supérieures aux codeurs
désignés pour les applications haut-débit ou de studio.
La troisième partie du standard MPEG-2 est une extension à plusieurs voies du
standard audio MPEG-1.
Les parties 4 et 5 du MPEG-2 correspondent aux parties 4 et 5 du standard
MPEG-1. La partie 6 du standard MPEG-2, appelée: Environnement de stockage
numérique, Commande et Contrôle ( Digital Storage Media Command and
Control) (DSM-CC) est la spécification d’un ensemble de protocoles qui réalisent
les fonctions de contrôle et les opérations spécifiques pour le management des
suites de données MPEG-1 et MPEG-2. Ces protocoles peuvent être utilisés pour
supporter des applications dans les deux types de réseaux: hétérogènes et
homogènes. Pour le modèle DSM-CC, une suite est envoyée par un Serveur à un
Client. Le Serveur et le Client sont considérés comme utilisateurs (Users) du
6.2.2. - Le standard de compression MPEG-2 165
réseau DSM-CC.
Ce-ci définit une entité logique appelée Session and Resource Manager
(SRM) qui realise un management logique et centralisé du réseau comme le montre
la figure suivante.
Figure 2.6.2.2. Modèle de référence DSM-CC.
La septième partie du standard MPEG-2 se réfère à un nouvel algorithme
de compression audio multi-voie qui n’est pas contraint d’être compatible avec le
système de compression audio MPEG-1.
La septième partie devrait présenter un système de codage vidéo pour images dont
les échantillons sont représentés sur dix bits. On n’a pas trouvé un intérêt suffisant
pour l’industrie d' un tel standard.
La neuvième partie du standard MPEG-2 est la spécification de l’interface
à temps réel (Real-time Interface), (RTI) pour les décodeurs des suites de transport
qui peuvent être utilisés pour l’adaptation à tous les réseaux appropriés (voir la
figure suivante).
166 La compression d’images - 6
Figure 3.6.2.2. Configuration de référence pour l’interface à temps réel.
La dixième partie présente les tests pour le système DSM-CC.
6.2.3. Le standard de compression MPEG-4
MPEG-4 est un standard ISO/IEC réalisé par le groupe MPEG. Les
standards MPEG-1 et MPEG-2 ont donné la possibilité des applications vidéo
interactives sur CD-ROM et d’utiliser la télévision digitale. Ce standard appelé
ISO/IEC 14496, a été finalisé en octobre 1998 et est devenu standard international
en 1999. Les applications de ce standard sont :
•
•
•
Télévision digitale;
Applications graphiques interactives;
Applications multimédia interactives (World Wide Web, distribution et accès
au contenu)
MPEG-4 donne les éléments technologiques standardisés qui permettent
l’intégration de la production de la distribution et de l’accès au contenu.
Plusieurs informations sur MPEG-4 peuvent être trouvées à l’adresse:
http://www.cselt.it/mpeg . et en [81], [82] et [83].
Le modèle de vérification de la partie vidéo du standard MPEG-4 met en évidence
les paramètres suivants du standard:
* La représentation de luminance et de chrominance des échantillons de l’image en
utilisant le format 4:2:0. L’intensité de chaque pixel est quantifiée sur 8 bits. Les
dimensions et la forme de l’image dépendent d’application.
* La possibilité de codage des multiples plans d’objets vidéo, Video Object Planes
(VOP's), comme images de forme arbitraire qui peuvent assurer la majorité des
fonctions basées sur le contexte. Donc la séquence d’images d’entrée pour le
6.2.3. - Le standard de compression MPEG-4 167
codeur vidéo MPEG-4, VM est considérée de forme arbitraire et la forme et la
localisation d’un VOP dans une fenêtre de référence peut varier en temps. Le
codage d’une séquence d’images d’entrée rectangulaires est un cas particulier de
l’approche basée sur les VOP.
* Le codage de la forme et de l’information transparente de chaque VOP par le
codage de séquences de plans binaires ou de plans a plusieurs niveaux de gris en
utilisant une méthode particulière appelée Modified Reed Code method (MMMR).
* La possibilité d’utilisation des VOP codes Intra (I), ou des prédictions de VOP,
(P).
* La possibilité de débits fixes ou variables des séquences VOP d’entrée de forme
rectangulaire ou arbitraire. Le débit est fonction d’application.
* La possibilité d’utilisation des méthodes d’estimation et de compensation du
mouvement pour les blocs de 8x8 pixels ou pour les macroblocs de 16x16 pixels
des chaque VOP.
* Le codage de la texture dans les VOP en utilisant la DCT ou une DCT qui
s’adapte à la forme, Shape-Adaptive DCT (SADCT) pour les régions de forme
arbitraire. Après ces transformations on fait une quantification et un codage “runlenght”.
* La prédiction éfficace des coefficients DC et AC de la DCT dans les VOP codés
Intra.
* La possibilité d’utilisation de la prédiction SPRITE dynamique du mouvement
global en utilisant une mémoire des VOP panoramique et 8 paramètres de
mouvement global.
* La compatibilité avec les algorithmes de codage du standard MPEG-1
si la séquence d’images d’entrée est codée dans une seule couche en utilisant une
seule structure VOP rectangulaire.
6.2.3.1.
Le codage de la forme, du mouvement et de la
texture pour chaque VOP
L’information relative à la forme, au mouvement et à la texture pour
chaque VO est codée dans une couche séparée, appelée, Visual Object Layer,
(VOL) pour pouvoir réaliser un codage séparé pour chaque VO. Le codeur vidéo
MPEG-4 VM utilise le même algorithme pour coder la forme, le mouvement et la
texture en chaque couche. L’information de forme n’est pas transmise si la
séquence qui doit être codée contient seulement des images standard de forme
rectangulaire. L’algorithme de compression MPEG-4 VM utilisé, pour le codage de
chaque séquence d’images (de forme rectangulaire ou différente), est basé sur la
technique de codage des blocs DPCM/Transformée déjà utilisée dans les standards
de codage MPEG.
Le premier VOP est codé dans le mode Intra-Frame (I-VOP). Chaque VOP
suivant est codé utilisant la prédiction Inter-frame VOP (P-VOP). On utilise pour la
prédiction seulement des données obtenues en utilisant le plus proche “frame”.
168 La compression d’images - 6
Après le codage de la forme on fait le codage des couleurs. Chaque image en
couleurs d’une séquence VOP est divisée en macroblocs comme le montre la figure
suivante.
Figure 1.6.2.3.1. La génération des macroblocs.
Chaque macrobloc contient des blocs de données, contenus dans les deux
bandes de luminance et de chrominance, il s’agit de quatre blocs de luminance (Y1,
Y2, Y3, Y4) et de deux blocs de chrominance (U, V), chacun un de dimensions 8 x
8 pixels. Le cadre VOP, N-1, codé antérieurement est stocké dans le codeur et dans
le décodeur. La compensation du mouvement est réalisée pour un bloc ou pour un
macrobloc, seulement un vecteur de mouvement étant estimé entre les cadres VOP,
N et N-1. L’erreur de prédiction du mouvement compensé est calculée. Une DCT
est après appliquée au sous-images de 8x8 pixels contenues dans le bloc ou
macrobloc considéré. On fait après une quantification des coefficients DCT. Les
valeurs ainsi obtenues sont après codées en utilisant un codage “run-lenght” ou
entropique. Un registre vidéo est nécessaire pour assurer la réalisation d’un débit
de
6.2.3. - Le standard de compression MPEG-4 169
sortie, pour le système de compression, constant. Le pas de quantification des
coefficients DCT peut être modifié pour chaque macrobloc dans un cadre VOP
pour réaliser un certain débit à la sortie et pour éviter le vidage ou la saturation du
registre.
Le décodeur realise le processus inverse pour reproduire un macrobloc
d’un cadre VOP, N, dans la structure du récepteur. Apres le décodage “run-lenght”
des mots contenus dans un registre les valeurs des pixels de l’erreur de prédiction
sont reconstruites. Les pixels de mouvement compensé qui appartient au cadre
VOP, N-1, déjà stockés, sont ajoutés à l’erreur de prédiction pour reconstruire le
macrobloc considéré du cadre N.
Généralement les images d’entrée qui doivent être codées sont de forme
arbitraire et la forme et la localisation des images sont variables en temps par
rapport à une fenêtre de référence. Pour le codage de la forme, du mouvement et de
l’information de texture en cadres VOP de formes arbitraires, le modèle de
vérification MPEG-4 a introduit le concept de “fenêtre d’image VOP” et le concept
de “grille de macrobloc de forme adaptive”. Toutes les couches VOL qui doivent
être codées pour une séquence vidéo d’entrée sont définies par rapport à une
fenêtre de référence de dimension constante.
L’information de forme d’un cadre VOP est codée avant le codage des
vecteurs de mouvement, qui se base sur la fenêtre de la grille de macrobloc du
cadre VO et est disponible pour les deux systèmes de compression et de
décompression. Pendant les pas de traitement suivants seulement l’information de
mouvement et de texture pour le macrobloc appartenant à l’image du cadre VOP
est codée.
Pour le codage de l’information de forme des images binaires ou à
plusieurs niveaux de gris deux méthodes sont supportées par ce standard.
L’information de forme est nommée “plans alpha” dans le cadre du codeur d’image
MPEG-4.
Le codeur vidéo MPEG-4 utilise des techniques d’estimation et
compensation du mouvement pour le balayage efficace des redondances
temporelles du contenu vidéo en couches VOP séparées.
Le modèle de vérification vidéo MPEG-4 spécifie le codage de deux types de
prédiction des cadres VOP, la prédiction en arrière (P) et la prédiction
bidirectionnelle (B). On obtient les cadres P-VOP et B-VOP.
Les vecteurs de mouvement sont codés predictivement en utilisant les
tableaux de codes des standards MPEG-1/2 et H.263 VLC.
Les cadres Intra VOP et les erreurs résiduelles après la prédiction du
mouvement compensé sont codés en utilisant une DCT appliquée aux blocs de
dimensions 8x8. De nouveau la grille de macrobloc de forme adaptive est utilisée.
Pour chaque macrobloc, un nombre maximal de quatre blocs de luminance et de
deux blocs de chrominance sont codés. Le balayage des coefficients DCT suivi par
leur quantification et le codage “run-lenght” sont réalisés en utilisant des
techniques et tableaux spécifiques pour les standards MPEG-1,2 et H.263. Pour les
170 La compression d’images - 6
cadres Intra VOP est réalisée aussi une prédiction efficiente des coefficients de la
DCT.
Tous les outils (DCT, l’estimation et la compensation du mouvement, etc.)
introduits dans les standards H.263 et MPEG-1 (et la plus grande partie des outils
définis dans le standard MPEG-2) peuvent être utilisés dans le standard MPEG-4.
Le vecteur de mouvement du plan “alpha” comprimé et les mots DCT sont
multiplexés dans une suite de bits correspondent à une couche VOL. L’information
de forme est codée au commencement et après sont codées les informations de
mouvement et de texture en suivant les définitions présentées dans les standards
H.263 et MPEG.
Il y a deux modes différents pour multiplexer l’information de texture et de
mouvement: une procédure mixte basée sur les définitions relatives aux macroblocs
du standard H.263 destinée à l’obtention d’une haute éfficacité de compression et
d’un débit très réduit. Cette procédure garantie que les performances du standard
MPEG-4 au débit très réduit sont identiques ou meilleures que les performances
demandées par le standard H.263.
Le deuxième mode de multiplexage suppose le traitement diffèrent des
vecteurs de mouvement et des coefficients DCT. Celui-ci permet l’insertion des
techniques nouvelles de codage du mouvement ou de la texture.
Le but du standard MPEG-4 est de réaliser un débit inférieur à 64 kbits/s.
Le standard MPEG-4 permet la représentation des images à différentes
échelles en espace et en temps. Cette fonction est prévue pour pouvoir utiliser des
récepteurs différents avec différentes bandes de fréquence ou différentes
possibilités d’affichage, pour faciliter la navigation dans les bases de données
vidéo, ou pour la représentation multirésolution en environnements multimédias.
Un autre but important de la représentation des images à différentes
échelles est de réaliser une suite de bits dans une couche vidéo qui peut être utilisée
dans une transmission à plusieurs priorités.
Les techniques adoptées par le modèle de vérification vidéo MPEG-4
permettent l’accès basé sur le contenu ou la transmission des cadres VOP de forme
arbitraire en utilisant différentes résolutions spatiales ou temporelles. Le standard
MPEG-2 permet une représentation d’images à plusieurs échelles seulement au
niveau des cadres. Les récepteurs qui ne peuvent pas travailler à plusieurs
résolutions peuvent décoder des sous-ensembles de la suite de bits de la couche
vidéo pour afficher les objets des cadres VOP de forme arbitraire à une certaine
résolution spatiale ou temporelle ou avec une qualité réduite.
Les échelles spatiales différentes peuvent être obtenues par sousechantillonnage itérés. La variante sous-echantillonnée est codée dans une couche
de base en obtenant une suite de bits à débit réduit.
La variante obtenue par le sur-echantillonnage de celui-ci est utilisée
6.2.3. - Le standard de compression MPEG-4 171
comme une prédiction pour le codage du signal vidéo d’entrée original.
L’erreur de prédiction est codée dans une couche contenant une autre suite
de bits. Les signaux VOP sous-echantillonnés peuvent être reconstruits en décodant
seulement la suite de bits appartenant à la couche inférieure.
L’affichage du cadre VOP à la plus haute résolution à qualité réduite est
aussi possible en décodant seulement la couche de débit inférieur.
Donc le codage des images représentées à différentes échelles peut être utilisé pour
le codage vidéo basé sur le contexte en utilisant des débits appropriés pour chaque
couche pour satisfaire certaines conditions de largeur de bande, de canal de
transmission ou de stockage. Les applications qui peuvent bénéficier de ces
fonctionnalités sont la navigation dans les bases de données vidéo et la
transmission des données vidéo dans les réseaux non homogènes.
Différents débits pour les cadres contenus dans différentes couches, peuvent être
obtenus en utilisant la représentation de l’image à plusieurs échelles temporelles.
L’organisation en couches est réalisée à l’aide d’une prédiction temporelle pour la
couche supérieure basée sur le codage vidéo des couches inférieures. En utilisant la
modalité de représentation par plusieurs échelles temporelles des cadres VOP basés
sur contenu on peut obtenir différentes modalités d’affichage pour la même
séquence vidéo.
Un effort considérable a été fait pour le stockage et la transmission
robustes des séquences vidéo MPEG-4 dans des environnements bruités. A ce but
une technique adaptative de translation des macroblocs, similaire à celle déjà
utilisée dans les standards MPEG-1 et MPEG-2 est utilisée dans le standard
MPEG-4. Cette technique realise la resynchronisation des groupes de macroblocs
et a été optimisée pour une robustesse éfficace pour les séquences vidéo transmises
sur les canaux mobiles.
Récemment ont vu le jour plusieurs articles concernant l’utilisation de la
théorie des ondelettes pour la compression des séquences d’images.
Par exemple en [84] est présentée une méthode de compression des séquences
d’images de résonance magnétique. En [85] et [86] une nouvelle méthode de
compression est comparée avec le MPEG-4. Cette méthode, basée sur une
transformation en ondelettes, introduit une nouvelle opération le pre-traitement des
coefficients de la transformée en ondelettes quantifiés.
Il s’agit d’un pré-codage qui fait une segmentation suivie par une reconstruction et
un codage conditionné. Les résultats de simulation de cette méthode sont mieux
que les résultats obtenus en utilisant le MPEG-4.
Des méthodes de compression progressive, basées sur la théorie des
ondelettes ont été aussi proposées, [87]. Les méthodes de compression des
séquences d’images basées sur la théorie des ondelettes sont traitées dans la thèse
de doctorat [88] aussi. Une idée très intéressante est d’utiliser une transformée en
ondelettes adaptative, [89]. On peut utiliser à ce but des ondelettes mère à
paramètres variables. Les auteurs ont nommé ces fonctions “ondelettes mobiles”.
Un logiciel spécialisé pour la compression des images en utilisant la
théorie des ondelettes est présenté en [90].
172 La compression d’images - 6
Plusieurs articles présentant différents aspects de la compression des
séquences d’images basée sur la théorie des ondelettes font partie des actes de la
conférence “Signal Processing” d’IEEE qui a été organisée en 2000 à Istanbul.
Bibliographie
[1]
Roberto Togneri. Information theory and coding, cours élaboré à
University of Western Australia, dans le département, E&E Engineering,
http://www.ee.uwa.edu.au/~roberto/teach/itc314/handouts/lectures/chapter3.pdf
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
D. Salomon. Data compression, The Complete Reference, Springer
Verlag, New-York, 1998.
Jeffrey Scott Vitter. Design and analysis of dynamic Huffman codes,
ACM Transactions on Mathematical Software, Volume 15 , Issue 2
(1989), pp. 158-167, http://www.cs.duke.edu/~jsv/Papers/Vit87.jacm.pdf
A. Spãtaru. Fondements de la théorie de la transmission de l’information.
Presses Polytechniques Romandes, Lausanne, 1987.
A. Cubiţchi. Contributions à la compression du signal de parole dans les
systèmes de communications numériques, (en roumain). Thèse de
doctorat. Directeur de thèse professeur Ioan Naforniţă, Université
« Politehnica » de Timişoara, Roumanie, 2002.
D. Isar. L’augmentation du rapport signal à bruit dans les systèmes de
télécommunications, (en roumain). Thèse de doctorat. Directeur de thèse
professeur Ioan Naforniţă, Université “Politehnica” de Timişoara,
Roumanie, 1998.
G. Malgouyres. "Introduction à la théorie des ondelettes". Cours d’été,
Timişoara 1994.
V. E. Neagoe. Using Legendre Polynomials to Introduce a New
Orthogonal Transform for Significant Feature Selection. Actes de la
conférence internationale Pattern Recognition and Image Processing,
pp.177-182, Las Vegas, juin 1982.
A. Cohen, J. P. d’Ales. Nonlinear Approximation of Stochastic Processes.
Dans Wavelets and Statistics. A. Antoniadis et G. Oppenheim (éditeurs),
Springer Verlag, pp.129-132, 1995.
A. Isar, I. Naforniţă, “Représentations temps – fréquence”, (en roumain),
Ed. Politehnica, Timişoara, 1998.
M. V. Wickerhauser, "Adapted Wavelet Analysis. From theory to
software", A. K. Peters Ltd, Massachusetts, 1994.
M. J. T. Smith, T. P. Barnwell III. "Exact Reconstruction Techniques for
Tree-Structured Subband Coders". IEEE Trans. On ASSP, vol. 34,
pp.434-441, 1986.
A. Cohen. "Ondelettes et traitement numérique du signal". Masson, 1992.
O. Rioul. "A Discrete Time Multiresolution Theory". IEEE Trans. on SP,
vol. 41, no. 8, pp. 2591-2606, août 1993.
I. Daubechies. "Orthonormal Bases of Compactly Supported Wavelets".
Comm. Pure. Appl. Math., No. 41, pp.909-996, 1988.
I. Daubechies. "Ten Lectures on Wavelets". SIAM, Philadelphia 1992.
Y. Meyer. "Ondelettes, filtres miroirs en quadrature et traitement
numérique de l’image". Dans Les ondelettes en 1989. P. G. Lemarié
174 Bibliographie
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
(editeur), Springer-Verlag, 1990.
A. N. Akansu, R. A. Hadad. "Multiresolution Signal Decomposition".
Academic Press, New York, 1992.
S. Mallat. "Multifrequency Channel Decomposition". IEEE Trans. on
ASSP, vol. 37, No.12, pp. 2091-2110, octobre 1989.
D. L. Donoho, I. M. Johnstone. "Unconditional Bases are Optimal Bases
for Data Compression and for Statistical Estimation". Technical Report
410, Stanford University, November 1992.
J. Froment. "Traitement d’images et applications de la transformée en
ondelettes". Thèse de doctorat, Université Paris IX, 1990.
J. Kovacevic, M. Vetterli. "Nonseparable Two-and Three-Dimensional
Wavelets". Proceedings of ISCAS’93, Chicago,1993.
H. S. Malvar. "Lapped Transforms for Efficient Transform/Subband
Coding". IEEE Trans. on ASSP, vol. 38, pp.969-978, juin 1990.
A. Cohen, I.Daubechies, J.C.Feauveau, "Bi-orthogonal bases of
compactly supported Wavelets", Comm. Dans Pure and Applied Math.,
vol. XLV, pp. 485-560, 1992.
R.R.Coifman, M.V.Wickerhauser "Wavelets and adapted waveform
analysis" in Proceedings of symposia in applied mathematics,SIAM vol.
47, 1993, éditeur Ingrid Daubechies.
A. De Sabata, C. Iung, J. F. Aubry. "A Variabile Scale DWT".
Proceedings of the International Symposium ETc’94, vol. III, pp.43-48,
Timişoara, septembre 1994.
M.Vetterli, C.Herley, "Wavelets and filter banks: Theory and design",
IEEE Transactions on signal processing 40 (9) pp.2207-2232, septembre
1992.
T.P.Barnwell III, I.Sodagar, K.Nayebi "Time-varying filter banks and
wavelets", IEEE Transactions on signal processing, vol.42, no. 11,
novembre 1994.
W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery.
"Numerical Recipes in C". Cambridge University Press, 1995.
O.Rioul, M.Vetterli. "Wavelets and signal processing", IEEE SP
Magazine, 8 (4) pp.14-38, octobre 1991.
T. Asztalos, A. Isar. "An Adaptive Data Compression Method Based on
the Fast Wavelet Transform". Proceedings of the International
Symposium Etc’94, Timişoara, Vol III, pp 37-42, septembre 1994.
A. Oppenheim, R. W. Schaefer. "Digital Signal Processing". Prentice
Hall, 1986.
J.J.Shynk. Frequency-domain and multirate adaptive filtering, Signal
Processing Magazine, janvier 1992.
H. Krim, D. H. Brooks. "Feature-Based Segmentation of ECG Signals".
Proceedings of IEEE Conference, TFTS’96, pp. 97-100, Paris, juillet
1996.
Algorithmes et techinques de compression 175
[35]
[36]
[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
[49]
[50]
[51]
O. Rioul. "Ondelettes régulieres: Applications à la compression d’images
fixes". Thèse de doctorat, ENST Paris, mars 1993.
T. Asztalos. "An Algorithm for the DWT on Block Computation".
Proceedings of the International Symposium Etc’96, Timişoara, vol II,
pp.128-133, septembre 1996.
D. Donoho. Smooth Wavelet Decomposition with Blocky Coefficient
Kernels, en Recent Advances in Wavelet Analysis, L. Schumaker et G.
Webb (éditeurs), pp. 1-43, 1993.
W. Sweldens. "Wavelet Sampling Techniques", Proceedings of the Joint
Statistical Meetings, San Francisco, 1993.
E.D. Kolaczyk. "Non-parametric Estimation of Gamma-ray Burst
Intensities using Wavelets", soumis à la revue The Astrophysical Journal.
T. Asztalos. "Tomography Imaging. Radon Transform Inversion
Procedures". Rapport de stage, Université Paris-Sud, juillet, 1997.
M. Borda, D. Isar. Whitening with Wavelets. Proceedings of “ECCTD.
97” Conference, Budapest, août 1997.
A. Mateescu, M. Răducanu, L. Stanciu. "Best Basis with Wavelet Packets
for a Signal". Proceedings of International Symposium Etc’96, Timişoara,
vol. II, pp.106-111, septembre 1996.
A. Isar, A. Cubiţchi. "A new best wavelet basis searching method for the
compression of smooth signals", Proceedings of IEEE International
Conference, ICT 2001, Bucarest, Roumanie, 4-7 juin, 2001.
M. V. Wikerhauser. "Best-adapted Wavelet Packet Bases", Proceedings
of Symposia in Applied Mathematics, vol. 47, 1993.
Y. Meyer. "Ondelettes et algorithmes concurrents". Herman, Paris, 1993.
D. Pastor, R. Gay. "Décomposition d’un processus stationnaire du second
ordre. Propriétés statistiques d’ordre 2 des coefficients d’ondelettes et
localisation fréquentielle des paquets d’ondelettes". Traitement du signal,
vol. 12, no. 5, pp. 393-420, 1995.
A.
Cohen, J. P. d’Ales. "Nonlinear Approximation of Stochastic
Processes". En Wavelets and Statistics. A. Antoniadis et G. Oppenheim
(éditeurs), Springer Verlag, pp.129-132, 1995.
V. E. Neagoe. "Introducing a new orthogonal spatial transform for
significant data selection", Revista Academiei, nr. 13, Editura Academiei,
Bucureşti 1983, pag. 163-180.
S. Mallat, F. Falzon. Understanding Image Transform Codes. Proceedings
of the SPIE Aerospace Conference, Orlando, April 1997
A. Cubiţchi. « Le niveau de développement actuel des techniques de
compression du signal vocal dans la téléphonie numérique », Rapport no.
1, dans le cadre de la préparation de la thèse de doctorat, Département
Communications, Faculté d’Electronique et Télécommunications,
Timişoara, 1999, Directeur de thèse professeur Ioan Naforniţă.
R. Boite, M. Kunt, "Traitement de la parole", Presses Polytechniques
Romandes, Lausanne, 1987.
176 Bibliographie
[52]
[53]
[54]
[55]
[56]
[57]
[58]
[59]
[60]
[61]
[62]
[63]
[64]
[65]
[66]
[67]
[68]
Rodica Stoian. Compression de données. Algorithmes de prédiction (en
roumain), Ed. ştiinţifică şi enciclopedică, Bucureşti, 1988.
E. Pop, I. Naforniţă, V. Tiponuţ, A. Mihăescu, L. Toma, “Méthodes en
traitement numérique des signaux”, (en roumain) vol. 1, Ed. Facla,
Timişoara, 1986.
E. Pop, I. Naforniţă, V. Tiponuţ, A. Mihăescu, L. Toma, “Méthodes en
traitement numérique des signaux”, (en roumain) vol. 2, Ed. Facla,
Timişoara, 1989.
Monica Elena Borda, "Théorie de la transmission de l’information", (en
roumain) Editura Dacia, Cluj-Napoca, 1999.
E. Pop, V. Stoica. Principes et méthodes de mesure numérique (en
roumain), Ed. Facla, Timişoara, 1977.
E. Pop, V. Stoica, I. Naforniţă, E. Petriu. Techniques modernes de
mesure. Ed. Facla, Timişoara, 1983.
D. Isar, A. Isar. A Generalization of the Widrow's quantization theorem,
Actes de la conférence internationale, MTNS’2002, Notre Dame, août
2002, Etats Unis.
Bonnet. Sur la statistique du second ordre des signaux aléatoires
quantifiés. Comptes Rendus de l’Académie de sciences française, 30
juillet 1962.
Andrei Cubiţchi, Alexandru Isar, "A Statistical Characterization of the
uniform Quantization Process", Proceedings of the International
Conference of Romanian Military Technical and Technological Research
Agency, April 12-13, 2001, Bucarest, Roumanie.
N. Moreau. “Techniques de compression des signaux”, Masson, Paris
1995
T. Asztalos. "Contributions à la compression, dans le domaine des
transformées en ondelettes des signaux audio", Thèse de doctorat,
Directeur scientifique professeur Miranda Naforniţă, Faculté
d’Electronique et Télécommunications Timişoara, 2001.
Mitchell D. Swanson, Mey Kobayashi, Ahmed H. Tewfik. Multimedia
Data-Embedding and Watermarking Technologies. Proceedings of the
IEEE, vol. 86, no.6, juin 1998, pp. 1064-1087.
P. Flandrin. Représentations temps-fréquence. Hermès, 1993.
D. Isar. De-noising adaptatif. Seizième Colloque GRETSI, pp.1249-1252,
Grenoble, 15-19 septembre 1997.
D. Isar, A. Isar. A New Class of Identity Systems. International
Workshop on Sampling Theory and Applications, Universidad de Aveiro,
juin 16-19, 1997.
T. Asztalos, A. Isar, "Wavelets and Audio Data Compression",
International Conference on Signal Circuits and Systems, SCS'99, 5-7
July, 1999, Iaşi, Roumanie
A. Isar, Dorina Isar, "Filtres non-lineaires et ondelettes", Revue roumaine
de sciences techniques, serie Electrotechnique et Energetique, no.1, 1999.
Algorithmes et techinques de compression 177
[69]
[70]
[71]
[72]
[73]
[74]
[75]
[76]
[77]
[78]
[79]
[80]
[81]
[82]
[83]
[84]
T. Asztalos, Dorina Isar, A. Isar, "Adaptive Capturing Transient Signals
using Wavelets", 8-th European Conference on POWER ELECTRONICS
AND APPLICATIONS, EpE'99, 7-9 septembre, 1999, Lausanne.
T. Aszalos, Dorina Isar, A. Isar, "Adaptive Sampling Rate obtained using
Wavelets", 1999 International Workshop on Sampling Theory and
Applications, SampTA'99, August 11-14, 1999, Trondheim, Norway.
C. Giménès, A Mateescu (coordonateurs). Electronique, phisique et signal
pour les télécommunications, Editura Tehnicã, Bucarest, 1997.
P. Duvaut. Traitement du signal-concepts et applications. Hermes, Paris
1991.
A. W. M. van den Enden, N. A. M. Verhoekx. Traitement numérique du
signal. Masson, Paris 1992.
M. Kunt. Traitement numérique des signaux. Traité d’Electricité de
l’EPFL, vol. XX, 3-eme édition, Presses Polytechniques Romandes, 1984.
EN 300 960 V 6.0.1. (1999 06) Digital cellular telecommunications
systems (Phase 2+) ; Full Rate Speech, Processing functions, (GSM 06.01
version 6.0.1), Standarde ETSI, 1997.
ETS 300 580-2 European digital cellular telecommunications systems
(Phase 2), Full rate speech transcoding (GSM 06.10 version 4.0.2)
Standarde ETSI, 1994.
ETS 300 961 Digital cellular telecommunications systems (Phase 2), Full
rate speech transcoding (GSM 06.10 version 5.0.1) Standarde ETSI, 1997.
ETS 300 963 Digital cellular telecommunications systems, Full rate
speech, Comfort noise aspect for full rate speech traffic channels (GSM
06.12 version 5.0.1), Standarde ETSI, 1997.
ETS 300 580-3 Digital cellular telecommunications systems (Phase 2),
Full rate speech, Part 3: Substitution and muting of lost frames for full
rate speech channels (GSM 06.11 version 4.0.6), Standarde ETSI, 1998.
ETS 300 581-2 European digital telecommunications systems; Half rate
speech, Part 2: Half rate speech transcoding (GSM 06.20 version 4.3.1),
Standarde ETSI, 1995.
ETS 300 969 Digital cellular telecommunication systems; Half rate
speech, Half rate speech transcoding, (GSM 06.20 version 5.0.1),
Standarde ETSI, 1997.
M. V. Wickehauser. Acoustic signal compression with wavelet packets, in
“Wavelets-A tutorial in theory and applications, (C.K. Chui, editeur),
Academic Press, 1992, pp. 679-700.
Eva Wesfreid, M. V. Wickerhauser. Etude des siganux vocaux par
ondelettes de Malvar, Quatorzieme colloque GRETSI, Juan-les-Pins,
1993, pp. 379-382.
J. J. Benedetto, A. Teolis. A wavelet auditory model and data
compression, Applied and computational harmonic analysis, 1, 1993,
pp.3-28.
178 Bibliographie
[85]
[86]
[87]
[88]
[89]
[90]
[91]
[92]
[93]
[94]
[95]
[96]
[97]
[98]
[99]
[100]
D. Sinha, A. H. Tewfik. Low bit rate transparent audio compression using
adapted wavelets, IEEE Transactions on Signal Processing, vol. 41, no.
12, decembre 1993, pp. 3463-3479.
J. B. Buckheit, D. L. Donoho, "WaveLab and Reproducible Research", en
Wavelets and Statistics, editeurs: A. Antoniadis et G. Oppenheim, pp. 5583, Springer-Verlag, 1995.
Irina Coţanis, "Impacting factors on the Objective Measurement
Algorithms for Speech Quality Assessment on Mobile Networks",
Proceedings of IEEE International Conference, ICT 2001, Bucarest,
Romania, 4-7 juin, 2001.
T. Asztalos, A. Isar, "Wavelets and Audio Data Compression",
International Conference on Signal Circuits and Systems, SCS'99, 5-7
juillet, 1999, Iaşi, pp. 199-202.
M. Naforniţă, "Méthodes modernes de traitement du signal pour la
compression de données dans les modems haut débit. Premier rapport:
Techniques de compression". Rapport de recherche AUPELF-UREF,
financé par FICU, Département de Communications de la Faculté
d’Electronique et Télécommunications de Timişoara, 2000.
R. Deriche, O. Faugeras. Les EDP en traitement des images et vision par
ordinateur, Rapport de recherche, INRIA, no. 2697, novembre 1995.
Consultative Committee for Space Data Systems. Telemetry Channel
Coding, CCSDS 101.0-B-4, Blue book, Mai, 1999.
Z. S. Bojkovic, C. I. Toma, V. Gui, R. Vasiu. Advanced topics in digital
image compression, Editura “Politehnica”, Timişoara, Roumanie, 1997.
A. Cohen. Wavelets and multiscale methods in image processing,
preprint, Université Pierre et Marie Curie, Paris, 1995.
J. Bukheit, S. Chen, D. Donoho, I. M. Johnstone, J. Scargle. About
WaveLab. Preprint, Stanford University, novembre 1995.
J. Bukheit, D. Donoho. WaveLab Architecture. Preprint, Stanford
University, novembre 1995.
J. Bukheit, S. Chen, D. Donoho, I. M. Johnstone, J. S. Cargle. WaveLab
Reference Manual. Preprint, Stanford University, December 1995.
Pankaj N. Topiwala (éditeur). Wavelet Image and Video Compression,
Kluwer Academic Publishers, Boston, 1998.
M. Acheroy, S. Grandjean. METEOSAT Image compression using
wavelet transform, European Space Agency Contract Report,
1031/92/D/IM, mars 14, 1994.
W. Wijmans, P. Armbruster. Data compression tecniques for space
applications. Review of current ESA/ESTEC development, announcement
of a round table, Actes de la conférence internationale Dasia 96’ , Rome,
1996.
J. - M. Mangen, S. Grandjean, S. Dewitte, A. Massart, M. Acheroy, J.
Cornelis. Méthode itérative de compression d’images radiometriques par
la transformée en ondelettes, rapport supporté par EUMETSAT, contrat
Algorithmes et techinques de compression 179
[101]
[102]
[103]
[104]
[105]
[106]
[107]
[108]
[109]
[110]
[111]
[112]
[113]
[114]
numéro: 1031/92/D/IM, preprint Royal Military Academy, Brussels,
Belgium, 1995.
M. Acheroy, J.-M. Mangen. Progressive wavelet algorithm versus JPEG
for the compression of METEOSAT data, rapport supporté par
EUMETSAT, contrat numero: EUM/DP/GD982304, preprint Royal
Military Academy, Brussels, Belgium.
O. Stromme. On the applicability of wavelet transforms to image and
video compression, Thèse de doctorat, University of Strathclyde, février,
1999.
L. Oktem, R. Oktem, K. Egiazarian, J. Astola. Efficient encoding of the
significance maps in wavelet based image compression, Proc. ISCAS
2000, 28-31 May, Geneva, Switzerland.
F. Preteux. Description et intérprétation des images par la morphologie
mathématique. Application a l’image médicale. Thèse de doctorat d’état,
Université Paris VI, 1987.
V. K. Goyal. Beyond traditional tansform coding. Thèse de doctorat,
Université de Californie, Berkeley, 1998.
D. Marpe, H.L. Cycon, W. Li. A complexity constraint best-basis wavelet
packet algorithm for image compression, preprint, Fachhochscule fur
technik und wirctschaft, Berlin, 1997.
D. Marpe, H.L. Cycon, W. Li. Energy constraint scarce wavelet packet
libraries for image compression, preprint no. 541, Fachhochscule fur
technik und wirctschaft, Berlin, 1997.
R. Oktem, L. Oktem, K. Egiazarian. A wavelet packet transform based
image coding algorithm, Actes de la conférence internationale
NORSIG’2000, Norrkoping, juin, 2000.
M. Boliek, C. Christopoulos, E. Majani. Coding of still pictures, JPEG2000, Part 1, Final Comitee Draft, Version 1.0, ISO/IEC JTC1/SC29 WG1
N1646R, mars 2000.
Y. Meyer. Wavelets and applications to new standards in image
compression and to the numerical analysis of functions with bounded
variations, PROCEEDINGS of the Fourteenth International Symposium of
Mathematical Theory of Networks and Systems, MTNS 2000, June 19 –
23, 2000, Perpignan, France.
Rob Koenen. Overview of the MPEG-4 Standard, ISO/IEC
JTC1/SC29/WG11 N2725 , March 1999/Seoul, South Korea.
***. MPEG-4 Applications, ISO/IEC JTC1/SC29/WG11 N2724, March
1999/Seoul, South Korea.
***. MPEG-4 Requirements, ISO/IEC JTC1/SC29/WG11 N3154,
December 1999 Maui.
C.Taswell. Wavelet Transform Compression of Functional Magnetic
Resonance Image Sequences, Proceedings of the IASTED International
Conference Signal and Image Processing (SIP’98), octobre 28-31, 1998,
Las Vegas, Nevada.
180 Bibliographie
[115]
[116]
[117]
[118]
[119]
D. Marpe, H. L. Cycon. Very Low Bit Rate Video Coding Using Wavelet
-Based Techniques, preprint, Fachhochscule fur technik und wirctschaft,
Berlin.
D. Marpe, H. L. Cycon. Efficient Pre-coding Techniques for WaveletBased Image Compression, preprint, Fachhochscule fur technik und
wirctschaft, Berlin.
A. Khodakovsky, P. Schroder, W. Sweldens. Progressive Geometry
Compression, submitted for publication, janvier, 2000.
G. Mozelle, F. Preteux. Mobile wavelet method. Application to active
contour modeling and surface reconstruction, Preprint, INT Evry, 1995.
J. Froment, S. Parrino. MegaWave 2 User’s Modules Library. vol. I, vol.
III, Preprint CEREMADE, Univ. Paris Dauphine, novembre 1994.