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 (ω) = F2 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] ⋅ F2 ⋅ ϕ(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 ⋅ lg10 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.