Rapport de stage. Implantation en virgule fixe d un codeur audio. Romain Serizel

Dimension: px
Commencer à balayer dès la page:

Download "Rapport de stage. Implantation en virgule fixe d un codeur audio. Romain Serizel"

Transcription

1 Tuteur : Daniel Menard Maître de Conférences Laboratoire R2D2/IRISA 6, rue de Kérampont Lannion [email protected] Correspondant ENSSAT : Olivier Sentieys Professeur des Universités Laboratoire R2D2/IRISA 6, rue de Kérampont Lannion [email protected] Rapport de stage Implantation en virgule fixe d un codeur audio Romain Serizel ENSSAT - Master STI Université de Rennes 1 - Année 2005/2006

2

3 Résumé Dans le contexte actuel d évolution rapide des réseaux de télécommunication (mobiles notamment), il parait important de pouvoir mettre à disposition rapidement des médias contenant, entre autres choses, de l information audio de haute qualité (caméras, enregistreurs audio portables...). Pour respecter les contraintes imposées par de tels systèmes, aussi bien au niveau de la consommation que de l encombrement, il est nécessaire d utiliser l arithmétique virgule fixe. Ce rapport présente : une étude théorique (sur le format MP3 et les techniques de conversion en virgule fixe), la méthodologie à mettre en place pour faire un lien entre bruit de quantification et qualité de la compression et les résultats des différentes expérimentations. Cette étude sur l implémentation en virgule fixe d un codeur audio large bande permet de dégager plusieurs résultats intéressants. Le modèle de bruit utilisé a été vérifié dans le cadre du filtre polyphase et de la mdct. Les hypothèses qui avaient été faites quant aux paramètres statistiques du bruit se sont révélées justifiées. L encodeur a été simulé avec le filtre polyphase et la mdct en virgule fixe. Ces blocs sont ceux présents dans les décodeurs. Il semble donc possible d utiliser les résultats obtenus pour implémenter un décodeur audio large bande en virgule fixe en assez peu de temps. Mots clés : traitement du signal, codeur audio, évaluation de la qualité d encodage, arithmétique virgule fixe, bruit de quantification, variables aléatoires.

4 Abstract Present context of fast evolution in telecommunication networks (espacially mobile networks), induces needs for high quality audio media transmissions (for example in digital cameras or portable audio recorders...). Such systems involve constraints, for both consumption and size, which respect of lead to the use of fixed-point arithmetic. This report presents : a theoritical study (about mp3 format and fixed-point conversion methods), the way to link compression quality and quantization noise and results of the assorted experimentations. This study on fixed-point implementation of wide band audio coder led to several interesting results. The noise model which has been worked with has been validated in both polyphase filter and mdct frameworks. Hypotheses on statistical parameters were right. The coder has been simulated with both polyphase filter and mdct in fixed-point. These two blocs are the ones used in the decoders, so we can assume that the work done could be easily used to implement fixed-point mp3 decoders. Keywords : signal processing, audio coder, encoding quality evaluation, fixed-point arithmetic, quantization noise, random variables.

5 Remerciements Ce stage de master recherche a été effectué au sein de l équipe Reconfigurable and Retargetable Digital Devices (R2D2) de l Institut de Recherche en Informatique et Systemes Aleatoires (IRISA) à Lannion. Aussi je tiens à remercier monsieur O. Sentieys de m avoir accueilli dans son équipe de recherche. Je tiens également à remercier vivement monsieur D. Menard mon tuteur, pour son aide et ses conseils lors de la rédaction de ce rapport ainsi que pour m avoir fait profiter de ses connaissances dans le domaine de l arithmétique virgule fixe. Je tiens enfin à remercier tous les membres de l équipe (R2D2) pour leur accueil et l ensemble des stagiaires en master pour leurs conseils et avis.

6 Sommaire Introduction 4 1 Étude bibliographique Compression MP Description générale du fonctionnement Algorithme Banque de filtres Modèle perceptuel Quantification L implantation en virgule fixe Techniques de conversion virgule flottante vers virgule fixe Arithmétique virgule fixe Codage des nombres Conversion en virgule fixe Évaluation de la précision Outils de conversion Autoscaler for C FRIDGE Méthodologie mise en place au sein de l équipe R2D Mesures de qualité d un algorithme de compression audio Différentes techniques de mesure Tests d écoute Modélisation du système Approche perceptuelle Modélisation de l oreille Coefficients de l algorithme PEAQ Méthodologie de l étude Évaluation du bruit admissible Définition du panel de test Choix du codec Encodeur Décodeur Ajout du bruit Modèle du bruit Mesures de bruit admissible Étude des bloc fonctionnels

7 2.2.1 Principe général Filtre polyphase MDCT Fenêtres courtes Fenêtres longues Fenêtres de transition Simulation en virgule fixe Principe de la simulation Protocoles de tests Méthode actuelle Perspectives Éxpérimentations Bruits admissibles Banque de filtres Filtre polyphase MDCT Bruit dans les deux blocs Modèle perceptuel FFT Modèle psycho-acoustique Bruit dans les deux blocs Influence entre les deux canaux de traitement Modèles de bruit Filtre polyphase MDCT Fenêtres courtes Fenêtres longues Comparaison entre la simulation et le modèle de bruit Filtre polyphase MDCT Travaux complémentaires sur le modèle de bruit Principe de l étude Loi L Test du χ Algorithme de recherche Exemple simple : le filtre fir Résultats Conclusion 49 Tables des figures Tables des tableaux Glossaire i ii iii 2

8 Bibliographie iv A Choix de l encodeur vi A.1 Panel de test vi A.2 tests des différents encodeurs vi B Notations ix B.1 Matrices de calcul du bruit ix B.1.1 Papillons anti-recouvrement ix B.2 Coefficients des fenêtres de transitions x B.2.1 Transition long vers court x B.2.2 Transition long vers court x C Modèles de bruit xi C.1 Filtre polyphase xi C.1.1 Code source xi C.1.2 Vérification du modèle xiii C.2 MDCT xvi C.2.1 Code source xvi C.2.2 Fenêtres courtes xvi C.2.3 Vérification du modèle xviii C.2.4 Fenêtres longues xx C.2.5 Code source xx C.2.6 Vérification du modèle xxiii D Extraits de codes en virgule fixe xxvi D.1 Fonction recadrage xxvi D.2 Filtre polyphase xxvii D.3 MDCT xxx E Organisation des fichiers xxxvi E.1 Répertoire : rapport xxxvi E.2 Répertoire : résultats xxxvii E.3 Répertoire : src xxxvii E.3.1 répertoire blade_bruits xxxvii E.3.2 répertoire bruits xxxix E.3.3 répertoire chi xli E.3.4 répertoire virgulefixe xlii 3

9 Introduction L expansion des réseaux de télécommunications mobiles et de l internet haut débit a changé la conception que tout un chacun pouvait se faire de l utilisation de contenus multimédias, que ce soit pour les communications, les loisirs ou le partage de données. Dans ce contexte, il parait important de pouvoir mettre à disposition rapidement des médias contenants notamment de l information audio de haute qualité (caméras, enregistreurs audio portables...). Pour ce faire il peut donc être nécessaire d avoir à disposition un codeur audio qui soit à la fois performant, économique en énergie et peu encombrant. L implantation de ce type d algorithmes dans des systèmes embarqués, nécessite le respect de contraintes aussi bien au niveau de la consommation que de l encombrement. Pour les respecter il est nécessaire d utiliser l arithmétique virgule fixe. La mise au point d un tel produit requiert de plus des temps de développement très courts, tout en essayant de s assurer que l erreur due à la conversion en virgule fixe soit tolérable. Ainsi il semble utile de pouvoir compter sur un outil permettant, une fois l algorithme écrit en virgule flottante dans un langage de haut niveau de le convertir en virgule fixe sous le respect de certaines contraintes imposées. De tels systèmes existent déjà, il est cependant nécessaire, si on désire les utiliser pour ce genre d applications, de déterminer le type de contraintes à imposer afin que la conversion paraisse transparente pour l utilisateur final. Dans le cas des codeurs audio (AAC, MP3, Ogg...) l impression de qualité est fortement influencée par la perception humaine, c est pourquoi il n est pas raisonnable de se contenter d utiliser un simple rapport signal sur bruit comme critère. Ce rapport présente tout d abord, une étude théorique du format MP3 et un aperçu des techniques existantes de conversion en virgule fixe et de mesure de la qualité d une compression. Le passage en virgule fixe introduit nécessairement un bruit, c est le thème de la deuxième partie qui présente la méthodologie à mettre en place pour faire un lien entre bruit de quantification et qualité de la compression, déterminer les modèles de bruit dans les blocs fonctionnels et les simuler. La dernière partie du rapport présente enfin les résultats des différentes expérimentations. 4

10 Chapitre 1 Étude bibliographique Cette étude bibliographique se concentre sur l algorithme de compression audio MP3 qui est devenu avec le temps un incontournable. La première partie en décrit le fonctionnement, la seconde présente un bref état de l art des techniques de conversion virgule fixe vers virgule flottante. La dernière aborde les critères permettant de juger la qualité d un algorithme de compression basé sur un modèle perceptuel. 1.1 Compression MP3 Ces dernières années, les encodeurs audio se sont multipliés. Cependant le MP3, étant l un des plus anciens, s est imposé comme un des formats incontournables ; même si les remplaçants arrivent (AAC par exemple). Avec le temps, le fait que cette norme soit ouverte 1, a permis de voir se constituer à son sujet, une importante base de données (publications, codes sources...). Le format MP3 apparaît donc comme le candidat idéal pour l étude à mener Description générale du fonctionnement Le MP3 (pour MPEG 2 Layer-3) a été défini en Il s agit de la troisième couche de la compression audio du standard MPEG-1/2. Cette compression se divise en trois couches, chacune apportant des améliorations à la précédente. La troisième couche est donc celle qui autorise la meilleure compression, mais aussi celle qui nécessite les algorithmes les plus complexes. MPEG définit un standard de compression de la vidéo et de l audio. C est un standard ouvert, accessible en s acquittant de droits. C est ainsi que de nombreux encodeurs et décodeurs satisfaisant cette norme sont disponibles. L encodage peut être réalisé en mono, sur deux pistes indépendantes, en stéréo ou encore en codage dit joint stereo où les pistes sont encodées l une par rapport à l autre de manière à réaliser une meilleure compression. Suivant les standards, la fréquence d échantillonnage du signal s échelonne entre 16 khz et 48 khz (32, 44,1 et 48 khz pour la norme MPEG-1 auxquelles on ajoute les fréquences 16, 22,05 et 24 khz pour MPEG-2) 3. Le débit du fichier compressé peut être aussi bien variable que constant. Il est compris entre 32 kbit/s et 320 kbits/s [Bra03]. 1 Contrairement aux formats propriétaires (WMA, Realmedia...) 2 Moving Picture Experts Group 3 Il existe une extension propriétaire de chez Fraunhofer qui autorise l utilisation des fréquences 8, 11,05 et 12 khz 5

11 Le principe de la compression MP3 repose sur la psychoacoustique, c est de là que vient l appellation de codeur basé sur un modèle perceptuel. La psychoacoustique est l ensemble des phénomènes régissant la perception d un son. Elle comprend le masquage (aussi bien fréquentiel que temporel) d un son par un autre de plus forte intensité qui lui est proche et la prise en compte des seuils de perception d un son suivant sa fréquence. Toutes ces notions sont détaillées dans [Bar06]. L algorithme fait intervenir, entre autre, un banc de filtre, une boucle de quantification ou encore un codage Huffman. Notons que pour les couches 1 et 2 celui-ci ayant lieu après la quantification la notion de virgule flottante/fixe n a pas lieu d être. Pour la 3 e couche en revanche le codage fait partie de la boucle de quantification, il peut donc avoir une influence sur la façon d effectuer la conversion. Le diagramme par blocs d un encodeur MP3 est présenté sur la figure 1.1. Fig. 1.1 Schéma bloc d un encodeur MP3 [Bra03] Algorithme (basé sur [Pan95]) Afin de mieux comprendre le fonctionnement de la compression, il convient d étudier l algorithme et plus particulièrement les trois étapes importantes que sont la décomposition du signal par la banque de filtres, le modèle perceptuel et enfin la quantification, qui peut avoir une influence sur les parties précédentes [Bra03] Banque de filtres Le banc de filtres sert à répartir le signal sur 32 bandes de fréquence de largeurs égales. Dans le cas du MP3, ce banc peut se décomposer en un «filtre polyphase» mis en cascade avec une transformation en cosinus modifiée. 6

12 Filtre polyphase Le filtre polyphase est un filtre qui sépare le signal sur les 32 bandes de sorties. Son équation est : 63 7 s t [i] = M[i][k] (C[k + 64j] x[k + 64j]) (1.1) k=0 j=0 Où i est l index de la bande de fréquence allant de 0 à 31. s t [i] est la sortie du filtre pour la bande i à l instant t. C[n] est l ensemble des coefficients de la fenêtre de filtrage. x[n] est l entrée. Les 512 échantillons d entrée sont stockés dans un tampon circulaire dont les valeurs sont renouvelées par bloc de 32. M est la matrice des coefficients du filtre dont le terme général est : (2i + 1) (k 16) π M[i][k] = cos (1.2) 64 Ce filtre correspond à 32 filtres passe-bandes «classiques» mis en cascade ave une décimation. Pour chaque bloc de 32 échantillons traité, la sortie se compose d un échantillon pour chaque bande. Le signal est donc sous échantillonné par 32. Le traitement est dit en fréquence critique, car le nombre de sous bandes est égal au rapport de décimation. Ce type de filtrage présente trois inconvénients majeurs : le fait que les bandes passantes soient fixées et égales ne correspond pas à la perception humaine du son, cette opération introduit une dégradation du signal mais elle n est pas audible, le recouvrement des filtres ajouté au sous échantillonnage en sortie peux conduire à des phénomènes de recouvrement de spectre. Le filtre composite prévoit des les annuler lors de la synthèse du signal. Il peuvent néanmoins favoriser l apparition d artefacts auditifs lors de la compression. Pour résoudre ce dernier problème et améliorer la précision de la décompostion, le codeur MP3 intègre une transformation en cosinus modifiée sur chacune des bandes. Transformation en cosinus modifiée (MDCT) Cette transformation sert à affiner le découpage fréquentiel permettant ainsi d éviter les recouvrements de spectre. Il s agit d une décomposition en cosinus sur des blocs dont la taille est soit 6 échantillons (pour une précision temporelle) soit 18 échantillons (pour une précision fréquentielle). Les fenêtres utilisées se recouvrent à 50%, leurs tailles respectives sont donc de 12 et 36 échantillons. Pour chaque échantillon, cette transformation peut fonctionner sur des blocs courts (pour toutes les bandes), sur des blocs longs (pour toutes les bandes) ou en mode mixte (blocs longs pour les deux bandes basses fréquences et blocs courts pour les autres). Une fois le signal décomposé, il faut le quantifier. L intérêt de ce type de codeur est que la quantification s appuiera sur un modèle relatif à la perception humaine. 7

13 Modèle perceptuel Le principe du modèle perceptuel est de déterminer, en fonction de la fréquence, la quantité de bruit qu il est possible d ajouter sans que cela ne soit perceptible. Cette information est ensuite utilisée pour la quantification. Le premier problème est de s assurer que l échantillon en cours d encodage est bien le même que celui qui a été traité dans le modèle perceptuel. En effet les temps de calcul de ces deux opérations sont différents, il est donc nécessaire d ajouter un retard fixe facilement déterminable. Une fois cette opération de recalage réalisée, il faut décomposer le signal dans le domaine fréquentiel. La décomposition issue du banc de filtres est inutilisable ici car elle n est pas assez précise. Le signal est donc décomposé grâce à une transformation de Fourier sur une fenêtre de 1024 points. Les valeurs sont ensuite regroupées en bandes critiques. Une bande critique est telle que : «Des sons à l intérieur de la bande critique influencent d autres sons se trouvant dans la même bande.[...] La bande critique peut être considérée comme un filtre passe bande, dont la réponse fréquentielle correspond grossièrement à la courbe de réponse des nerfs auditifs» [Bar06]. En s appuyant sur des règles venant de la psychoacoustique, le modèle perceptuel détermine, pour chaque bande critique, la quantité minimale de signal à partir de laquelle un son est perçu. Ces valeurs sont utilisées lors de la quantification, pour connaître le bruit de quantification admissible qu il est permis d ajouter dans chaque bande de fréquence Quantification Dans le cas du MP3, les parties quantification et codage sont indissociables. La partie quantification-codage de l algorithme est composée de deux boucles imbriquées. Boucle intérieure : le but de cette boucle est le contrôle du taux de compression. Les valeurs quantifiées sont codées en utilisant un codage Huffman, de manière à ce que le bloc codé respecte bien les contraintes de débit fixées. Dans le cas contraire, il est nécessaire d ajuster un gain global (s appliquant sur l ensemble de 32 bandes) pour augmenter le pas de quantification et ainsi réduire le nombre de bits utilisés. Cette opération est répétée jusqu à ce que le taux de compression souhaité soit atteint. Boucle extérieure : le but de cette boucle est le contrôle du bruit de quantification. Il faut vérifier que, dans chacune des bandes, le bruit introduit par la quantification est inférieur au seuil de masquage déterminé par le modèle psychoacoustique. Dans le cas contraire, le facteur d échelle de la bande est ajusté de manière à diminuer le bruit de quantification. À chaque fois qu un facteur d échelle est modifié, il faut réexécuter la boucle intérieure pour trouver le codage correspondant. Cette boucle est itérée tant que le bruit introduit ne respecte pas les contraintes imposées par le modèle perceptuel. L imbrication des deux boucles ne converge pas forcément, ainsi il convient parfois d ajuster le modèle psychoacoustique au taux de compression que l on veut atteindre [Bra03]. 8

14 1.1.3 L implantation en virgule fixe Il existe relativement peu d implémentations en virgule fixe de codeurs MP3. Cela est sans doute dû en partie à la complexité de l algorithme. L institut Fraunhofer a cependant mis au point un modèle d algorithme pouvant être optimisé pour différentes architectures, le CDK (Core Design Kit [GLL03]). Il s agit d un code générique d un algorithme de compression en virgule fixe. Une fois l architecture cible connue, il est possible d optimiser ce code en fonction du matériel sélectionné. Ce type de démarche pose les problèmes suivants : le code ne peut fonctionner que sur certaines architectures (même si les plus courantes sont compatibles), il faut dans tous les cas optimiser le code pour le faire fonctionner sur la cible, pour chaque algorithme de compression, il faut redévelopper un nouveau code. Il parait donc intéressant de pouvoir convertir automatiquement un code en arithmétique virgule flottante vers une arithmétique en virgule fixe et de mettre au point, pour cet outil, une méthodologie de conversion pour les algorithmes de compression audio. Cette procédure peut être étendue à d autres codeurs fonctionnant sur le même principe, les critères de qualité à respecter restant les mêmes. Ce type d outils existe déjà, il reste à mettre au point la méthodologie pour les codeurs audio. Dans ce but, il convient d étudier le type de bruits que génère une conversion vers une arithmétique en virgule fixe et de faire le point sur les différents outils existants. 1.2 Techniques de conversion virgule flottante vers virgule fixe Arithmétique virgule fixe Cette partie est un rappel des enjeux et des problèmes liés au calcul en arithmétique virgule fixe. Le polycopié de cours de traitement numérique du signal en 2 e année à l ENSSAT [SM05] et la thèse de doctorat de Daniel Menard [Men02] apportent plus de précisions sur le sujet Codage des nombres Avant d envisager la conversion d une arithmétique en virgule flottante vers une autre en virgule fixe, il convient de rappeler quelques notions de base sur le codage des nombres. Entiers Un entier relatif sur b bits peut être représenté de deux manières différentes : la représentation signe-valeur absolue, où la donnée est représentée par un bit de signe et b 1 bits pour le module, la représentation en complément à 2, où les entiers positifs sont codés en binaire naturel et les entiers négatifs sont obtenus en ajoutant 1 au complément à 1 de la valeur absolue. Si x > 0 alors x = x

15 Codage virgule fixe Dans le cas d une arithmétique en virgule fixe, les données sont composées d une partie entière et d une partie fractionnaire. La taille de ces parties reste fixe au cours du traitement. Le format d une donnée est entièrement défini par la longueur de sa partie entière, de sa partie fractionnaire et le type de représentation choisi. Codage virgule flottante Pour le codage en virgule flottante, le nombre est représenté par un bit de signe, un exposant u et une mantisse. L exposant sert à fixer le facteur d échelle tandis que la mantisse représente la valeur à coder, divisée par le facteur d échelle Conversion en virgule fixe La conversion d un algorithme en arithmétique virgule fixe peut se décomposer en trois étapes successives : la détermination de la dynamique des données, puis de la position de la virgule et enfin de la largeur des données. La détermination de la dynamique des données consiste à chercher le domaine de définition des données de l application. Il existe deux approches différentes. La dynamique peut être déterminée à partir de simulations de l algorithme en virgule flottante. Cette approche ne garantit pas l absence de dépassement. L autre méthode dite analytique consiste à fixer la dynamique des entrées et à la propager à travers les divers opérateurs pour trouver la dynamique des données dans l algorithme. Cette démarche permet de garantir l absence de débordement en se plaçant dans le pire des cas, elle est par conséquent très pessimiste. La dynamique des données permet de déduire la position de la virgule par rapport au bit de poids fort. Ceci afin d éviter les débordements lors des différents calculs. Les règles associées aux différents types d opérateurs courants (addition, multiplication...) sont à la base de cette étape. Cette transformation revient à fixer la longueur de la partie entière de la donnée. Pour obtenir un format complet, il faut déterminer la largeur des données (ce qui revient à fixer la largeur de la partie fractionnaire). Cette partie dépend du type d implantation à réaliser. Dans le cas d une implantation logicielle, la largeur des données dépend des types manipulés par le processeur. Tandis que pour une implantation matérielle, l objectif est de réduire la surface d implantation, les coûts et la consommation. Il faut donc chercher à minimiser la largeur des données tout en respectant les contraintes qu imposent les critères de qualité Évaluation de la précision La perte de précision liée au passage en virgule fixe peut être modélisée par un bruit. Ce bruit découle des lois qui régissent la quantification. C est cette donnée qu il faut mettre en relation avec les critères de qualité à respecter. 10

16 Après avoir détaillé les différentes étapes de la conversion d un algorithme en virgule flottante vers un autre en virgule fixe, il apparaît qu effectuer cette opération «à la main» peut très vite s avérer fastidieux. Il est par conséquent intéressant de disposer de systèmes permettant de convertir automatiquement un algorithme en virgule fixe, sous contraintes de qualité Outils de conversion Il existe plusieurs outils pour la conversion d un algorithme d une arithmétique en virgule flottante vers une arithmétique en virgule fixe. Les deux principaux sont présentés ci-dessous. La fin de cette partie explique la méthodologie de conversion mise au point au sein de l équipe R2D Autoscaler for C [KKS00] Ce premier outil s appuie sur la plate forme SUIF 4 pour analyser le code et déterminer la dynamique des données par simulation. Pour cela, il faut modifier le programme en appelant la routine range après chaque affectation de nombre en virgule flottante. Une simulation du programme permet d obtenir la dynamique des données. Un code en integer C est ensuite généré. Ce système ne définit donc pas de spécification virgule fixe à proprement parler mais un code avec des données sous forme d entiers et une table regroupant la position de la virgule pour chaque variable. Tous les opérateurs «flottants» sont également convertis en opérateurs «entiers» [KKS97]. Un inconvénient de cette méthode est que, la prise en compte de la contrainte de précision dans un système basé sur la simulation entraîne des temps de calcul élevés. De plus le code obtenu n est pas optimisé pour une architecture donnée, ce qui réduit son intérêt en vue d une implantation FRIDGE 5 FRIDGE est un environnement de développement pour l implantation de programmes codés en virgule fixe sur DSP. Il inclut un outil de conversion d un code en ANSI-C virgule flottante vers une représentation virgule fixe en SystemC. La transformation s effectue en plusieurs étapes : Le programmeur commence par «annoter» son code en indiquant, pour certaines variables, la spécification virgule fixe. Puis il simule le programme pour vérifier que les spécifications ajoutées ne dégradent pas trop les performances. Vient ensuite la phase d interpolation lors de laquelle, par propagation des spécifications virgule fixe, FRIDGE détermine la dynamique de l ensemble des données. On obtient enfin la spécification virgule fixe en SystemC du programme. FRIDGE permet également, une fois la conversion effectuée, d obtenir un code C optimisé en vue d une implantation sur un DSP c62x de chez Texas Instruments [CKLM02]. 4 Stanford University Intermediate Format 5 Fixed-point programming and DesiGn Environment 11

17 Cet outil permet de prendre en compte la contrainte de précision lors du choix de la spécification virgule fixe, mais elle ne fait pas directement partie du calcul. De plus, le code peut être optimisé pour une implantation mais seulement vers une cible, ce qui réduit les possibilités d utilisation, notamment en vue d une implantation matérielle Méthodologie mise en place au sein de l équipe R2D2 Cette partie s achève par la présentation de la méthodologie mise au point au sein de l équipe R2D2. Le processus de conversion est le suivant [MCFS02] : à l aide de SUIF, l algorithme initialement codé en C (virgule flottante) est représenté de manière à pouvoir formaliser le programme sous forme d un CDFG 6. Ce graphe servira de base de travail pour déterminer la dynamique des données. Il est ensuite possible de déterminer la position de la virgule (opérations de recadrage à placer), puis le type de données à utiliser. Il faut enfin calculer le rapport signal-à-bruit de quantification. S il est convenable le code est optimisé en vue de son implantation. Les principales différences avec les outils évoqués plus haut résident dans la détermination de la dynamique des données, l évaluation précise du rapport signal-à-bruit de quantification et la possibilité d optimiser le code pour différentes cibles. Méthode de détermination de la dynamique des données Les méthodes précédentes comportaient toutes leurs inconvénients (lenteur pour la simulation, restriction aux systèmes non-récursifs pour FRIDGE). L intérêt de la méthodologie présentée ici, est qu elle s applique à tous les systèmes linéaires invariants dans le temps (qu ils soient récursifs ou non). Elle s appuie sur l estimation de la puissance du bruit de quantification pour déterminer le codage des données. Dans le cas des systèmes non-récursifs, la procédure est semblable à celle utilisée dans FRIDGE. Elle est basée sur la propagation de la dynamique des entrées à travers le système. Pour les systèmes récursifs, le graphe flot de signal est transformé en plusieurs graphes sans cycle en s appuyant sur la méthode décrite dans [MS02]. La sortie du système est ainsi liée à chaque entrée par une fonction de transfert. Cette information permet de calculer le rapport signal-à-bruit de quantification. Optimisation du code en fonction de la cible Une fois trouvée la spécification en virgule fixe, il reste à générer le code source du programme. Là encore, cette méthodologie présente un avantage. En effet, le code peut être optimisé en vue de son implantation. Le processeur est décrit à l aide du langage ARMOR. Le code est généré en utilisant le logiciel CALIFE. 6 Control Data Flow Graph 12

18 Quelle que soit la méthode employée, le critère de qualité à respecter est le rapport signalà-bruit de quantification. Reste à savoir, dans le cas d un codeur audio basé sur un modèle perceptuel, quel est le lien entre ce paramètre et une notion de dégradation perçue par l oreille humaine. 1.3 Mesures de qualité d un algorithme de compression audio Différentes techniques de mesure Pour pouvoir mettre en place une procédure d implantation d un codeur MP3 en virgule fixe sous contrainte de précision, il faut être en mesure de définir un critère de qualité. La base des codeurs audios perceptuels reposant sur la répartition «au mieux» du bruit de quantification de manière à ce que celui-ci ne soit pas perceptible, l utilisation d un simple rapport signal-à-bruit comme critère de précision n a aucun sens. Il a ainsi été nécessaire de mettre au point d autres techniques de mesure. Historiquement, la première est la mesure subjective, par tests d écoute Tests d écoute Les procédures à suivre pour effectuer des tests d écoute en vue de déterminer la qualité de matériaux audios large bande ont été standardisées par l ITU-R 7. La marche à suivre peut être décomposée de la manière suivante [SGLT] : Tout d abord les extraits audios sur lesquels seront basés les tests sont choisis. Cette sélection s effectue en fonction des problèmes que les différents morceaux peuvent poser aux codeurs. La difficulté ici est de déterminer un panel qui soit à la fois représentatif et court pour ne pas rendre les tests trop longs et fastidieux. Les échantillons choisis et encodés sont ensuite regroupés par bloc de tests (15 extraits). Chaque jour trois blocs sont testés. Cette limite est fixée pour éviter que les phénomènes de fatigue auditive apparaissent chez les testeurs et ne viennent fausser les tests. Il faut de plus faire attention à placer, au sein des différents blocs, les extraits de manière à ce qu aucun codec ne soit privilégié dans ses conditions d écoute. Les extraits sonores ainsi ordonnés sont prêts à être testés. Dans [SGLT] l écoute s effectue par groupes de deux sur trois après-midis consécutives. Une phase d entraînement à lieu chaque matin. Le système de notation s échelonne sur 41 niveaux de 1 (très dérangeant) à 5 (imperceptible). La mise en place de ces tests est très contraignante et coûte excessivement cher. Les résultats dépendent largement des extraits choisis, du panel de testeurs ou encore des conditions d écoute proposées. Ainsi, cette méthode est impossible à formaliser, ce qui la rend inexploitable dans notre cas Modélisation du système Une première approche en vue de fournir une méthodologie de mesure objective de la qualité des codecs audios est de chercher à caractériser le système (trouver sa fonction de 7 International Telecommunication Union - Radiocommunications sector 13

19 transfert). La qualité du codec découlerait de l interprétation de la réponse impulsionnelle du système. Cette manière d envisager les choses présente l avantage d aboutir à une méthode qui est, contrairement aux tests d écoute, indépendante du signal d entrée. En revanche, cette approche ne dépend pas de la manière dont les signaux sont perçus par l humain, ce qui peut poser problème. De plus, ce type de procédure est fortement dépendante du système à tester. Il faut donc, dans le cas d une comparaison de différents codecs, caractériser chacun des algorithmes. Cette opération peut s avérer difficile quand on sait que les codeurs sont des systèmes non linéaires variants dans le temps [Bee98]. Il était donc nécessaire de mettre au point une méthodologie de mesure adaptée au fonctionnement des codecs Approche perceptuelle Avec la multiplication des codeurs audios basés sur un modèle perceptuel, il a été nécessaire de mettre au point un moyen de les comparer. Il parait logique dès lors, de privilégier l approche perceptuelle dans les mesures aussi. Que ce soit avec les premiers algorithmes, comme PAQM 8 décrit dans [Bee98], et celui mis au point un peu plus tard par Thilo Thiede et Ernst Kabot dans [TK96] ou encore plus récemment avec l algorithme PEAQ 9 défini par l ITU-R et décrit dans [Kab02], le principe de fonctionnement reste sensiblement le même. Un schéma bloc exposant les grandes lignes de ce type de mesures est présenté sur la figure 1.2. Le principe est relativement intuitif, même si la réalisation l est moins. Le signal compressé et le signal d origine sont transformés par un filtre modélisant le fonctionnement de l oreille. Ces deux signaux sont ensuite comparés pour en obtenir un troisième, l erreur. L analyse de cette erreur en fonction de la perception qu en aurait le cerveau humain permet de dégager plusieurs coefficients représentatifs de la qualité de l encodage. Toutes les descriptions qui suivent sont basées sur l algorithme PEAQ, celui-ci étant le plus récent et apparaît être également le plus utilisé Modélisation de l oreille La modélisation du conduit auditif peut s effectuer par deux méthodes : l une basée sur une FFT, l autre, plus récente, sur une décomposition par banc de filtres. Cette dernière présente l avantage d offrir une meilleure résolution fréquentielle. Le traitement du signal une fois décomposé est très proche d une méthode à l autre. Le signal décomposé est tout d abord filtré par un système dont la réponse fréquentielle est proche de celle de l oreille, puis (dans le cas de la FFT) le signal est reparti selon les bandes critiques. Un bruit représentant celui généré dans le pavillon de l oreille est ensuite ajouté afin d affiner le modèle. Le signal est enfin transformé par «étalement» fréquentiel et temporel des pics d intensité. Cette dernière opération a pour but de recréer l effet de masque présent lors de la perception d un son. 8 Perceptual Audio Quality Measure 9 Perceptual Evaluation of Audio Quality 14

20 Fig. 1.2 Principe des mesures basées sur un modèle perceptuel [vbd04]. Le signal de référence et celui compressé sont traités de la même façon. La différence de ces deux signaux est traitée de manière à simuler la façon dont elle serait perçue par le cerveau. Cette analyse permet de dégager les coefficients pour juger de la qualité de la compression Coefficients de l algorithme PEAQ L analyse du signal d erreur conduira, quelle que soit la méthode utilisée, au calcul de coefficients directement représentatifs de la dégradation perçue du son due à la compression. Ces coefficients sont relatifs, selon que l on a utilisé une FFT ou un banc de filtres : à la distortion ajoutée, au rapport bruit/masque (abordé partie page 8), à la structure harmonique de l erreur, ou encore aux parties manquantes du signal. Il convient enfin de combiner ces informations de manière à obtenir un critère de qualité semblable à celui introduit lors des tests subjectifs. La technique utilisée dans [Kab02] s appuie sur un réseau de neurones. Ces méthodes ont vu, au cours des dernières années, leurs modèles s affiner. Ce qui leur permet d être aujourd hui une alternative fiable aux tests d écoute. Même si, il est vrai, elles ne peuvent pas les remplacer totalement, en tant que référence au moins. Cette étude de l état de l art concernant les techniques de compression audio et de conversion en virgule fixe a permis de mettre en avant, la complexité des algorithmes de compression basés sur des modèles perceptuels. Ceux-ci sont en effet des systèmes non linéaires, variants dans le temps est présentant des parties récursives. 15

21 D autre part, les outils actuels de conversion d algorithme d une arithmétique en virgule flottante vers une arithmétique en virgule fixe sont très restreints quant aux possibilités de traiter des systèmes présentant des irrégularités (non linéarité, variation dans le temps...). La méthodologie mise en place au sein de l équipe R2D2 permet néanmoins, après quelques modifications sur la structure du graphe flot de signal du système, de convertir des algorithmes non linéaires ou présentant des parties récursives. Le problème qui se pose avec son utilisation est de trouver un moyen de faire le lien entre le rapport signal-à-bruit de quantification (critère de précision déterminé lors de la conversion) et les critères de qualité objectifs fournis par des méthodes du type PEAQ (seule manière analytique valide de juger la qualité d un algorithme de compression). 16

22 Chapitre 2 Méthodologie de l étude L étude du format MP3 révèle qu un critère du type rapport signal-à-bruit n est pas pertinente pour juger la qualité des algorithmes de compression basés sur un modèle perceptuel. La méthodologie de conversion a donc due être adaptée aux contraintes liées aux codeurs audio large bande. La première étape consiste à déterminer la quantité de bruit de quantification qu il est tolérable d ajouter dans le système. L étude théorique de chacun des blocs fonctionnels du système permet ensuite de déterminer la spécification virgule fixe correspondant à un tel niveau de bruit. Il convient enfin de vérifier, par simulation, que l algorithme en virgule fixe respecte bien les contraintes initialement imposées. 2.1 Évaluation du bruit admissible Définition du panel de test Comme cela a été expliqué précédemment (au paragraphe page 13), le choix des échantillons sonores qui serviront à faire les tests est primordial. Cette étape est nécessairement la première, car le panel de tests sert notamment, à choisir le codeur utilisé. Les choix effectués dans cette étude sont motivés de la façon suivante : deux morceaux où la voix est très présente : buckley.wav 1 (morceau interprété par un chanteur seul), chant.wav (chanté par une chorale), quatre échantillons où les instrument jouent en solo ou presque. Que ce soit sur des enregistrements récents : piano.wav (un morceau de piano présentant une première partie en arpège et des accords plaqués sur la fin) et truffaz.wav (un morceau de trompette en sourdine choisi pour le son caractéristique de l instrument). Ou encore des enregistrements plus anciens (clarinet.wav et guitar.wav), deux enregistrements de musique «actuelle» : dist.wav (une guitare jouant des accords en distortion) et electro.wav (un morceau de musique électronique dans lequel le son a été fortement compressé), deux morceaux interprétés par des ensembles d instruments plus complets (orchestre.wav, chanson.wav). Chacun des échantillon a été choisi en fonction des problèmes qu il pourrait poser au codeur (restitution de la pureté d un son, encodage d un morceau dont le volume sonore est très faible 1 Le détail des morceaux de musique utilisés pour réaliser les échantillons et présenté en annexe A.1 page vi 17

23 très élevé...). Une fois ce panel de test fixé, il est possible de l utiliser pour choisir l encodeur sur lequel repose l étude Choix du codec Les mesures de qualité s effectuent sur des échantillons non compressés. Toute l étude repose donc sur le choix de la chaîne d encodage/décodage. Cette étape est primordiale pour s assurer de l intérêt des résultats à venir. En effet, si l encodeur réalise une compression de piètre qualité en virgule flottante, il est peu probable que son équivalent en virgule fixe soit utilisable Encodeur Le choix de l encodeur repose sur plusieurs critères. Tout d abord la qualité de l encodage. Il est aussi nécessaire de faire attention à la simplicité du code source sur lequel il faudra travailler pour passer en virgule fixe. Enfin, il faut bien évidemment que le code source soit disponible. Ces critères ont conduit à retenir trois encodeurs. Un codeur très simple : Shine, un autre un peu plus complexe, optimisé pour les hauts débits : Blade et enfin un troisième très complexe mais qui est l une des références en la matière : Lame. Des tests à différents débits permettent de déduire qu en dessous de 192 kbit/s aucun des encodeurs «simples» ne permet une compression de qualité convenable (cf. tableaux en annexe A.2 page vi). Le débit en sortie est donc fixé à 192 kbit/s. De plus, même à ce débit, la compression réalisée par Shine n est pas satisfaisante. Pour finir, comme il n est pas envisageable, dans les délais imposés par un stage de master, de penser comprendre et travailler sur un code aussi complexe que celui de Lame, le codeur retenu pour l étude est Blade. Shine Blade Lame ODG 2 ODG ODG Buckley -0,63-0,36-0,03 Chanson -0,49-0,23-0,15 Chant -1,21-0,21-0,14 Clarinet -1,67-0,47-0,08 Dist -0,68-0,37-0,13 Electro -0,56-0,29 0 Guitar -1,46-0,51 0 Orchestre -1,42-0,29-0,1 Piano -0,81-0,53 0,04 Truffaz -0,85-0,38-0,09 Moyenne -0,98-0,36-0,06 Tab. 2.1 Comparatif des trois encodeurs à 192 kbit/s 2 Objective Difference Grade 18

24 Décodeur Le décodeur aura une influence sur les mesures de qualité, mais, contrairement à l encodeur, aucune modification du code n est prévue. Le seul critère à privilégier est donc la qualité. De plus les différences entre les décodeurs sont moins grandes qu entre les encodeurs, car il s agit ici de restitution uniquement et non plus de transformation du signal. Les deux décodeurs testés sont MAD qui est très utilisé dans le monde du logiciel libre (Audacity, K3B, Mplayer...) et Lame qui là encore fait figure de référence. Les tests sont menés sur des fichiers encodés à 192 kbit/s avec Blade. Ils conduisent à privilégier le décodeur Lame même si (comme le montre le tableau ci-dessous) les différences de qualité sont minimes. Lame MAD ODG ODG Buckley -0,32-0,4 Chanson -0,22-0,23 Chant -0,21-0,21 Clarinet -0,47-0,47 Dist -0,36-0,37 Electro -0,29-0,29 Guitar -0,5-0,51 Orchestre -0,28-0,29 Piano -0,54-0,51 Truffaz -0,37-0,39 Moyenne -0,36-0,37 Tab. 2.2 Comparatif des deux décodeurs (encodeur blade à 192 kbit/s) Ajout du bruit La méthodologie de conversion d un algorithme en virgule flottante vers une arithmétique virgule fixe repose sur l évaluation du bruit de quantification comme critère de qualité. Il convient donc de déterminer qu elle est la quantité de bruit qu il est possible d ajouter tout en respectant un critère de qualité fixé (ici le taux objectif de dégradation) Modèle du bruit [Men02] Le bruit généré par la perte de précision suite à un passage en virgule fixe peut être de deux formes. Soit le bruit en sortie est prédominant auquel cas, le bruit de quantification est un bruit blanc uniforme. Soit aucun des bruits n est prépondérant en terme de puissance, cette fois la quantification introduira un bruit blanc gaussien. Dans les deux cas, comme le mode de quantification choisi est l arrondi, le bruit est de moyenne nulle. 19

25 N ayant aucune connaissance a priori sur les puissances des différents bruit, la solution qui a été retenue est d introduire un bruit qui est la somme de deux bruits blanc : l un gaussien(b N ), l autre uniforme(b U ). Il est possible de faire varier la proportion de chacun des bruits dans le bruit en sortie et d espérer ainsi avoir un modèle s approchant au mieux de la réalité pour chacun des blocs. L équation du bruit est : Mesures de bruit admissible B = α B U + (1 α) B N α [0, 1] (2.1) Une fois le modèle de bruit fixé, il est nécessaire de déterminer la façon dont il est ajouté. La solution retenue ici est d inclure des sources de bruit à la sortie de chacun des principaux blocs fonctionnels (Cf. figure ci-dessous). Pour simplifier les calculs, le bruit est ajouté en utilisant le moteur Matlab. Le code modifié est basé sur Blade simplifié. Chacune des modifications préalables à l ajout du bruit est contrôlée afin de s assurer qu aucune dégradation de l odg n en résultera. Fig. 2.1 Bruits générés lors du passage en virgule fixe, d après [Bra03]. La méthode pour déterminer le bruit admissible est de faire varier la puissance du bruit dans chacune des sources. Ensuite, pour chaque configuration, le panel de test est compressé. Ces manipulations permettent d obtenir des courbes représentant le taux objectif de dégradation en fonction des puissances des bruits ajoutés après chaque bloc fonctionnel. La limite à partir de laquelle, le bruit ajouté devient inacceptable est un odg égal à -1 (ce qui correspond à la limite au delà de laquelle, les effets de la compression sont dérangeants). La mesure du bruit admissible constitue la première étape de la conversion. C est aussi celle qui est particulière à cette étude, car le bruit de quantification peut généralement faire office de critère de qualité. Il est ensuite nécessaire d étudier chacun des blocs fonctionnels de manière à dégager un modèle du bruit généré par le passage en virgule fixe. 20

26 2.2 Étude des bloc fonctionnels Principe général L étude théorique sert à dégager un modèle du bruit généré par la passage en arithmétique virgule fixe de chacun des blocs. Ce modèle est ensuite utilisé pour l optimisation de la spécification virgule fixe en fonction de la contrainte de précision. L intérêt de cette démarche est que l exécution du modèle est beaucoup plus rapide que la simulation en virgule fixe. Cette méthode repose sur un travail sur le graphe flot de signal. Il est tout d abord nécessaire de déterminer la dynamique des données dans le système afin d éviter les dépassements. Cette information est propagée dans le système en s appuyant sur les règles associées aux opérateurs en virgule fixe. Elle nécessite aussi une connaissance sur les données manipulées. Le modèle de bruit est une combinaison des bruits introduits lors des différents recadrages liés aux contraintes des opérateurs en virgule fixe. Chaque bruit est propagé dans le système de manière à obtenir son influence sur la sortie. La somme de ces résultats correspond au bruit introduit lors du passage en virgule fixe du système. Le modèle de bruit est codé sous Matlab. Pour pouvoir le vérifier, chaque bloc a été codé (à l identique de code C) sous Matalab à la fois en virgule fixe et en virgule flottante. La comparaison des sorties de ces deux fonctions permet d obtenir le bruit réellement introduit lors du passage en virgule fixe. Une comparaison avec les résultats du modèle servira de validation de ce dernier. Dans un premier temps, seuls le filtre polyphase et la MDCT ont été étudiés Filtre polyphase Le filtre polyphase peut se décomposer en 64 cellules élémentaires comme celle représentée sur la figure 2.2. L entrée correspond à la branche notée m x = 0. Les différents bruits introduits sont relatifs : au changement de format en entrée (b e ), et aux recadrages que nécessitent l utilisation des opérateurs en virgule fixe (b m1, b m2 et b a1 ). Il est intéressant de noter qu aucun bruit n est généré en sortie du dernier additionneur car le format spécifié en entrée correspond à celui en sortie. Influence du bruit en entrée Le bruit introduit en entrée est dû à l adaptation du format des données à l entrée de l additionneur. C est le seul bruit que se propage à travers une fonction de transfert. En s appuyant sur [Men02] il est assez rapide de déduire que l influence de ce bruit sur chacune des bandes est : 63 7 b ye (i) = [M[i][k] (C[k + 64j])] 2 b e (2.2) k=0 j=0 21

27 be mx=0-4 C[k] bm1-3 8 entrées ba1-3 M[i][k] 3 bm entrées 1 Fig. 2.2 Cellule élémentaire du filtre polyphase. Où les notations sont identiques à celles enoncées au 1.1.2, à savoir : i est l index de la bande de fréquence allant de 0 à 31, C[n] est l ensemble des coefficients de la fenêtre de filtrage et M est la matrice des coefficients du filtre. Influence des bruits «en amont» du deuxième multiplieur L influence des bruits en sortie de du premier multiplieur (b m1 ) et du premier additioneur (b a1 ) peuvent être étudiés de façon conjointe étant donné que le bruit en sortie du multiplieur peut-être ramené à un bruit en sortie de l additionneur dont l expression est b m1 = 8 b m1. L influence de ces deux bruits en sortie est donc (en gardant les notations précédentes) : 63 b y1 (i) = M[i][k] 2 (8 b m1 + b m1 ) (2.3) k=0 Bruit total Le bruit en sortie de la deuxième multiplication (b m2 ) peut être ramené à un bruit en sortie dont l expression est b m2 = 64 b m2. Le bruit généré, dans chacune des sous-bande de fréquence, par le passage en virgule fixe est lui de la forme : b qp oly (i) = b ye (i) + b y1 (i) + b m2 (2.4) Le code source du modèle permettant de calculer la puissance de ce bruit est joint en annexes (C.1.1 page xi). 22

28 2.2.3 MDCT La transformé en cosinus modifiée possède trois modes de fonctionnement, il est donc nécessaire de mener l étude théorique pour chaque mode. Les modes fenêtres longues et mixtes incluent un traitement anti-recouvrement qu il faut prendre en compte. Ça n est pas le cas pour les fenêtres courtes Fenêtres courtes Dans un fonctionnement en mode court, la MDCT peut se décomposer en 12 cellules élémentaires comme celle représentée sur la figure 2.3. L entrée correspond à la branche notée m x = 1. La dynamique de l entrée découle de celle de la sortie du filtre polyphase. Comme auparavant, les bruits introduits sont relatifs au changement de format en entrée (b e ), et aux recadrages que nécessitent l utilisation des opérateurs en virgule fixe (b m1 et b m2 ). mx=1 be 0 Ws[j] bm1 2 MDCTs[j][i] 1 bm entrées 1 Fig. 2.3 Cellule élémentaire de la MDCT en mode court. Influence du bruit en entrée Le bruit introduit en entrée est dû à l adaptation du format des données à l entrée du multiplieur. C est le seul bruit que se propage à travers une fonction de transfert. Son expression sur chacune des sous-bande est : 36 b ye (i) = [W s [j] MDCT s [j][i]] 2 b e (2.5) j=0 Où i est l index de la bande allant de 0 à 5. W s est l ensemble des coefficients de la fenêtre de filtrage et MDCT s est la matrice des coefficients du filtre. π (n + 0.5) W s [n] = sin [ 12 ] π (2 n + 6) 2 i MDCT s [n][i] = cos 24 3 (2.6) (2.7) 23

29 Influence du bruit en sortie du premier multiplieur L influence du bruit en sortie du premier multiplieur (b m1 ) est (en gardant les notations précédentes) : 11 b y1 (i) = MDCT s [n] 2 b m1 (2.8) j=0 Bruit total Le bruit en sortie de la deuxième multiplication (b m2 ) peut être ramené à un bruit en sortie dont l expression est b m2 = 12 b m2. Le bruit généré, dans chacune des sous-bandes, par le passage en virgule fixe est lui de la forme : b qmdct s (i) = b ye (i) + b y1 (i) + b m2 (2.9) Le code source du modèle permettant de calculer la puissance de ce bruit est joint en annexes (C.2.2 page xvi) Fenêtres longues Il est encore une fois possible de décomposer la MDCT cellules élémentaires (36 cette fois) comme celle représentée sur la figure 2.4. L entrée correspond à la branche notée m x = 1. La dynamique de l entrée découle de celle de la sortie du filtre polyphase. Comme auparavant, les bruits introduits sont relatifs au changement de format en entrée (b e ), et aux recadrages que nécessitent l utilisation des opérateurs en virgule fixe (b m1, b m2, b m3 et b a1 ). Influence du bruit en entrée Soit i l index de la bande allant de 0 à 17. W 2 l est le vecteur colonne des coefficients de la fenêtre de filtrage au carré et MDCT 2 l est la matrice des coefficients du filtre au carré. W 2 l [n] = MDCT 2 l [n][i] = [ ] π (n + 0.5) 2 sin (2.10) 12 [ [ ]] π (2 n + 6) 2 i 2 cos (2.11) 24 3 Soit c a et c s les coefficients des papillons anti-recouvrement. Ces deux vecteurs sont de dimensions 8. Soit M ca1, M cs1, M ca2 et M cs2 les matrices carrées définies en annexe B.1.1 page ix 24

30 mx=1 be 0 Wl[n] bm1 2 MDCTl[n][i] 1 bm2 ba entrées 1 c bm entrées 2 Fig. 2.4 Cellule élémentaire de la MDCT en mode long. et M pap la matrice carrée définie par blocs :. M... cs1 0.. Mca1 M pap = 0.. I M ca Mcs2 (2.12) Le vecteur représentant l influence du bruit en entrée sur chacune des bandes en sortie est : B ye = M pap [MDCT 2 L W 2 l ] b e (2.13) Influence du bruit en sortie du premier multiplieur Soit B m1 le vecteur colonne de dimension 36 dont les éléments sont égaux au bruit en sortie du premier multiplieur (b m1 ). En conservant les notations précédentes, l influence de ce bruit est donnée par : B y1 = M pap [MDCT 2 L B m1 ] (2.14) 25

31 Influence des bruits «en amont» du troisième multiplieur Comme expliqué précédemment, l influence des bruits en sortie du deuxième multiplieur (b m2 ) et du premier additioneur (b a1 ) peuvent être étudiés de façon conjointe. Le bruit en sortie du multiplieur est ramené à un bruit en sortie de l additionneur dont l expression est b m2 = 36 b m2. Soit B 2 le vecteur colonne de dimension 18 dont les éléments sont égaux à b m2 + b a1. L influence des deux bruits en sortie est donc (en gardant les notations précédentes) : B y2 = M pap B 2 (2.15) Bruit total Le dernier bruit introduit dans le système est celui en sortie du troisième multiplieur (b m3 ). Ce dernier ne passe pas à travers les papillons anti-recouvrement. Soit B 3 le vecteur colonne de dimension 18 dont les éléments sont égaux à b m3. L expression du bruit généré, en sortie du système, par un passage en virgule fixe est : B qmdct l = B ye + B y1 + B y2 + B 3 (2.16) Le code source du modèle permettant de calculer la puissance de ce bruit est joint en annexes (C.2.5 page xx) Fenêtres de transition Les modes de transitions fonctionnent de la même manière que le mode long. À savoir, la décomposition sur un bloc de 36 échantillons, est suivie du papillon anti-recouvrement. Seuls changent donc, les coefficients de la fenêtre et les bruits générés avant le papillon. Dans le cas d une transition long vers court, les six derniers coefficients de la fenêtres sont nuls (cf. annexe B.2.1 page x). Ce sera aussi le cas pour les bruits b m1, b m2 et b a1. Pour la transition court vers long les six premiers coefficients sont nuls (cf. annexe B.2.2 page x), ce qui se répercute de la même manière sur les bruits. Le calcul du bruit s effectue ensuite en utilisant la même méthode que pour le mode long. Les modèles de bruit permettent de calculer une spécification virgule optimale sous contrainte de précision. Il faut ensuite simuler l exécution du code en tenant compte de ces nouveaux paramètres, ceci afin de vérifier que le modèle utilisé au correspond bien à la réalité. 2.3 Simulation en virgule fixe Une fois les modèles de bruits calculés, et les spécifications virgule fixe déterminées, il convient de simuler le comportement qu a l algorithme de compression en virgule fixe. Cette étape permet notamment, de vérifier la validité des mesures avec un bruit ajouté et d avoir une idée de la précision nécessaire pour respecter les contraintes de qualité de compression. 26

32 2.3.1 Principe de la simulation Les bibliothèques de simulation virgule fixe disponibles librement sont soit insuffisantes pour l utilisation visée (recadrage seulement sur certains formats fixés notamment) soit dans d autres languages (C++ généralement alors que le code source de Blade est en C). Il a donc été nécessaire de mettre au point une fonction de recadrage (cf. annexe D.1 page xxvi). Cette fonction réalise en fait un arrondi à 2 n près (où n est la précision souhaitée en bits). Le codeur a ensuite été testé avec les différents coefficients des fonctions (fenêtres, filtres...) en virgule fixe, de manière à vérifier qu il n y avait pas de changement significatif par rapport à la compression avec l algorithme original. La spécification virgule des constantes multiplicatives n entre en effet pas en ligne de compte dans l étude du bruit généré par la conversion du système d une arithmétique en virgule flottante vers une autre en virgule fixe. Finalement, c est l algorithme qui a été converti en virgule fixe (cf. annexes D.2 et D.3 pages xxvii) et xxx). Cette étape consiste à placer des opérations de recadrage en entrée et en sortie de chaque opérateur de manière à s approcher au mieux du comportement qu aurait le système s il était codé en virgule fixe. L inconvénient principal de ce type de méthode est l accroissement des temps de calcul. Ils ont en effet été multipliés par un facteur compris entre 10 et 100 selon la proportion de l algorithme dont le comportement en virgule fixe est simulé. Il reste finalement à mettre en œuvre des démarches à suivre pour tenter de valider le modèle du bruit expliqué au Protocoles de tests Méthode actuelle L étape initale de la phase de simulation consiste à déterminer, pour un ensemble de puissances de bruit à ajouter, les spécifications en virgule fixe correspondantes. Ce calcul repose sur l utilisation des modèles de bruit décrits plus haut. Cette opération permet d obtenir la largeur des différents opérateurs utilisés dans le bloc fonctionnel. L algorithme considéré est simulé en virgule fixe, une première fois, en utilisant Matlab sur des échatillons courts, de manière à vérifier que, pour la spécification en virgule fixe obtenue, le bruit généré correspond bien aux prévisions. Pour chaque spécification virgule fixe ainsi déterminée, le panel de test est encodé. Un algorithme légérement modifié permet de mesurer le bruit effectivement ajouté. Les relevés de taux de dégradation objective sont ensuite confrontés aux résultats obtenus par la méthode enoncée au paragraphe page 19. Le principal inconvénient de cette méthode réside dans la durée des calculs. En effet, le temps d encodage d un échantillon est multiplié par un facteur 10 à 100 introduit par la simulation virgule fixe. Les extraits sonores considérés sont donc compressés en 300 à 1200 secondes (suivant la durée de l échantillon). Pour un test complet, chaque morceau est encodé 5 à 30 fois. Ce qui conduit à des durées de test pouvant varier d une dizaine d heures à plusieurs jours. 27

33 Perspectives Compte-tenu des durées d encodage, il est difficle d envisager des améliorations au niveau de la durée des mesures. Ce qui peut en revanche changer, c est la manière dont sont effectués ces relevés. Il est possible d aborder le problème, non plus d un point de vue du bruit ajouté, mais en considérant plutôt la robustesse du système face aux pertes de précision. Il est possible de mener ce type d étude en déterminant une spécification virgule fixe qui satisfait des contraintes imposées (en utilisant la méthode abordée ci-dessus), puis en faisant varier, pour un opérateur spécifique, la longueur de la partie fractionnaire. Répétées pour chaque opérateur, ces mesures permettraient d aboutir à une caractérisation de l influence de la précision, au sein de chaque opérateur, sur la qualité de la compression. La localisation d opérations «sensibles» serait rendue possible par l analyse de ces résultats. Ce nouveau protocole de mesures ne résoud en rien le problème des temps de calculs, bien au contraire. En effet, là où il y avait une mesure par puissance de bruit, il y a en général entre 4 et 6 opérateurs dont il faut faire varier la spécification virgule fixe. La durée d exécution du test s en trouvant augmentée d autant. Cette méthode n a donc pas été testée pour l instant. Seule la procédure où la spécification en virgule fixe est déterminée en fonction du bruit ajouté a fait l objet d expérimentations et conduit à des résultats. 28

34 Chapitre 3 Éxpérimentations Les outils développés au cours de la première partie de ce stage ont permis de mener plusieurs types d expérimentations. Tout d abord l algorithme avec les sources de bruit a été utilisé pour déterminer le lien entre le bruit de quantification engendré par le passage en virgule fixe et la qualité de la compression. Ensuite, les différentes spécifications virgules fixes sont calculées avec les modèles. Enfin, en simulant le comportement en virgule fixe de l algorithme, il est possible de vérifier la validité du modèle avec les sources de bruit. 3.1 Bruits admissibles L encodeur peut se décomposer en deux flots de signaux distincts. Le signal qui est traité dans la banque de filtre d une part, le signal dont sont dégagés les paramètres de compression via le modèle perceptuel d autre part. Il parait donc assez naturel de commencer par étudier l influence du bruit dans chacun de ces deux flots séparément, pour ensuite regarder l influence de bruits sur les deux canaux Banque de filtres Filtre polyphase Le signal est traité par la banque de filtres en vue de sa compression. Il est donc intuitif de supposer que le bruit ajouté aura une forte influence sur la qualité finale de l encodage. Les valeurs de puissance de bruit sont donc choisies assez faibles (entre -110dB et -50dB). Comme il a été indiqué précédemment (au 2.1.3) le bruit est la somme d un bruit blanc gaussien (B N ) de moyenne nulle et d un autre uniforme (B U ) sous la forme : B = α B N + (1 α) B U. Le coefficient α varie entre 0 et 1. Ces mesures permettent de vérifier plusieurs points. Tout d abord l influence du coefficient α sur la qualité de la compression. Comme le montre la figure 3.1 ce paramètre n a que très peu d incidence sur le taux de dégradation, c est pourquoi les mesures suivantes ont été relevées pour un α = 0, 5. Le deuxième intérêt des ces expérimentations est de déterminer la puissance maximale du bruit qu il est possible d ajouter tout en conservant une qualité de compression raisonnable. La limite du taux de dégradation étant fixée à -1 (au delà, les effets de la compression sont dérangeants) la puissance maximale du bruit est, en moyenne sur les dix échantillons du panel, -80dB (cf. figure 3.2). Dans le cadre plus restrictif où seul l échantillon supportant le moins bien l encodage est considéré, cette limite descend à -95dB. C est cette dernière valeur qui est retenue pour la suite des expérimentations. 29

35 ODG Puissance du bruit ajouté (db) Fig. 3.1 ODG moyen pour un bruit ajouté après le filtre polyphase avec α {0 0, 25 0, 5 0, 75 1} ODG Puissance du bruit ajouté (db) Fig. 3.2 ODG moyen, minimum et maximum pour un bruit ajouté après le filtre polyphase. 30

36 MDCT La MDCT est la dernière transformation avant la quantification. En général, plus un bruit est généré proche de la sortie, plus son influence est forte. En effet le bruit ne sera pas filtré lors de son passage dans les blocs en aval et les chances d atténuation sont donc d autant plus faibles. Le bruit ajouté est du même type que celui de la partie précédente. Aucun bruit n est pour l instant ajouté en sortie du filtre polyphase. Seule l influence du bruit généré par le passage en virgule fixe de la MDCT est donc pris en compte ici. L étude de l évolution du taux de dégradation objective en fonction de l évolution de la puissance du bruit pour différentes valeurs d α permet de dégager, comme précédemment, que ce paramètre n a que peu d influence sur la valeur de l ODG (cf. figure 3.3). α est donc fixé à 0, 5. D après la figure 3.4, le taux de dégradation objective de l échantillon tolérant le plus mal la compression, reste supérieur au seuil (-1) tant que la puissance du bruit ajouté est inférieure à -100dB. Une fois les seuils de bruits déterminés pour chaque module séparément, il convient de s intéresser aux changements apportés si les bruits sont ajoutés après les deux blocs simultanément ODG Puissance du bruit ajouté (db) Fig. 3.3 ODG moyen pour un bruit ajouté après la MDCT avec α {0 0, 25 0, 5 0, 75 1}. 31

37 ODG Puissance du bruit ajouté (db) Fig. 3.4 ODG moyen, minimum et maximum pour un bruit ajouté après le filtre polyphase Bruit dans les deux blocs Le but de cette partie est de déterminer les seuils de bruit admissibles dans le cas où les deux blocs seraient convertis en virgule fixe. Le paramètre α est fixé à 0, 5 de manière à réduire la charge de calculs (le temps nécessaire pour effectuer le test sur les deux blocs est de l ordre de la semaine). Les valeurs limites de bruit sont choisies en fonction des valeurs trouvées précédemment, à savoir : un bruit inférieur à -80dB pour le filtre polyphase et à -90dB pour la MDCT. La figure 3.5 présente les relevés pour l échantillon dont le taux de dégradation objective est le plus important. Les puissances du bruit en sortie du filtre polyphase sont indiquées en abcisse tandis que les différentes courbes correspondent aux valeurs de la puissance en sortie de la MDCT. L étude de ces résultats conduit à fixer deux couples de seuils différents. Soit le bruit en sortie du filtre polyphase est choisi avec une puissance inférieure à -95dB et dans ce cas, la puissance en sortie de la MDCT ne doit pas excéder -105dB. Soit, s il s avère que ce seuil soit impossible à respecter, il est possible de l augmenter à -100dB. Dans ce cas, la puissance en sortie du filtre polyphase sera limitée à -105dB. Ces expérimentations ont permis de confirmer la première impression concernant les puissances de bruit qu il est tolérable d ajouter sur le signal à traiter. Ces limites restent en effet très faibles, elles n excédent en général pas -100dB. 32

38 , ODG Puissance du bruit ajouté (db) Fig. 3.5 ODG maximum pour un bruit ajouté après le filtre polyphase avec le bruit en sortie de la MDCT dans [-110,-95] Modèle perceptuel L autre partie de l encodeur concerne le modèle perceptuel. Le flot de signal issu de ces blocs n est pas encodé, il sert à dégager des paramètres de contrôle. Il parait donc assez intuitif de considérer que le bruit engendré par le codage en virgule des blocs FFT et modèle psychoacoustique a beaucoup moins d impact sur la qualité de la compression. Pour cette partie toute les mesures sont effectuées en fixant le paramètre α à 0, 5. Les courbes présentées sont les relevés pour l échantillon subissant la plus grande dégradation FFT Dans, le cas de la transformé de Fourier, la dynamique des données en sortie étant tellement grande (jusqu à 2 10 pour une FFT sur 1024 points) qu il est fort probable que la précision n ai pas une grande influence. Plusieurs tests successifs ont conduit a augmenter la puissance du bruit jusqu à 500dB pour essayer d entrevoir des changements significatifs (cf. figure 3.6). Finalement, dans aucun des cas, l ajout de bruit seul après la transformé de Fourrier n a engendré un taux de dégradation objective inférieur à

39 ODG Puissance du bruit ajouté (db) Fig. 3.6 ODG moyen, minimum et maximum pour un bruit ajouté après la FFT Modèle psycho-acoustique Le modèles psycho-acoustique est lui légèrement plus sensible au bruit que la FFT, c est pourquoi la puissance du bruit est limitée à 80dB. Les premières expérimentations ont permis de localiser la zone de transition (où l ODG devient inférieur à -1) entre -20dB et 0dB. Des relevés plus précis ont donc été effectués sur cet intervalle. Finalement, la puissance limite du bruit généré dans le modèle psycho-acoustique est de l ordre de -15dB (cf. figure 3.7) Bruit dans les deux blocs Sur la figure 3.8 page 36, les puissances du bruit en sortie du modèle psycho-acoustique sont indiquées en abcisses tandis que les différentes courbes correspondent aux valeurs de la puissance en sortie de la FFT. L étude pour des bruits ajoutés après chacun des blocs, conduit finalement aux résultats attendus. Les seuils de puissance de bruit admissible n ont pas beaucoup évolués par rapport aux études séparées. Si la puissance du bruit généré dans la FFT est inférieure à 200dB, le bruit en sortie du modèle psycho-acoustique ne doit pas excéder -25dB pour respecter les critères de qualité imposés. Si la limite sur le bruit en sortie de la FFT devient plus contraignante (150dB), la puissance limite du bruit généré dans le modèle psycho-acoustique est élevée jusqu à -15dB. Cette étude permet également de constater qu encore une fois, c est le bruit le plus proche de la sortie qui a le plus d influence sur la qualité de la compression. 34

40 ODG Puissance du bruit ajouté (db) Fig. 3.7 ODG moyen, minimum et maximum pour un bruit ajouté après le modèle psycho-acoustique. Chacun des deux flots de signaux ayant été étudiés séparément, il est maintenant intéressant d observer l influence que peuvent avoir les bruits introduits dans un canal sur les limites de bruit admissible dans l autre canal Influence entre les deux canaux de traitement Le but de cette mesure est de mettre en avant les éventuelles interactions, dans la dégradation du signal, des pertes de précision sur chacun des flots de signal. Le test se résume à l ajout de bruit en sortie de la MDCT et du modèle psycho-acoustique. En effet les temps de calcul nécessaire aux mesures avec les quatre sources de bruits (2 à 3 semaines) ne permettent pas de mettre en place ce test dans un premier temps. Les résultats présentés sur la figure 3.9 sont, encore une fois, ceux relatifs à l extrait sonore subissant les plus grandes dégradations. Les valeurs indiquées en abcisses sont celles de la puissance du bruit en sortie de la MDCT. Chaque courbe représente une valeur de bruit en sortie du modèle psycho-acoustique. Il apparaît que les bruits n ont que peu d influence l un sur l autre en ce sens que les seuils de puissance de bruit admissible n ont pas évolués. La puissance du bruit en sortie de la MDCT doit en effet rester en dessous de -100dB et celle après le modèle psycho-acoustique a une valeur limite de -15dB. Il n est donc pas totalement aberrant de se focaliser, dans un premier temps, sur l étude des transformations subies par le signal qui sera quantifié (banque de filtres) sans se préoccuper de l autre partie de l encodeur. 35

41 ODG Puissance du bruit ajouté (db) Fig. 3.8 ODG maximum pour un bruit ajouté après le modèle psycho-acoustique avec le bruit en sortie la FFT dans [0,200] ODG Puissance du bruit ajouté (db) Fig. 3.9 ODG maximum pour un bruit ajouté après la MDCT avec le bruit en sortie du modèle psycho-acoustique dans [-110,-85] 36

42 3.2 Modèles de bruit Cette partie présente les résultats relatifs à l étude théorique du filtre polyphase et de la MDCT. Le but premier des expérimentations est de déterminer des spécifications virgule fixe (pour chaque bloc) en accord avec les limites de bruit relevées à la partie précédente. En outre, le fait que, pour vérifier la validité du modèle, il ait été nécessaire de coder les fonctions, en virgule flottante et fixe en MATLAB, permet de comparer le bruit généré avec celui ajouté dans le modèle avec sources de bruit Filtre polyphase Validité du modèle Avant de commencer les expérimentations, il convient de vérifier la validité du modèle de bruit. La démarche est de comparer les bruit générés par la conversion en virgule fixe avec le bruit calculé à partir du modèle, tout d abord en introduisant du bruit dans un opérateur à la fois, puis en prenant en compte tous les opérateurs en même temps. Les tests conduisent aux résultats suivants (cf. annexe C.1.2 page xiii) : entre -110dB et -75dB l erreur entre le modèle et la simulation vaut au plus 0,9dB. Aux alentours de -30dB, elle augmente à 6dB mais de toute façon, pour de tels niveaux de bruit le fichier devient inécoutable. L étude se limitera donc à des bruits inférieurs à -80dB. Sur cette plage, le modèle est valide. Il est intéressant de noter que le calcul d une spécification virgule en utilisant le modèle prend environ 0,02sec, alors que le temps pour effectuer le même calcul par la simulation est supérieur à 1min 30sec. L utilisation du modèle permet donc de diminuer le temps de calcul par un facteur 450. Bruit généré Le fait d avoir, sous MATLAB, codé le filtre polyphase à la fois en virgule fixe et en virgule flottante autorise l étude du bruit généré par la conversion. Il est donc intéressant de vérifier que ce dernier suit bien les hypothèses posées au Tout d abord, concernant l hypothèse de bruit blanc de moyenne nulle, pour une puissance de l ordre de -105dB, l ordre de grandeur de la moyenne est 10 9 soit près de 1000 fois inférieur aux valeurs extrêmes du bruit. Elle peut donc être considérée comme nulle. En outre, le tracé de la transformé de Fourier du bruit (figure 3.10) ne révéle pas de composante fréquentielle notablement marquée x Fig FFT du bruit généré par un passage en virgule fixe du filtre polyphase. 37

43 En ce qui concerne la répartition du bruit, un test pour de très faibles valeurs de bruit dans tout le système sauf en sortie a bien une répartition dont l allure ressemble à un bruit uniforme (cf. figure 3.12). Quand le bruit devient important dans tous les opérateurs de la fonction, la répartition du bruit semble bien être gaussienne (cf. figure 3.11). Il serait cependant nécessaire de vérifier plus précisément cette constatation visuelle. Le bruit généré par la conversion en virgule fixe du filtre polyphase suit bien le modèle décrit dans [Men02] x 10 4 Fig Répartition du bruit généré par un passage en virgule fixe du filtre polyphase. Aucun bruit n est prédominant x 10 6 Fig Répartition du bruit généré par un passage en virgule fixe du filtre polyphase. Le bruit en sortie est prépondérant. 38

44 3.2.2 MDCT Fenêtres courtes Validité du modèle Il convient encore une fois de vérifier la validité du modèle de bruit. La démarche est toujours la même. Les résultats présentés en annexes C.2.3 page xviii, permettent de valider le modèle sur l intervalle de puissance utile à l étude. En utilisant le modèle, le temps de calcul d une spécification virgule est environ 0,01sec, alors que le temps pour effectuer le même calcul par la simulation est d à peu près 2min. L utilisation du modèle permet donc de diminuer le temps de calcul par un facteur Bruit généré La moyenne du bruit généré par la conversion en virgule fixe de l algorithme a une moyenne de l ordre de 10 8 et les extrema valent environ 4, (pour une puissance de bruit de 100dB). La moyenne étant 400 fois inférieure aux valeurs extrêmes, celle-ci peut être considérée comme nulle. D autre part, comme le montre la figure 3.13, le bruit resemble à un bruit blanc. La répartition elle, reste gaussienne quels que soient les bruits introduits par les recadrages (cf. figure 3.14). 7 x x 10 5 Fig FFT du bruit généré par un passage en virgule fixe de la MDCT en mode court. Fig Répartition du bruit généré par un passage en virgule fixe de la MDCT en mode court Fenêtres longues Validité du modèle Les mesures présentés en annexes C.2.6 page xxiii, permettent de valider le modèle sur l intervalle de puissance utile à la l étude. En utilisant le modèle, le temps de calcul d une spécification virgule est environ inférieur à celui de la simulation. Les modèles pour les fenêtres de transition fonctionnent sur le même principe que pour les fenêtres longues. C est pourquoi, aucun résultat ne les concernant n est présenté ici. 39

45 Bruit généré La moyenne du bruit généré par la conversion en virgule fixe de l algorithme a une moyenne de l ordre de et les extrema valent environ (pour une puissance de bruit de 95dB). La moyenne étant 70 fois inférieure aux valeurs extrêmes, il parait encore une fois raisonnable de la considérer comme nulle. Comme le montre la figure 3.15, le bruit semble être blanc. La répartition elle, reste gaussienne quels que soient les bruits introduits par les recadrages (cf. figure 3.16) x 10 6 Fig FFT du bruit généré par un passage en virgule fixe de la MDCT en mode long. Fig Répartition du bruit généré par un passage en virgule fixe de la MDCT en mode long. Le modèles ainsi déterminés permettent d obtenir les spécifications virgule fixe pour une puissance de bruit donnée. Il reste donc à vérifier qu en simulant le comportement de l encodeur avec ces spécifications, le taux de dégradation introduit correspond bien à celui pour la simulation avec les sources de bruit. 3.3 Comparaison entre la simulation et le modèle de bruit Dans cette partie sont rapportés les résultats de la simulation en virgule fixe du filtre polyphase et de la MDCT. Les mesures de taux de dégradation sont comparées à celles effectuées avec l encodeur complété de sources de bruit Filtre polyphase Le fonctionnement du filtre polyphase étant relativement simple, il a été codé à l identique en MATLAB. Il n y a donc aucune raison a priori, pour qu il y ait des différences entre les résultats avec le modèle aux sources de bruits, les puissances calculées avec le modèle de bruit et les mesures de taux de dégradation avec la simulation en virgule fixe. La figure 3.17 page 41 montre les mesures de taux de dégradation moyen en fonction du bruit ajouté. La courbe bleue correspond au modèle avec les sources de bruit et la rouge à la simulation en virgule fixe. Les résultats obtenus par ces deux méthodes sont très similaires. Il est donc raisonnable d affirmer que, dans ce cas, la méthodologie de conversion est validée. 40

46 0.5 bruit ajouté virgule fixe ODG Puissance du bruit ajouté (db) Fig Comparaison des taux de dégradation entre le modèle aux bruits ajoutés et la simulation en virgule fixe pour le filtre polyphase MDCT Le cas de la MDCT est un peu plus compliqué que celui du filtre polyphase. En effet il existe quatre modes de fonctionnement. Ils varient au cours du temps, en fonction de la nature du bloc à traiter. Ce choix étant déterminé par le modèle psycho-acoustique, il n a pas été possible d implanter, dans un premier temps, le mécanisme de décision en MATLAB. Chaque mode a été étudié indépendamment. Pour une valeur de puissance de bruit désirée, il y a donc quatre spécifications virgule fixe différentes (une par mode). Il reste donc à vérifier que ce type d étude s accorde bien avec le fonctionnement in situ de l algorithme. La première constatation, est la présence de gros écarts entre le modèle et la simulation. La puissance du bruit effectivement ajouté est donc calculée. Elle ne correspond pas tout à fait à celle attendue (des écarts jusqu à 5dB sont relevés). La figure 3.18 montre le tracé des résultats obtenus avec le modèle aux sources de bruit et ceux de la simulation en virgule fixe. Une autre source d erreur pourrait être que les attributs du bruit généré ne correspondent pas celui modélisé. Pour vérifier, le bruit généré est mesuré. Le rapport entre la moyenne est les extrema est de l ordre de 400. Le bruit est donc bien de moyenne nulle. La répartition semble bien être gaussienne (cf. figure 3.19) même s il conviendrait de le vérifier plus précisément. Le bruit ajouté est bien en accord avec les paramètres du modèle. Il pourrait donc être intéressant d étudier l influence de chaque opérateur sur la dégradation, de manière à cibler l endroit d où provient cet écart. Les premiers tests ont permis de vérifier la pertinence du modèle de bruit, même s il subsiste quelques écarts entre le modèle et la simulation. Il peut être intéressant de changer la méthodologie de mesure de manière à pouvoir analyser plus précisément le comportement du bruit dans le système. Ainsi il serait possible de trouver quelle est exactement la cause de ces erreurs. D autre part, l utilisation des modèles plutôt que la simulation améliore grandement les performances. Les temps de calculs sont divisés par un rapport allant de 400 à

47 0.5 1 bruit ajouté virgule fixe (bruit attendu) virgule fixe (bruit réel) 1.5 ODG Puissance du bruit ajouté (db) Fig Comparaison des taux de dégradation avec le modèle aux bruit ajoutés et la simulation en virgule fixe pour la MDCT x 10 5 Fig Répartition du bruit généré par un passage en virgule fixe de la MDCT. Simulation en virgule fixe de l encodeur. 42

48 Chapitre 4 Travaux complémentaires sur le modèle de bruit Les résultats observés précédemment soulignent la nécessité de mise en place d un test de validation du modèle de bruit. La procédure retenue repose sur le test du χ 2. Celui-ci est utilisé conjointement avec un algorithme de recherche de manière à trouver, pour chacun des bruits mesurés, une valeur du paramètre α introduit dans l équation 2.1 page 20. Les échantillons testés sont les sorties de la mdct pour différentes spécifications virgule fixe. 4.1 Principe de l étude Loi L 0 La loi L 0 représente la distribution du bruit B = α B U + (1 α) B N où B N est un bruit blanc gaussien et B U un bruit uniforme. Dans le cadre de la recherche du coefficient α, les seuls paramètres disponibles sont la variance du bruit testé (σ 2 mes) et sa moyenne (µ mes ). La moyenne est supposée nulle dans le modèle, mais ça n est pas le cas pour les mesures. C est pourquoi, même si cette dernière est très faible, dans un soucis de précision, elle est prise en compte dans les calculs. Lors de la recherche, α est fixée. Il reste donc à déterminer la loi L 0 en fonction de ces trois paramètres. Les hypothèses retenues pour ces calculs sont que les bruits B N et B U sont non corrélés, et que le bruit uniforme est de moyenne nulle. Ainsi, la variance de B est égale à la somme des variances des bruits, gaussien et uniforme. La variance d un bruit uniforme à valeurs dans [ α α] est égale à : σ 2 U = (2 α)2 12 La moyenne du bruit gaussien est égale à la moyenne de B et sa variance vaut : (4.1) σ 2 N = σ 2 mes σ 2 U (4.2) Les deux distributions (normale et uniforme) sont calculées à partir de ces paramètres. La loi de B (notée L 0 ) résulte de la convolution de ces deux distributions. Ce procédé permet bien d obtenir une distribution correspondant à un bruit du type B = α B U + (1 α) B N dont la moyenne et la variance sont respectivement µ mes et σ 2 mes. Cette loi est celle qui sert de référence lors du test du χ 2. 43

49 4.1.2 Test du χ 2 Le test du χ 2 est un outil statistique permettant de vérifier la bonne correspondance entre une variable aléatoire mesurée et une loi de probabilité définie (L 0 ). Ce test repose sur le calcul d une distance entre la fréquence d apparition calculée (à partir de la donnée mesurée) et celle attendue (donnée par le modèle à vérifier). Cette distance est notée V. Soit n le nombre de d observations indépendantes, k le nombre de classes sur lesquelles sont reparties les valeurs observées, s 1, k le numéro de la classe considérée, Y s la fréquence mesurée pour la classe s et p s la probabilité, selon le modèle, qu un élément soit dans la classe s. La distance s écrit alors : k (Y s np s ) 2 V = (4.3) np s s=1 La comparaison de cette distance et de la distribution χ 2 permet de déterminer si la variable observée suit la loi du modèle. Q est la probabilité que, pour un nombre de degrés de liberté fixé (ν = k 1 cf. [Knu78]), si la variable observée suit la loi L 0, la distance V soit supérieure à la valeur χ 2 correspondante. Cette valeur χ 2 est considérée comme valeur seuil de réussite au test, ainsi pour Q seuil fixée : si V > χ 2 la variable ne suit pas la loi L 0. si V χ 2 la variable suit la loi L 0. Dès lors, deux problèmes se posent. Tout d abord le choix du nombre de classes et des bornes de ces classes. En effet, selon [Knu78] le produit np s ne doit pas être inférieur à 5, dans le cas contraire le test perd de sa signification. Le nombre d observations n étant ici fixé, le seul paramètre qu il est possible de modifier est p s. La méthode consiste à regrouper les classes voisines pour lesquelles le produit np s serait inférieur à 5. D autre part se pose la question du choix de la probabilité de seuil Q seuil. Si cette dernière est trop élevée, certaines variables aléatoires suivant la loi L 0 risquent de se voir échouer au test de manière injustifiée. Dans le cas contraire, certaines variables réussissant au test ne suivraient pas la loi L 0. Il convient donc de fixer Q. [MVO96] indique qu il est raisonnable, en vue d effectuer des tests qui soient significatifs, de prendre Q seuil [0, 05 0, 001]. Enfin, pour des raisons pratiques liées au fonctionnement de l algorithme de recherche de α, la décision ne se fait pas sur la distance V mais directement sur la probabilité de seuil Q. Il est possible de calculer la probabilité Q mes correspondant à une distance observée V en utilisant la fonction gamma incomplète : V Q mes (V, ν) = 1 1 Γ( ν 2 ) e t t ν 1 dt (4.4) 0 avec Γ( ν 2 ) = e t t ν 1 dt (4.5) 0 44

50 La règle de décision énoncée précédemment est donc transposée en : si Q mes < Q seuil, la variable ne suit pas la loi L 0. si Q mes Q seuil la variable suit la loi L 0. Il est intéressant de remarquer qu il est désormais possible de comparer les résultats des calculs de probabilité sans tenir compte du nombre de classes utilisées, ceci simplifie grandement le travail de l algorithme de recherche Algorithme de recherche Le principe de l étude est de chercher, pour une variable aléatoire donnée, le coefficient α permettant d obtenir le bruit B = α B U + (1 α) B N dont la distribution correspond le mieux à celle de la mesure. Le critère utilisé est le test du χ 2 énoncé précédemment. La méthode de recherche est la suivante : la recherche commence sur un ensemble de 11 valeurs de α comprises entre 0 et 1 (l écart entre deux valeurs est noté 0 ). Pour chaque valeur la probabilité Q mes est calculée. S il existe une ou plusieurs valeurs de α pour lesquelles Q mes > Q seuil, le α retenu est celui pour lequel Q mes est maximale. Dans le cas contraire, si au moins une des probabilités est non nulle, la recherche continue sur un ensemble de 11 valeurs de α dans [α n 0, 1 n 1 α 0 + 0, 1 n 1 ] (l écart entre deux valeurs est alors noté n et α 0 est le coefficient pour lequel Q mes était maximale). Si toutes les Q mes sont nulles, le nombre de classes utilisées pour le test du χ 2 est fixé au nombre minimum constaté lors du test immédiatement précédent. Après le calcul de V, la recherche continue sur un ensemble de 11 valeurs de α dans [α 0 0, 1 n 1 α 0 + 0, 1 n 1 ] (l écart entre deux valeurs est alors noté n et α 0 est le coefficient pour lequel V est minimum). Le calcul est itéré jusqu à ce qu un α convenable soit trouvé ou alors que la précision fixée soit dépassée. Ce dernier critère d arrêt permet de ne pas passer trop de temps à chercher un α qui n existerait pas, les temps de calcul étant déjà suffisamment longs. L algorithme a été testé sur des bruits construits à partir d un bruit uniforme et d un bruit gaussien générés avec Matlab. Ces tests ont permis, dans tous les cas, de retrouver le coefficient de pondération α utilisé lors de la création du bruit. La deuxième phase de validation, avant l utilisation sur des bruits issus de l encodeur, consiste en un test sur un système simple, dont le comportement est connu : le filtre FIR Exemple simple : le filtre fir Cette partie concerne l étude d un filtre FIR d ordre 32. La cellule élémentaire de ce type de système est représentée sur la figure 4.1. La largeur de la sortie de la multiplication varie entre 16 et 32 bits, tandis que, dans tous les cas, la sortie est ramenée sur 16 bits. Cette étude permet de vérifier, tout d abord de manière intuitive comme sur la figure 4.2 page 46, que, lorsque que le bruit lié au recadrage de la sortie est prépondérant (la sortie du multiplicateur est sur 32 bits), le bruit de quantification lié au passage en virgule fixe est uniforme. Ce bruit tend vers un bruit gaussien quand le nombre de sources de bruit augmente (la largeur de la sortie diminue). 45

51 mx=1 be 0 a[j] [16 32] bmult 32 entrées badd 16 Fig. 4.1 Cellule élémentaire d un fir32 Il convient ensuite de vérifier ces constatations visuelles en déterminant le coefficient de pondération α pour les différentes largeurs de sorties de la multiplication. Ce calcul est effectué en utilisant l algorithme décrit précédemment. Il vient que α vaut 0 quand les sources sont nombreuses (la sortie de la multiplication est sur 16 ou 17 bits). Le bruit est donc gaussien. Quand l importance des sources de bruit liées au décalage en sortie de la multiplication diminue, α augmente jusqu à 1 (à partir de 26 bits). Le bruit de quantification liée au recadrage en sortie du filtre est alors prépondérant. C est un bruit blanc uniforme. Les résultats observés sont donc en accord avec le modèle. Il est maintenant intéressant d appliquer cette méthode à l analyse du bruit en sortie de la mdct. x 10 4 FIR longueur de l additionneur bruit normalisé Fig. 4.2 Répartition du bruit dans un fir32 La largeur de l addition varie entre 16 et 32 bits. 46

52 1 FIR32, Q= alpha Largeur de l addition Fig. 4.3 Coefficient de pondération α dans un fir32 La largeur de l addition varie entre 16 et 32 bits. 4.2 Résultats L algorithme décrit précédemment a été mis au point en vue d analyser les bruits de quantification en sortie de la mdct en virgule fixe. La première phase consiste à encoder les échantillons audio en utilisant l encodeur avec la mdct en virgule fixe. Pour chaque extrait sonore, les 576 sorties de la mdct sont enregistrées dans des fichiers. Cette opération est répétée pour cinq spécifications virgule fixe et pour un programme en virgule flottante. Ces fichiers servent de base au calcul des bruits pour le test. Il est par la suite nécessaire de vérifier que la dynamique du signal est suffisamment élevée par rapport au pas de quantification pour que le modèle de bruit utilisé soit valide. Après calcul, la puissance minimum pour les signaux utilisés est de l ordre de 85dB (la puissance moyenne vaut 67dB) alors que le bruit lié à la quantification vaut, dans le pire des cas (au minimum 15 bits pour la partie décimale) : 10 Log 10 (2 15 ) 2 12 = 101dB (4.6) Les conditions d application du modèle sont donc réunies. Il est donc raisonnable de procéder à la recherche des coefficients de pondérations. Les calculs sont effectués pour Q seuil = 0, 05 et Q seuil = 0, 001 ce qui correspond aux bornes de l intervalle décrit par [MVO96] comme satisfaisant pour que les tests du χ 2 soient significatifs. Pour Q seuil = 0, 05 les recherches aboutissent dans 78% des cas (87% pour Q seuil = 0, 001) a un coefficient de pondération α. Ces pourcentages plutôt élevés conduisent à penser que le modèle utilisé est satifaisant. D autant plus que les bruits pour lesquels aucun α n a été trouvé 47

53 correspondent peut-être au cas où la limite de précision fixée dans l algorithme a été atteinte. Pour vérifier cette hypothèse, il conviendrait d effectuer une nouvelle recherche en augmentant la précsion limite. Ces calculs pouvant prendre plusieurs semaines, ils ne seront pas effectués pour l instant Q=0.001, alpha trouvés : % Q=0.05, alpha trouvés : % nombre d occurences nombre d occurences alpha alpha Fig. 4.4 Coefficients α pour Q seuil = 0, 001 Fig. 4.5 Coefficients α pour Q seuil = 0, 05 Les résultats des différents tests sont présentés sur les histogrammes 4.4 et 4.5. Le premier constat est que, tout les α étant inférieurs à 0, 5, il n y a aucun cas où un bruit est prépondérant. Plus spécifiquement, les α sont majoritairement regroupés entre 0 et 0, 1, ce qui indique que les bruits sont très proches de bruits gaussiens. La mdct en virgule fixe présente donc de nombreuses sources de bruit parmi lesquelles aucune ne prédomine. Ce résultat n est pas réellement étonnant puisque qu aucune source de bruit n a été «privilégiée» lors du calcul des spécifications virgule fixe. D autre part, il ne semble pas possible de dégager une quelconque classification dans les coefficients. Pour un extrait sonore spécifique, la répartition des coefficients α varie en fonction de la spécification virgule fixe. Ce résultat était sans doute prévisible. Mais, à niveau de bruit égal, les α continuent à varier en fonction de l entrée de l encodeur. Ceci semble moins logique, le bruit généré ne devant pas a priori dépendre de l entrée du système. Ce fait est sans doute dû à la disparité des puissances (et donc de l influence de la quantification) dans les différentes bandes de fréquences. En définitive, même s il ne permet pas d établir une réelle classification des différents bruits, ce test met en lumière la nature du bruit en sortie la mdct et l origine de nombreuses sources qui y contribuent. Par ailleurs, l utilisation de l algortihme de recherche des α, et la proportion élevée de cas pour lesquels la recherche aboutit, justifie l utilisation du modèle de bruit dans le cadre de la mdct. 48

54 Conclusion Cette étude sur l implémentation en virgule fixe d un codeur audio large bande a permis de dégager plusieurs résultats intéressants. Tout d abord, la méthodologie mise en place au sein de l équipe R2D2 (et qui repose sur un calcul précis du bruit de quantification ajouté lors du passage en virgule fixe) présente l avantage de réduire considérablement les temps de calcul par rapport aux méthodes reposant sur la simulation. L utilisation de PEAQ a permis de mettre en évidence un lien entre la quantité de bruit ajouté dans chaque bloc fonctionnel et la qualité de l encodage. Dans le cas du filtre polyphase et de la MDCT, le modèle de bruit utilisé a pu être vérifié. Les hypothèses qui avaient été faites quant aux paramètres statistiques du bruit se sont révélées justifiés. Il reste cependant quelques imprécisions concernant le bruit dans la MDCT. Il sera donc intéressant de changer la manière dont sont effectuées les mesures, de façon à pouvoir étudier précisément l influence du bruit, dans chaque opérateur, sur la qualité de la sortie du système. Les mesures à mettre en place dans ce cadre risquent par contre de consommer beaucoup de temps de calcul. L encodeur a été simulé avec le filtre polyphase et la MDCT en virgule fixe. Le modèle concernant la FFT étant plus compliqué, il n a pas été possible de l étudier pour l instant. Le modèle psycho-acoustique présente lui de nombreuses non linéarités (calcul de fonction trigonométriques notamment). Il sera donc sans doute nécessaire d utiliser des tables pour remplacer ces fonctions. L encodeur n a donc, pour l instant, pas pu être simulé en virgule fixe dans son intégralité. Cependant les blocs qui ont été convertis sont ceux présents dans les décodeurs. Il serait donc possible en assez peu de temps d utiliser les résultats obtenus pour implémenter un décodeur audio large bande en virgule fixe. 49

55 Table des figures 1.1 Schéma bloc d un encodeur MP3 [Bra03] Principe des mesures basées sur un modèle perceptuel [vbd04] Bruits générés lors du passage en virgule fixe, d après [Bra03] Cellule élémentaire du filtre polyphase Cellule élémentaire de la MDCT en mode court Cellule élémentaire de la MDCT en mode long ODG moyen après le filtre polyphase ODG moyen, minimum et maximum après le filtre polyphase ODG moyen après la MDCT ODG moyen, minimum et maximum après la MDCT ODG maximum après le filtre polyphase et la MDCT ODG moyen, minimum et maximum après la FFT ODG moyen, minimum et maximum après le modèle psycho-acoustique ODG maximum après la FFT et le modèle psycho-acoustique ODG maximum après la MDCT et le modèle psycho-acoustique FFT du bruit dans le filtre polyphase Répartition gaussienne du bruit dans le filtre polyphase Répartition uniforme du bruit dans le filtre polyphase FFT du bruit dans la MDCT courte Répartition gaussienne du bruit dans la MDCT courte FFT du bruit dans la MDCT longue Répartition gaussienne du bruit dans la MDCT longue Comparaison simulation/modèle pour le filtre polyphase Comparaison simulation/modèle pour la MDCT Répartition gaussienne du bruit dans la MDCT (simulation) Cellule élémentaire d un fir Répartition du bruit dans un fir Coefficient de pondération α dans un fir Coefficients α Coefficients α i

56 Liste des tableaux 2.1 Comparatif des trois encodeurs à 192 kbit/s Comparatif des deux décodeurs (encodeur blade à 192 kbit/s) A.1 Échantillons audio utilisés pour les tests vi A.2 Échantillons encodés à 128kbit/s, décodeur MAD vi A.3 Échantillons encodés à 128kbit/s, décodeur Lame vii A.4 Échantillons encodés à 192kbit/s, décodeur MAD vii A.5 Échantillons encodés à 192kbit/s, décodeur Lame viii ii

57 Glossaire AAC : Advanced Audio Coding CDFG : Control Data Flow Graph DSP : Digital Signal Processor FRIDGE : Fixed-point programming and DesiGn Environment ITU-R : Iternational Telecommunication Union - Radiocommunications sector MP3 : MPEG-1/2 Layer-3 MPEG : Moving Picture Experts Group ODG : Objective Difference Grade Ogg : Codec audio libre PAQM : Perceptual Audio Quality Measure PEAQ : Perceptual Evaluation of Audio Quality SUIF : Stanford University Intermediate Format WMA : Windows Media Audio iii

58 Bibliographie [Bar06] [Bee98] [Bra03] K. Bartkova. Production, description perception du signal vocal, chapitre 5 - Perception, pages France Télécom division R&D Lannion, John G. Beerends. Applications of digital signal processing to audio and acoustics, chapitre 1 - Audio quality determination based on perceptual measurement, pages Kluwer Academic Publishers, K. Brandenburg. Mp3 and aac explained. In AES 17 th th International Conference on High Quality Audio Coding. Audio Engineering Society, pages, http ://neuron2.net/library/mp3aac.pdf. [CKLM02] M. Coors, H. Keding, O. Lüthje, et H. Meyr. Design and dsp implementation of fixed-point systems. EURASIP Journal on Applied Signal Processing, 2002(9) : , [GLL03] Marc Gayer, Markus Lohwasser, et Manfred Lutzky. Implementing MPEG Advanced Audio Coding and Layer-3 encoders on 32-bit and 16-bit fixedpoint processors. Fraunhofer Institute for Integrated Circuits IIS, pages, http :// [Kab02] P. Kabal. An examination and interpretation of itu-r bs.1387 :perceptual evaluation of audio quality. Technical report, McGill University, Department of Electrical & Computer Engineering, Montreal, Quebec, Canada, [KKS97] K. Kum, J. Kang, et W. Sung. A Floating-point to Fixed-point C Converter for Fixed-point Digital Signal Processors. In Proc. of the Second SUIF Compiler Workshop, Aug [KKS00] K.-I. Kum, J. Kang, et W. Sung. Autoscaler for c : An optimizing floating-point to integer c program converter for fixed-point digital signal processors. IEEE Transactions on circuits and systems part.2 analog and digital signal processing, 47(9) : , [Knu78] Donald Ervin Knuth. The Art of Computer Programming, 2nd Ed. (Addison- Wesley Series in Computer Science and Information). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, ISBN [MCFS02] D. Menard, D. Chillet, F.Charot, et O. Sentieys. Automatic Floating-point to Fixed-point Conversion for DSP Code Generation. In ACM International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES 2002), pages , Grenoble, France, October iv

59 [Men02] [MS02] Daniel Menard. Méthodologie de compilation d algorithmes de traitement du signal pour les processeurs en virgule fixe sous contrainte de précision. Thèse de doctorat, École Nationale Supérieure de Sciences Appliquées et de Technologie, D. Menard et O. Sentieys. Automatic Evaluation of the Accuracy of Fixed-point Algorithms. In Design, Automation and Test in Europe 2002 (DATE-02), Paris, March [MVO96] Alfred J. Menezes, Scott A. Vanstone, et Paul C. Van Oorschot. Handbook of Applied Cryptography. CRC Press, Inc., Boca Raton, FL, USA, ISBN [Pan95] Davis Pan. A tutorial on MPEG/audio compression. IEEE MultiMedia, 2(2) :60 74, [SGLT] Gilbert A. Soulodore, Theodore Grusec, Michel Lavoie, et Louis Thibault. Subjective evaluation of state-of-the-art 2-channel audio codecs. Technical report, Signal Processing and Psychoacoustics, Communications Research Centre, Ottawa, Ont.,Canada,? [SM05] Olivier Sentieys et Daniel Menard. Traitement Numérique du Signal, chapitre 8 - Codage en virgule fixe, pages École Nationale Supérieure de Sciences Appliquées et de Technologie, [TK96] Thilo Thiede et Ernst Kabot. A new perceptual quality measure for bit rate reduced audio. Technical report, Technical University of Berlin, Institute for Telecommunications, Berlin, Germany, [vbd04] Marija Šalovarda, Ivan Bolkovac, et Hrvoje Domitrovi`c. Comparison of audio codecs using peaq algorithm. Technical report, Faculty of E.E. and Computing, Dept. of Electroacoustics, Zagreb, v

60 Annexe A Choix de l encodeur A.1 Panel de test Nom du fichier Interpréte Titre du morceau Durée buckley.wav Jeff Buckley Halleluja 53sec chanson.wav The divine comedy Something for the week end 37sec chant.wav Gloria (Vivaldi) 16sec clarinet.wav Django Reinhardt Les yeux noirs 14sec dist.wav Nirvana Serve the servants 22sec electro.wav The chemical brothers Elektobank 42sec guitar.wav Django Reinhardt Les yeux noirs 23sec orchestre.wav Gloria (Vivaldi) 20sec piano.wav Hungarian Rapsody (Liszt) 56sec truffaz.wav Eric Truffaz Wilfried 25sec Tab. A.1 Échantillons audio utilisés pour les tests A.2 tests des différents encodeurs Shine Lame Blade Odg Dix Odg Dix Odg Dix Buckley -2,51-0,62-0,75 1,2-2,38-0,39 Chanson -1,87 0,01-0,74 1,21-1,49 0,37 Chant -3,02-1,22-1,17 0,7-2,09-0,2 Clarinet -2,49-0,59-0,34 1, ,12 Dist -2,33-0,43-0,9 1,01-1,84 0,04 Electro -1,97-0,08-0,29 1,98-1,44 0,42 Guitar -2,73-0,86-0,22 2, ,11 Orchestre -2,92-1,08-1,06 0,83-1,94-0,06 Piano -1,23 0,64-0,35 1,85-1,17 0,7 Truffaz -2,9-1,06-0,66 1,33-2,87-1,02 Moyenne -2,4-0,53-0,65 1,41-1,92-0,04 Tab. A.2 Échantillons encodés à 128kbit/s, décodeur MAD vi

61 Shine Lame Blade ODG Dix ODG Dix ODG Dix Buckley -2,48-0,58-0,62 1,39-2,14-0,25 Chanson -1,82 0,05-0,73 1,22-1,44 0,43 Chant -3,01-1,2-1,12 0,75-2,03-0,15 Clarinet -2,51-0,62-0,33 1,89-1,97-0,09 Dist -2,33-0,44-0,86 1,06-1,77 0,1 Electro -1,95-0,06-0,32 1,91-1,43 0,44 Guitar -2,47-0,87-0,26 2,05-1,95-0,07 Orchestre -2,95-1,13-1,05 0,83-1,91-0,03 Piano -1,3 0,57-0,35 1,86-1,23 0,64 Truffaz -2,87-1,03-0,64 1,35-2,84-0,99 Moyenne -2,37-0,53-0,63 1,43-1,87 0 Tab. A.3 Échantillons encodés à 128kbit/s, décodeur Lame Shine Lame Blade ODG Dix ODG Dix ODG Dix Buckley -0,67 1,31-0,04 2,73-0,4 1,75 Chanson -0,49 0,02-0,12 2,44-0,23 2,12 Chant -1,21 0,66-0,09 2,55-0,21 2,17 Clarinet -1,67 0,2-0,08 2,55-0,47 1,62 Dist -0,68 1,3-0,13 2,41-0,37 1,82 Electro -0,56 1,48 0,01 3,51-0,29 1,97 Guitar -1,46 0,41 0,03 3,05-0,51 1,56 Orchestre -1,43 0,43-0,06 2,65-0,29 1,97 Piano -0,78 1,16 0,03 3,05-0,51 1,56 Truffaz -0,86 1,06-0,06 2,62-0,39 1,77 Moyenne -0,98 0,8-0,05 2,76-0,37 1,83 Tab. A.4 Échantillons encodés à 192kbit/s, décodeur MAD vii

62 Shine Lame Blade ODG Dix ODG Dix ODG Dix Buckley -0,59 1,43-0,02 2,82-0,32 1,91 Chanson -0,48 1,61-0,18 2,26-0,22 2,13 Chant -1,2 0,68-0,19 2,24-0,21 2,17 Clarinet -1,67 0,2-0,08 2,55-0,47 1,62 Dist -0,67 1,32-0,13 2,41-0,36 1,83 Electro -0,55 1,49-0,01 2,83-0,29 1,97 Guitar -1,45 0,42-0,03 2,75-0,5 1,58 Orchestre -1,4 0,46-0,14 2,37-0,28 1,99 Piano -0,84 1,09 0,04 3,08-0,54 1,51 Truffaz -0,84 1,09-0,11 2,48-0,37 1,81 Moyenne -0,97 0,98-0,09 2,58-0,36 1,85 Tab. A.5 Échantillons encodés à 192kbit/s, décodeur Lame viii

63 Annexe B Notations B.1 Matrices de calcul du bruit B.1.1 Papillons anti-recouvrement 0 0 c a [0] M ca1 = c a [7] c a [7] M ca2 = c a [0] c s [0] M cs1 = c s [7] 2 c s [7] M cs1 = c s [0] 2 (B.1) (B.2) (B.3) (B.4) ix

64 B.2 Coefficients des fenêtres de transitions B.2.1 Transition long vers court Les coefficients de la fenêtre sont donnés par : ( ) sin pi 36 (n + 0.5) pour n 0, 17 1 W ls [n] = ( ) pour n 18, 23 sin pi 12 (n ) pour n 24, 29 0 pour n 30, 35 (B.5) B.2.2 Transition long vers court Les coefficients de la fenêtre sont donnés par : 0 ( ) pour n 0, 5 sin pi 12 W sl [n] = (n ) pour n 6, 11 1 ( ) pour n 12, 17 sin pi 36 (n + 0.5) pour n 18, 35 (B.6) x

65 Annexe C Modèles de bruit Cette partie présente les codes Matlab des différents modèles de bruit. C.1 Filtre polyphase C.1.1 Code source function finalbqdb=model(win,le,a1e,a2e,m1e,m2e,dec,lwin,lpoly) % %%% Paramètres %win coefficients de la fenêtre %a1e précision en entrée de la première addition %a2e précision en entrée de la deuxième addition %m1e précision en entrée de la première multiplication %m2e précision en entrée de la deuxième multiplication %dec décalage avant la dernière addition %lwin précision sur les coefficients de la fenêtre %lpoly précision sur les coefficients du filtre %%% Variables %additionneur 1 a1s=a1e; %additionneur 2 a2s=a2e; %multiplieur 1 m1s=m1e+lwin; %multiplieur 1 m2s=m2e+lpoly; %%puissance du bruit en sortie %dû à l entrée bgesigs=0; bgesig=0; %additionneur 1 badd1=0; %additionneur 2 xi

66 badd2=0; %multiplieur 1 bmult1=0; %multiplieur 1 bmult2=0; %bande de fréquence sbnd=0; %%bruit de quantification BQ=0; BQdB=zeros(1,32); polyfiltern=zeros(1,32); for sbnd=1:32 BQ=0; %%influence du bruit en entrée sur la sortie if (le>m1e) qbe=2^(2*(-m1e+1)); bgesig=qbe/12*(1-2^(-2*(le-m1e))); for k=1:64 for j=1:8 polyfiltern(1,sbnd)=polyfiltern(1,sbnd)... +(abs(cos((2*sbnd-1)*(k-17)*pi/64))... *abs(win(k+64*(j-1))))^2; end end bgesigs=bgesig*polyfiltern(1,sbnd); BQ=bgeSigs; end %recadrage en sortie du premier multplieur (partie entière : -3) if (m1s>a1e) qm1=2^(2*(-a1e+1-3)); bmult1=qm1/12*(1-2^(-2*(m1s-a1e))); end %recadrage en sorite du premier additionneur (partie entière : -3) if (a1s>m2e) qa1=2^(2*(1-m2e-3)); badd1=qa1/12*(1-2^(-2*(a1s-m2e))); end %%influence de ces deux bruits sur la sortie for k=1:64 BQ=BQ+(cos((2*sbnd-1)*(k-17)*pi/64))^2*(badd1+8*bmult1); xii

67 end %recadrage en sortie du second multplieur et décalage (partie entière : 1) if (m2s+dec>a2e) qm2=2^(2*(2-a2e)); bmult2=qm2/12*(1-2^(-2*(m2s-a2e+dec))); end %%influence de ces deux bruits sur la sortie BQ=BQ+64*bmult2+badd2; end BQdB(1,sbnd)=10*log10(BQ); finalbqdb=mean(bqdb); C.1.2 Vérification du modèle 21,12,28,44 (recadrage en entrée de la multiplication 1) sigqbsim = sigqbmod = ,21,37,53 (recadrage en entrée de l additioneur 1) sigqbsim = sigqbmod = ,16,32,24,43 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,16,32,24,40 (décalage en entrée de l additon 2) xiii

68 sigqbsim = sigqbmod = ============================================= 16,8,24,24,43 (recadrage en entrée de la multiplication 1) sigqbsim = sigqbmod = ,16,16,16,35 (recadrage en entrée de l additioneur 1) sigqbsim = sigqbmod = ,16,32,16,35 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,16,32,16,32 (décalage en entrée de l additon 2) sigqbsim = sigqbmod = ,16,32,16,16 (décalage en entrée de l additon 2) sigqbsim = sigqbmod = xiv

69 ============================================= 16,12,20,16,16 (recadrage à chaque opération) sigqbsim = sigqbmod = ,12,16,12,16 (recadrage à chaque opération) sigqbsim = sigqbmod = ,15,29,28,46 (recadrage à chaque opération) sigqbsim = sigqbmod = ,8,8,8,8 (recadrage à chaque opération) sigqbsim = sigqbmod = xv

70 C.2 MDCT C.2.1 Code source C.2.2 Fenêtres courtes function finalbqdb=model(winmdct,cos1,le,a1e,m1e,m2e,lwin,lmdct) % %%% Paramètres %winmdct coefficients de la fenêtre %a1e précision en entrée de la première addition %m1e précision en entrée de la première multiplication %m2e précision en entrée de la deuxième multiplication %lwin précision sur les coefficients de la fenêtre %lmdct précision sur les coefficients de la transformation %%% Variables %additionneur 1 a1s=a1e; %multiplieur 1 m1s=m1e+lwin; %multiplieur 1 m2s=m2e+lmdct; %décalage avant la dernière addition dec=-1; %%puissance du bruit en sortie %dû à l entrée bgesigs=0; bgesig=0; %additionneur 1 badd1=0; %multiplieur 1 bmult1=0; %multiplieur 1 bmult2=0; %bande de fréquence sbnd=0; %%bruit de quantification BQ=0; BQdB=zeros(1,6); xvi

71 mdctn=zeros(1,6); for sbnd=1:6 BQ=0; %%influence du bruit en entrée sur la sortie(partie entière : 1) if (le>m1e) qbe=2^(2*(-m1e+1+1)); bgesig=qbe/12*(1-2^(-2*(le-m1e))) ; end for j=1:12 mdctn(1,sbnd)=mdctn(1,sbnd)... +(abs(winmdct(j)*cos1(sbnd,j)))^2; end BQ=bgeSig*mdctN(1,sbnd); %recadrage en sortie du premier multplieur (partie entière : 2) if (m1s>m2e) qm1=2^(2*(-m2e+1+2)); bmult1=qm1/12*(1-2^(-2*(m1s-m2e))); end %%influence de ce bruit sur la sortie for k=1:12 BQ=BQ+((abs(cos1(sbnd,k)))^2)*bmult1; end %recadrage en sortie du second multplieur et décalage (partie entière : 1) if (m2s+dec>a1e) qm2=2^(2*(1-a1e+1)); bmult2=qm2/12*(1-2^(-2*(m2s-a1e+dec))); end %%influence de ces deux bruits sur la sortie BQ=BQ+12*bmult2; end BQdB(1,sbnd)=10*log10(BQ); finalbqdb=mean(bqdb); xvii

72 C.2.3 Vérification du modèle 21,18,34,50 (recadrage en entrée de la multiplication 1) sigqbsim = sigqbmod = ,21,32,48 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,21,37,48 (décallage en entrée de l additon 1) sigqbsim = sigqbmod = ============================================= 21,14,28,44 (recadrage en entrée de la multiplication 1) sigqbsim = sigqbmod = ,21,16,32 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,21,37,16 (décallage en entrée de l additon 1) sigqbsim = xviii

73 sigqbmod = ============================================= 21,16,24,32 (recadrage à chaque opération) sigqbsim = sigqbmod = ,16,20,24 (recadrage à chaque opération) sigqbsim = sigqbmod = ,18,32,46 (recadrage à chaque opération) sigqbsim = sigqbmod = ,20,35,50 (recadrage à chaque opération) sigqbsim = sigqbmod = ,14,14,14 (recadrage à chaque opération) sigqbsim = sigqbmod = xix

74 C.2.4 C.2.5 Fenêtres longues Code source function finalbqdb=modells(winmdct,cos1,ca,cs,le,a1e,a2e,m1e,m2e,m3e,lwin,lmdct,lpap) % %%% Paramètres %winmdct coefficients de la fenêtre %cos1 coefficients de la transformation %ca, cs coefficients du papillon %a1e précision en entrée de la première addition %a2e précision en entrée de la deuxième addition %m1e précision en entrée de la première multiplication %m2e précision en entrée de la deuxième multiplication %m3e précision en entrée de la deuxième multiplication %dec décalage avant la dernière addition %lwin précision sur les coefficients de la fenêtre %lmdct précision sur les coefficients de la transformation %lpap précision sur les coefficients du papillon %%% Variables %additionneur 1 a1s=a1e; %additionneur 1 a2s=a2e; %multiplieur 1 m1s=m1e+lwin; %multiplieur 1 m2s=m2e+lmdct; %multiplieur 3 m3s=m3e+lpap; %%puissance du bruit en sortie %dû à l entrée bgesigs=0; bgesig=0; %additionneur 1 badd1=0; %multiplieur 1 bmult1=0; %multiplieur 2 bmult2=0; %multiplieur 3 bmult3=0; xx

75 %bande de fréquence sbnd=0; %%bruit de quantification BQ=zeros(1,18); BM1=zeros(1,18); BA1=zeros(1,18); BM2=zeros(1,18); BQdB=zeros(1,18); mdctn=zeros(1,18); mdctfin=zeros(1,18); for sbnd=1:18 %%influence du bruit en entrée sur la sortie(partie entière : 1) if (le>m1e) qbe=2^(2*(-m1e+1+1)); bgesig=qbe/12*(1-2^(-2*(le-m1e))) ; end end for j=1:36 mdctn(1,sbnd)=mdctn(1,sbnd)+abs(winmdct(j)*cos1(sbnd,j))^2; end %recadrage en sortie du premier multplieur (partie entière : 2) if (m1s>m2e) qm1=2^(2*(-m2e+1+2)); bmult1=qm1/12*(1-2^(-2*(m1s-m2e))); end %recadrage en sortie du second multplieur et décalage (partie entière : 1) if (m2s+dec>a1e) qm2=2^(2*(1-a1e+1)); bmult2=qm2/12*(1-2^(-2*(m2s-a1e+dec))); end %recadrage en sortie du premier additionneur (partie entière : 1) if (a1s>m3e) qa1=2^(2*(1-m3e+1)); badd1=qa1/12*(1-2^(-2*(a1s-m3e))); end %recadrage en sortie du premier multplieur (partie entière : 2) if (m3s>a2e) qm3=2^(2*(-a2e+1+2)); xxi

76 bmult3=qm3/12*(1-2^(-2*(m3s-a2e))); end %%influence de ces deux bruits sur la sortie BQ=2*(bmult3)*ones(1,18); % %%papillons anti recouvrement for sbnd=1:8 mdctfin(1,19-sbnd)=mdctn(1,19-sbnd)*abs(cs(sbnd))^2... +mdctn(1,sbnd)*abs(ca(sbnd))^2; mdctfin(1,sbnd)=mdctn(1,sbnd)*abs(cs(sbnd))^2... +mdctn(1,19-sbnd)*abs(ca(sbnd))^2; end for k=1:36 %%influence de bmult1 sur la sortie BM1(1,sbnd)=BM1(1,sbnd)+abs(ca(sbnd)*cos1(19-sbnd,k)+cs(sbnd)... *cos1(sbnd,k))^2*bmult1; BM1(1,19-sbnd)=BM1(1,19-sbnd)+(abs(ca(sbnd))*cos1(sbnd,k)-cs(sbnd)... *cos1(19-sbnd,k))^2*bmult1; end %%influence de bmult2 sur la sortie BM2(1,sbnd)=36*(abs(ca(sbnd))+cs(sbnd))^2*bmult2; BM2(1,19-sbnd)=36*(abs(ca(sbnd))-cs(sbnd))^2*bmult2; %%influence de add1 sur la sortie BA1(1,sbnd)=(abs(ca(sbnd))+cs(sbnd))^2*badd1; BA1(1,19-sbnd)=(abs(ca(sbnd))-cs(sbnd))^2*badd1; for sbnd=9:10 mdctfin(1,sbnd)=mdctn(1,sbnd); for k=1:36 %%influence de bmult1 sur la sortie BM1(1,sbnd)=BM1(1,sbnd)+(abs(cos1(sbnd,k)))^2*bmult1; end %%influence de bmult1 sur la sortie BM2(1,sbnd)=36*bmult2; BA1(1,sbnd)=badd1; end BQ=BQ+bgeSig*mdctFin+BM1+BM2+BA1+2*bmult3; BQdB=10*log10(BQ); finalbqdb=mean(bqdb); xxii

77 C.2.6 Vérification du modèle 21,18,34,50,50,66 (recadrage en entrée de la multiplication 1) sigqbsim = sigqbmod = ,21,32,48,48,64 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,21,37,48,48,64 (décallage en entrée de l additon 1) sigqbsim = sigqbmod = ,21,37,53,48,64 (recadrage en entrée de la multiplication 3) sigqbsim = sigqbmod = ,21,37,53,53,50 (décallage en entrée de l additon 2) sigqbsim = sigqbmod = ============================================= 21,14,30,46,46,62 (recadrage en entrée de la multiplication 1) sigqbsim = xxiii

78 sigqbmod = ,21,16,32,32,48 (recadrage en entrée de la multiplication 2) sigqbsim = sigqbmod = ,21,37,18,18,34 (décallage en entrée de l additon 1) sigqbsim = sigqbmod = ,21,37,53,18,34 (recadrage en entrée de la multiplication 3) sigqbsim = sigqbmod = ,21,37,53,53,16 (décallage en entrée de l additon 2) sigqbsim = sigqbmod = ============================================= 21,16,24,32,24,32 (recadrage à chaque opération) sigqbsim = sigqbmod = ,17,22,27,16,21 (recadrage à chaque opération) sigqbsim = xxiv

79 sigqbmod = ,18,32,46,44,58 (recadrage à chaque opération) sigqbsim = sigqbmod = ,20,35,50,49,64 (recadrage à chaque opération) sigqbsim = sigqbmod = ,16,16,16,12,16 (recadrage à chaque opération) sigqbsim = sigqbmod = NB : les modèles pour les fenêtres de transition sont sensiblement les mêmes, c est pourquoi ils ne sont pas rapellés ici. xxv

80 Annexe D Extraits de codes en virgule fixe Cette partie présente les codes C des différents blocs fonctionnels codés en virgule fixe.les coefficients A1E, A2E, M1E, M2E, M3E, LWIN, LPOLY, LPAP, LMDCT ont la même signification que dans les modèles Matlab. Ils sont passés en paramètres de l encodeur. Les coefficients sans suffixe sont relatifs au filtre polyphase, ceux avec un suffixe MS sont utilisés pour pour la mdct en mode «fenêtres courtes» et ceux suivis de ML servent pour les autres modes de la mdct. D.1 Fonction recadrage La fonction qui sert à simuler le comportement en virgule fixe est présentée ci dessous. /* Function to round an input floating point coded number to the desired fixed point size return the fixed point number. */ double fixespec(double input,int fracsize) { int fracpart=pow(2,fracsize) ; if(input*fracpart>=0) modf(input*fracpart+0.5,&input) ; else 10 modf(input*fracpart 0.5,&input) ; } input=(double)input/fracpart ; return input ; xxvi

81 D.2 Filtre polyphase /* */ (c) Copyright 1998, Tord Jansson ======================================= #include "common.h" #include "encoder.h" #include "fixe.h" typedef double MM[SBLIMIT][64] ; 10 typedef double XX[2][512] ; static int off[2] ; static int half[2] ; static MM m ; static XX x ; static double windowedcache[512] ; static double fixedwin[512] ; static int m1s ; 20 static int m2s ; /************************************************************************ * create ana filter() * * PURPOSE : Calculates the analysis filter bank coefficients ************************************************************************/ void create ana filter(double filter[sblimit][64]) 30 { register int i,k ; for (i=0 ; i<32 ; i++) for (k=0 ; k<64 ; k++) { if ((filter[i][k] = 1e9*cos((double)((2*i+1)*(16 k)*pi64))) >= 0) modf(filter[i][k]+0.5, &filter[i][k]) ; else modf(filter[i][k] 0.5, &filter[i][k]) ; filter[i][k] *= 1e 9 ; 40 } } //polyphase filter fixed point specification filter[i][k] = fixespec(filter[i][k],lpoly 1) ; 50 xxvii

82 /* initwindowfiltersubband() */ void initwindowfiltersubband( void ) { int i, j ; off[0] = 0 ; 60 off[1] = 0 ; half[0] = 0 ; half[1] = 0 ; for (i=0 ;i<2 ;i++) for (j=0 ;j<512 ;j++) x[i][j] = 0 ; create ana filter(m) ; //window coeff fixed point spécification 70 for (i=0 ;i<512 ;i++) fixedwin[i]=fixespec(enwindow[i],4+lwin 1) ; } //compute multiplication output format m1s=m1e+lwin ; m2s=m2e+lpoly ; /* windowfiltersubband() */ 80 void oldwindowfiltersubband( short * pbuffer, int k, double s[sblimit] ) { double y[64] ; int i,j ; double t ; double * rpmm ; int offcache ; double *dp ; 90 double ytemp[64] ; dp = &x[k][0] ; offcache = off[k] ; /* replace 32 oldest samples with 32 new samples */ for ( i=0 ; i<32 ; i++ ) { dp[31 i+offcache] = (double) pbuffer[i]/scale ; //fixed point specification before the first multiplication dp[31 i+offcache]=fixespec(dp[31 i+offcache],m1e 1) ; 100 } //windowing the input for (i=0 ; i<512 ;i++) { windowedcache[i]=dp[(i+64*0+offcache)&(512 1)] * fixedwin[i+64*0] ; //fixed point specification after the first multiplication windowedcache[i]=fixespec(windowedcache[i],3+m1s 1) ; //fixed point specification before the first addition windowedcache[i]=fixespec(windowedcache[i],3+a1e 1) ; 110 } xxviii

83 for( i = 0 ; i<64 ; i++ ) { t = windowedcache[i+64*0] ; t += windowedcache[i+64*1] ; t += windowedcache[i+64*2] ; t += windowedcache[i+64*3] ; 120 t += windowedcache[i+64*4] ; t += windowedcache[i+64*5] ; t += windowedcache[i+64*6] ; t += windowedcache[i+64*7] ; } y[i] = t ; //fixed point specification after the first addition y[i]=fixespec(y[i],3+a1e 1) ; //fixed point specification before the second multiplication y[i]=fixespec(y[i],3+m2e 1) ; 130 off[k] += 480 ; off[k] &= ; /*offset is modulo (HAN SIZE-1)*/ rpmm = (double *) (m) ; 140 for ( i=0 ; i<sblimit ; i++ ) { t = 0 ; for( j = 0 ; j < 64 ; j++ ) { ytemp[j]= rpmm[j] * y[j] ; //fixed point specification after the second multiplication ytemp[j]=fixespec(ytemp[j],2+m2s 1) ; //fixed point specification before the second addition ytemp[j]=fixespec(ytemp[j],a2e 2) ; 150 } for( j = 0 ; j < 64 ; j++ ) t += ytemp[j] ; rpmm += j ; // fixed point specification after the second addition t=fixespec(t,a2e 2) ; s[i] = t ; } 160 } xxix

84 D.3 MDCT /* */ (c) Copyright 1998, Tord Jansson ======================================= double ca[8], cs[8] ; /* This is table B.9 : coefficients for aliasing reduction */ 10 static double c[8] = { 0.6, 0.535, 0.33, 0.185, 0.095, 0.041, , } ; static int m1s s ; static int m2s s ; static int m1s l ; static int m2s l ; static int m3s l ; int finit mdct sub ; void mdct sub( L3SBS (*sb sample), double (*mdct freq)[2][576], int stereo, III side info t *l3 side, int mode gr ) 20 { gr info *cod info ; double mdct in[36] ; int ch,gr,band,k,j ; double bu,bd ; int block type ; double (*mdct enc)[2][32][18] = (double (*)[2][32][18]) mdct freq ; double tmpmult=0 ; if ( finit mdct sub == 0 ) 30 { /* prepare the aliasing reduction butterflies */ for ( k = 0 ; k < 8 ; k++ ) { double sq ; sq = sqrt( c[k] * c[k] ) ; ca[k] = c[k] / sq ; //aliasing reduction butterflies fixed point specification ca[k] = fixespec(ca[k],lpap 1) ; cs[k] = 1.0 / sq ; 40 } //aliasing reduction butterflies fixed point specification cs[k] = fixespec(cs[k],lpap 1) ; } finit mdct sub++ ; m1s s=m1ems+lwin ; m2s s=m2ems+lcos ; m1s l=m1eml+lwin ; 50 m2s l=m2eml+lcos ; m3s l=m3eml+lpap ; xxx

85 for ( gr = 0 ; gr < mode gr ; gr++ ) for ( ch = 0 ; ch < stereo ; ch++ ) { cod info = (gr info *) &(l3 side >gr[gr].ch[ch]) ; block type = cod info >block type ; 60 /* Compensate for inversion in the analysis filter */ for ( band = 0 ; band < 32 ; band++ ) for ( k = 0 ; k < 18 ; k++ ) if ( (band & 1) && (k & 1) ) (*sb sample)[ch][gr+1][k][band] *= 1.0 ; /* */ Perform imdct of 18 previous subband samples + 18 current subband samples 70 for ( band = 0 ; band < 32 ; band++ ) { for ( k = 0 ; k < 18 ; k++ ) { mdct in[k] = (*sb sample)[ch][ gr ][k][band] ; mdct in[k+18] = (*sb sample)[ch][gr+1][k][band] ; } 80 if ( cod info >mixed block flag && (band < 2) ) block type = 0 ; } mdct( mdct in, &mdct enc[gr][ch][band][0], block type ) ; /* Perform aliasing reduction butterfly on long blocks */ 90 if ( block type!= 2 ) for ( band = 0 ; band < 31 ; band++ ) for ( k = 0 ; k < 8 ; k++ ) { //fixed point specification at the third multiplication input 100 mdct enc[gr][ch][band][17 k]=fixespec(mdct enc[gr][ch][band][17 k],m3eml 1 1) ; mdct enc[gr][ch][band+1][k]=fixespec(mdct enc[gr][ch][band+1][k],m3eml 1 1) ; bu = mdct enc[gr][ch][band][17 k] * cs[k] ; tmpmult = mdct enc[gr][ch][band+1][k] * ca[k] ; //fixed point specification at the third multiplication output tmpmult=fixespec(tmpmult,m3s l 1 2) ; bu=fixespec(bu,m3s l 1 2) ; //fixed point specification at the second addition input tmpmult=fixespec(tmpmult,a2eml 1 2) ; 110 bu=fixespec(bu,a2eml 1 2) ; xxxi

86 bu = bu + tmpmult ; //fixed point specification at the second addition output bu=fixespec(bu,a2eml 1 2) ; bd = mdct enc[gr][ch][band+1][k] * cs[k] ; tmpmult = mdct enc[gr][ch][band][17 k] * ca[k] ; //fixed point specification at the third multiplication output tmpmult=fixespec(tmpmult,m3s l 1 2) ; 120 bd=fixespec(bd,m3s l 1 2) ; //fixed point specification at the second addition input tmpmult=fixespec(tmpmult,a2eml 1 2) ; bd=fixespec(bd,a2eml 1 2) ; bd = bd tmpmult ; //fixed point specification at the second addition output bd=fixespec(bd,a2eml 1 2) ; } mdct enc[gr][ch][band][17 k] = bu ; 130 mdct enc[gr][ch][band+1][k] = bd ; } /* Save latest granule s subband samples to be used in the next mdct call 140 */ } for ( ch = 0 ; ch < stereo ; ch++ ) for ( j = 0 ; j < 18 ; j++ ) for ( band = 0 ; band < 32 ; band++ ) (*sb sample)[ch][0][j][band] = (*sb sample)[ch][mode gr][j][band] ; int finit mdct ; 150 void mdct( double *in, double *out, int block type ) { /* -*/ /* */ /* Function : Calculation of the MDCT */ /* In the case of long blocks ( block type 0,1,3 ) there are */ /* 36 coefficents in the time domain and 18 in the frequency */ /* domain. */ /* In the case of short blocks (block type 2 ) there are 3 */ /* transformations with short length. This leads to 12 coefficents */ 160 /* in the time and 6 in the frequency domain. In this case the */ /* results are stored side by side in the vector out[ ]. */ /* -*/ int l,k,i,m,n ; double sum ; static double win[4][36] ; static double cos s[6][12], cos l[18][36] ; xxxii

87 double tmpmult=0 ; 170 if ( finit mdct == 0 ) { /* type 0 */ for ( i = 0 ; i < 36 ; i++ ) { win[0][i] = sin( PI/36 * (i + 0.5) ) ; //window fixed point specification win[0][i] = fixespec(win[0][i],lwin 1) ; } 180 /* type 1*/ for ( i = 0 ; i < 18 ; i++ ) { win[1][i] = sin( PI/36 * (i + 0.5) ) ; //window fixed point specification win[1][i] = fixespec(win[1][i],lwin 1) ; } for ( i = 18 ; i < 24 ; i++ ) 190 { win[1][i] = 1.0 ; //window fixed point specification win[1][i] = fixespec(win[1][i],lwin 1) ; } for ( i = 24 ; i < 30 ; i++ ) { win[1][i] = sin( PI/12 * ( i ) ) ; //window fixed point specification win[1][i] = fixespec(win[1][i],lwin 1) ; 200 } for ( i = 30 ; i < 36 ; i++ ) win[1][i] = 0.0 ; /* type 3*/ for ( i = 0 ; i < 6 ; i++ ) win[3][i] = 0.0 ; for ( i = 6 ; i < 12 ; i++ ) { 210 win[3][i] = sin( PI/12 * (i ) ) ; //window fixed point specification win[3][i] = fixespec(win[3][i],lwin 1) ; } for ( i = 12 ; i < 18 ; i++ ) { win[3][i] = 1.0 ; //window fixed point specification win[3][i] = fixespec(win[3][i],lwin 1) ; } 220 for ( i = 18 ; i < 36 ; i++ ) { win[3][i] = sin( PI/36 * (i + 0.5) ) ; //window fixed point specification win[3][i] = fixespec(win[3][i],lwin 1) ; xxxiii

88 } /* type 2*/ for ( i = 0 ; i < 12 ; i++ ) 230 { win[2][i] = sin( PI/12 * (i + 0.5) ) ; //window fixed point specification win[2][i] = fixespec(win[2][i],lwin 1) ; } for ( i = 12 ; i < 36 ; i++ ) win[2][i] = 0.0 ; N = 12 ; for ( m = 0 ; m < N / 2 ; m++ ) 240 for ( k = 0 ; k < N ; k++ ) { cos s[m][k] = cos( (PI /(2 * N)) * (2 * k N / 2) * (2 * m + 1) ) / (N / 4) ; //Short MDCT coefficient fixed point specification cos s[m][k] = fixespec(cos s[m][k],lcos 1) ; } N = 36 ; for ( m = 0 ; m < N / 2 ; m++ ) 250 for ( k = 0 ; k < N ; k++ ) { cos l[m][k] = cos( (PI / (2 * N)) * (2 * k N / 2) * (2 * m + 1) ) / (N / 4) ; //Long MDCT coefficient fixed point specification cos l[m][k] = fixespec(cos l[m][k],lcos 1) ; } finit mdct++ ; } 260 if ( block type == 2 ) { N = 12 ; for ( l = 0 ; l < 3 ; l++ ) { for ( m = 0 ; m < N / 2 ; m++ ) { for ( sum = 0.0, k = 0 ; k < N ; k++ ) { //fixed point specification for the input 270 in[k + 6 * l + 6]=fixeSpec(in[k + 6 * l + 6],M1EMS 1 1) ; tmpmult=win[block type][k] * in[k + 6 * l + 6] ; //fixed point specification at the first multiplication output tmpmult=fixespec(tmpmult,m1s s 1 2) ; //fixed point specification at the second multiplication input tmpmult=fixespec(tmpmult,m2ems 1 2) ; tmpmult=tmpmult * cos s[m][k] ; //fixed point specification at the second multiplication output 280 tmpmult=fixespec(tmpmult,m2s s 1 3) ; //fixed point specification at the first addition input xxxiv

89 tmpmult=fixespec(tmpmult,a1ems 1 1) ; sum +=tmpmult ; } //fixed point specification at the first addition output sum=fixespec(sum,a1ems 1 1) ; out[ 3 * m + l] = sum ; 290 } } } else { N = 36 ; for ( m = 0 ; m < N / 2 ; m++ ) { for ( sum = 0.0, k = 0 ; k < N ; k++ ) { //fixed point specification for the input 300 in[k]=fixespec(in[k],m1eml 1 1) ; tmpmult=win[block type][k] * in[k] ; //fixed point specification at the first multiplication output tmpmult=fixespec(tmpmult,m1s l 1 2) ; //fixed point specification at the second multiplication input tmpmult=fixespec(tmpmult,m2eml 1 2) ; tmpmult=tmpmult * cos l[m][k] ; //fixed point specification at the second multiplication output 310 tmpmult=fixespec(tmpmult,m2s l 1 3) ; //fixed point specification at the first addition input tmpmult=fixespec(tmpmult,a1eml 1 1) ; sum +=tmpmult ; } //fixed point specification at the first addition output sum=fixespec(sum,a1eml 1 1) ; out[m] = sum ; } 320 } } xxxv

90 Annexe E Organisation des fichiers Les fichiers utilisés au cours de ce stage sont rassemblés dans un répertoire. Chaque sousrépertoire contient un fichier lisezmoi.txt avec le details sur les sous-répertoires. Cette partie regroupe l ensemble de ces fichiers à commencer par le répertoire principal qui contient : biblio : rapport d étude bibliographique et diaporama correspondant (dans le sous répertoire slide) doc : documents utilisés lors du stage (si disponibles en version electronique). rapport : rapport du stage et diaporama correspondant résultats : résultats des différents calculs src : codes des différents programmes utilisés test_panel : fichier wave utiluisés pour les tests sur l encodeur. E.1 Répertoire : rapport Ce répertoire contient le rapport du stage et les documents qui s y rattachent. Le fichier romainserizel_ pdf est le rapport qui a servi de base à la soutenance fin juin. main.pdf est la dernière version compilée du rapport. Le fichier à compiler est main.tex. Le fichier alpha-fr.bst a été modifié de manière à faire apparaitre l isbn. pic : contient les images. Le fichier tex étant fait pour être compilé avec pdflatex, il convient de convertir les images en pdf. Pour cela, le script topdf.bat permet de convertir tous les fichier.eps d un répertoire. slide : contient la présentation. Les fichiers slide.xxx et handout.xxx correspondent respectivement au diaporama et au support de présentation. source : contient les extraits de codes inclus dans le rapport. xxxvi

91 E.2 Répertoire : résultats Ce répertoire contient les résultats des différents calculs menés lors du stage. bruitmesure : regroupe les mesure de la sortie de la MDCT pour différents niveaux de bruit gaussien : résultats aux tests mis en place par Pierre Meignen pour vérifier qu un bruit est gaussien. khi_test : coefficents alpha et probabilités correspondantes calculés en selon la méthode du chiš. les échantillons testés sont ceux du répertoire bruitmesure sourcebruit : les relevés de taux de dégradation objective pour des sources de bruit après chaque bloc fonctionnel.chaque répertoire contient également une fonction matlab permettant de tracer ces résultats. Dans le répertoire parent, un fichier open office présente un récapitulatif de ces différents résultats. E.3 Répertoire : src E.3.1 Ce répertoire contient le codes sources des différent programmes utilisés : blade_bruits : l encodeur avec les sources de bruit blade : différentes versions de l encodeur bruits : les modèles de bruit des blocs fonctionnels chi2 : algorithme de recherche du coefficient de pondération (alpha) virgulefixe : l encodeur avec certains blocs en virgule fixe répertoire blade_bruits Ce répertoire contient les codes sources des différents encodeurs, modifiés de manière à pouvoir ajouter le bruit de quantification lié au passage en virgule après chacun des blocs fonctionnels. Les différentes versions correspondent à : V1.0 : - La nouvelle méthode de filtrage pour le filtre polyphase a été supprimé de manière a simplifier l étude de l algorithme. Les versions suivantes sont basées sur un encodeur simplifié où les taux, modes de compressions,etc... ont été fixés : taux constant à 192 kbit/s en taux constant pour des échantillons stéréo en entrée uniquement. xxxvii

92 v1.07 : - le code Matlab permettant d introduire le bruit en sortie du filtre polyphase est ajouté. v1.08 : - le code Matlab permettant d introduire le bruit en sortie de la Mdct est ajouté. v1.09 : - cette version permet d ajouter du bruit à la fois en sortie du filtre polyphase et de la mdct. v1.10 : - le code Matlab permettant d introduire le bruit sur les coefficient du modèle psychoaccoustique est ajouté. v1.11 : - cette version permet d ajouter du bruit à la fois en sortie de la mdct et sur les coefficient du modèle psychoaccoustique. v1.13 : - cette version permet d ajouter du bruit à la fois en sortie de la fft et sur les coefficient du modèle psychoaccoustique. v1.14 : - cette version permet d ajouter du bruit en sortie des quatre blocs fonctionnels. De manière générale, un fichier changelog est présent dans chacun des répertoire. Il rescense les changements entre les différentes versions et les date de réalisations de ces dernières. Dans chaque répertoire, l exécutable "bladeenc.exe" est présent, il s utilise de la manière suivante : bladeenc.exe nomfichier AlphaBruit1 puissancebruit1 (AlphaBruit2 puissancebruit2 AlphaBruit3 puissancebruit3 AlphaBruit4 puissancebruit4) Le Bruit1 doit toujours être présent, les autres dépendront de la version utilisée. Ces codes étant compilés avec gcc sous cygwin, il est nécessaire d inclure le chemin vers la bibliothèque "cygwin.dll" dans les path de l environnement de travail. Les programmes font appel au moteur Matlab pour ajouter les bruits, il donc également nécessaire d avoir des droits permettant d utiliser les composant COM (ActiveX) faute de quoi le programme ne pourra pas communiquer avec les moteur matlab. Le chemin d accés aux librairies et executables matlab doit être indiqué dans le fichier Makefile, lignes : bladeenc_ldadd = -L/cygdrive/c/Program\ Files/MATLAB704/bin/win32 -lm -lut -leng -lmx DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I.. -I/cygdrive/c/Program\ Files/MATLAB704/extern/include On remarquera d une part que ces lignes permettent également d inclure les librairies nécessaires à la compilation. Le chemin indiqué ici est le chemin par défaut (sous windows) sur les postes de l ENSSAT, s il est différent sur le poste à partir duquel le programme doit être executé il sera sans doute nécessaire d éditer ces paramètres et de recompiler le programme. Le fichier makefile ayant été édité "à la main" pour ajouter ces paramètres, il ne faut pas executer le script "config" qui générerait un nouveau Makefile et obligerait donc à saisir ces lignes de nouveau. xxxviii

93 Tous les fichiers sources sont normalement présents dans chacuns des répertoires. S il arrivait toutefois qu il en manque (plus particulièrement le fichier tables.c) c est que ces fichiers n ont pas été modifiés depuis la version originale. Ils sont donc disponibles dans le répertoire blade\blade_backup Chaque répertoire contient un ensemble de scripts permettant d automatiser les calculs. Ils permettent : pour les différent paramètres de bruit spécifiés de compresser l ensemble des fichiers wave présent dans le répertoire de décompresser les fichier mp3 d analyser la qualité de la compression (les résultats seront sauvés dans un fichier txt). Le fichier à exécuter et le fichier test.bat (qui executera db.bat, qui executera file.bat, qui executera traitement.bat). Les paramètres du bruit sont à modifier dans les fichier test.bat et db.bat (respectivement alpha et puissance) E.3.2 répertoire bruits Ce répertoire contient les différentes fonctions matlab relatives aux modèles de bruit. répertoire mdct Ce répertoire contient le modèle du bruit de la mdct. Les différents fichiers sont : AREA.m (d après Nicolas Hervé) : calcule la fonction de cout en fonction de la largeur des opérateurs : AREAShort pour le mode court, AREALong pour les autres modes qui sont équivalent du point de vu des opérateurs. bruit.m : compare le modèle de bruit et le bruit simulé : bruitlong, bruitshort, bruitsl, bruitls correspondant aux mode de fonctionnement de la mdct (long, court, court vers long, long vers court) fixespec.m : fonction servant à simuler le comportement en virgule fixe floatpoly.m : filtre polyphase en virgule flottante float.m : mdct en virgule flottante : floatshort pour le mode court, floatlong pour les autres modes qui ne sont différents qu au niveau de la fenêtre (cette dernière étant gérée dans le fichier bruit) fixed.m : mdct en virgule fixe : shortfixed pour le mode court, longfixed pour les autres modes qui ne sont différents qu au niveau de la fenêtre (cette dernière étant gérée dans xxxix

94 le fichier bruit) mdcdyn.m : ces fichiers permette le calcul de la dynamique init.m : initialisation des varaibles (pas utilisé pour le moment) model.m : modèle du bruit dans la mdct : Long, Short, SL, LS correspondant aux mode de fonctionnement de la mdct (long, court, court vers long, long vers court) optimfast (d après Nicolas Hervé) : calcul la largeur des différents opérateur pour un niveau de bruit donné. (repose sur l uilisation du modèle) Long, Short, SL, LS correspondant aux mode de fonctionnement de la mdct (long, court, court vers long, long vers court) Les fichier "comparaison_sim_mod.txt" présentent des relevés de puissance de bruit pour différentes largeurs d opérateurs (quoi ce soit pour la simulation ou pour le modèle). Le fichier "enwin.dat" contient les coefficients de la fenêtre du filtre. répertoire polyphase Ce répertoire contient le modèle du bruit d un le filtre polyphase. Les différents fichiers sont : AREA.m (d après Nicolas Hervé) : calcule la fonction de cout en fonction de la largeur des opérateurs bruit.m : compare le modèle de bruit et le bruit simulé fixed.m : filtre polyphase simulé en virgule fixe fixespec.m : fonction servant à simuler le comportement en virgule fixe floatpoly.m : filtre polyphase en virgule flottante init.m : initialisation des varaibles (pas utilisé pour le moment) model.m : modèle du bruit dans le filtre polyphase optimfast (d après Nicolas Hervé) : calcul la largeur des différents opérateur pour un niveau de bruit donné. (repose sur l uilisation du modèle) le fichier "comparaison_sim_mod.txt" présente des relevés de puissance de bruit pour différentes largeurs d opérateurs (quoi ce soit pour la simulation ou pour le modèle). Le fichier "enwin.dat" contient les coefficients de la fenêtre du filtre. xl

95 E.3.3 répertoire fir répertoire chi2 les repertoire dist et dsit _short contiennent les sorties du fir pour les échantillons _dist et dist_short en entrée. convol.m : calcul du produit de convolution firfixe.m : filtre fir en virgule fixe (firfixetrunc.m avec troncature à la place de l arrondi) firfloat.m : fir fir en virgule flottante fixespec.m : fonction permettant l arrondi à la précision souhaitée (fixespectrunc.m avec troncature à la place de l arrondi) khitestalpha.m script de test du chiš adapté à la recherche du coefficient alpha pow.m : calcul de la puissance des bruits et tracé de la repartition rechalpha.m : permet de recherhcer le coefficient alpha sur des échantillons données. test.m : permet de générer la sortie du fir en virgule fixe et flottante (écrit le résultats dans des fichiers) (testtrunc.m avec troncature à la place de l arrondi) répertoire mdct convol.m : calcul du produit de convolution khitestalpha.m script de test du chiš adapté à la recherche du coefficient alpha noisecalc.m : calcul de la puissance des bruits noiseth.m : permet de vérifier qu un bruit est gaussien en utilisant les scripts de Pierre Meignen rechalpha.m : permet de recherhcer le coefficient alpha sur des échantillons données. resultats.m : calcul le nombre de cas dans lequel un alpha a été trouvé. test.m : permet de générer la sortie du fir en virgule fixe et flottante (écrit le résultats dans des fichiers) Les autres fichiers sont les scripts de Pierre Meignen contenant les tests statistiques. xli

96 E.3.4 répertoire virgulefixe Ce répertoire contient les codes sources des différents encodeurs, modifiés de manière simuler un comportement en virgule fixe pour certains blocs fonctionnels. Les différentes versions correspondent à : V2.0 : - Le filtre polyphase est en virgule, la simulation se fait en utilisant le moteur matlab. Cette solution étant trop lente, elle a été abandonnée. V2.1 : - Le filtre polyphase est en virgule, la simulation se fait en utilisant la fonction dans fixe.c. V2.2 : - La mdct est en virgule fixe, la simulation se fait en utilisant la fonction dans fixe.c. V2.2.1 : - La mdct est en virgule fixe, la simulation se fait en utilisant la fonction dans fixe.c. Les coefficients en sortie de la mdct sont sauvés dans un fichier. V2.2.2 : - troncature au lieu de l arrondi. V2.3 : - Le filtre polyphase et la mdct sont en virgule, la simulation se fait en utilisant la fonction dans fixe.c. De manière générale, un fichier changelog est présent dans chacun des répertoire. Il rescense les changements entre les différentes versions et les date de réalisations de ces dernières. Dans chaque répertoire, l exécutable "bladeenc.exe" est présent, il s utilise de la manière suivante : bladeenc.exe nomfichier largeuroperateurfiltrepolyphase (largeuroperateurmdctcourte largeuroperateurmdctlonguee) Les différentes largeurs sont à indiquer suivant la version utilisée. Les largeurs correspondant à différents niveaux de bruit de quantification sont stockées dans le répertoire coeffs (p :polyphase, ms :mdctshort, ml :mdctlong). Ces codes étant compilés avec gcc sous cygwin, il est nécessaire d inclure le chemin vers la bibliothèque "cygwin.dll" dans les path de l environnement de travail. Tous les fichiers sources sont normalement présents dans chacuns des répertoires. S il arrivait toutefois qu il en manque (plus particulièrement le fichier tables.c) c est que ces fichiers n ont pas été modifiés depuis la version originale. Ils sont donc disponibles dans le répertoire blade\blade_backup Chaque répertoire contient un ensemble de scripts permettant d automatiser les calculs. Ils permettent : pour les différent paramètres de bruit spécifiés de compresser l ensemble des fichiers wave présent dans le répertoire de décompresser les fichier mp3 xlii

97 d analyser la qualité de la compression (les résultats seront sauvés dans un fichier txt). Le fichier à exécuter et le fichier test.bat (qui executera db.bat, qui executera file.bat, qui executera traitement.bat). Les paramètres du bruit sont à modifier dans les fichier test.bat et db.bat. NB : Ici la puissance des bruits dépend des spécifications vrigules déterminées grace aux modèles. Les fichiers contenant ces spécifications sont dans le répertoir coeff. xliii

Chaine de transmission

Chaine de transmission Chaine de transmission Chaine de transmission 1. analogiques à l origine 2. convertis en signaux binaires Échantillonnage + quantification + codage 3. brassage des signaux binaires Multiplexage 4. séparation

Plus en détail

Systèmes de transmission

Systèmes de transmission Systèmes de transmission Conception d une transmission série FABRE Maxime 2012 Introduction La transmission de données désigne le transport de quelque sorte d'information que ce soit, d'un endroit à un

Plus en détail

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE Le schéma synoptique ci-dessous décrit les différentes étapes du traitement numérique

Plus en détail

Intérêt du découpage en sous-bandes pour l analyse spectrale

Intérêt du découpage en sous-bandes pour l analyse spectrale Intérêt du découpage en sous-bandes pour l analyse spectrale David BONACCI Institut National Polytechnique de Toulouse (INP) École Nationale Supérieure d Électrotechnique, d Électronique, d Informatique,

Plus en détail

ISO/CEI 11172-3 NORME INTERNATIONALE

ISO/CEI 11172-3 NORME INTERNATIONALE NORME INTERNATIONALE ISO/CEI 11172-3 Première édition 1993-08-01 Technologies de l information - Codage de l image animée et du son associé pour les supports de stockage numérique jusqu à environ Ii5 Mbit/s

Plus en détail

Bandes Critiques et Masquage

Bandes Critiques et Masquage Bandes Critiques et Masquage A. Almeida Licence Pro Acoustique et Vibrations Octobre 2012 Au Menu Au programme 1 Observations du masquage 5 Application du masquage 2 Conséquences du Masquage 3 Interprétation

Plus en détail

Projet audio. Analyse des Signaux ELE2700

Projet audio. Analyse des Signaux ELE2700 ÉCOLE POLYTECHNIQUE DE MONTRÉAL Département de Génie Électrique Projet audio Analyse des Signaux ELE2700 Saad Chidami - 2014 Table des matières Objectif du laboratoire... 4 Caractérisation du bruit...

Plus en détail

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES Compétences mises en jeu durant l'activité : Compétences générales : S'impliquer, être autonome. Compétence(s) spécifique(s) : Reconnaître des signaux de nature

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Enregistrement et transformation du son. S. Natkin Novembre 2001

Enregistrement et transformation du son. S. Natkin Novembre 2001 Enregistrement et transformation du son S. Natkin Novembre 2001 1 Éléments d acoustique 2 Dynamique de la puissance sonore 3 Acoustique géométrique: effets de diffusion et de diffraction des ondes sonores

Plus en détail

Chapitre 2 Les ondes progressives périodiques

Chapitre 2 Les ondes progressives périodiques DERNIÈRE IMPRESSION LE er août 203 à 7:04 Chapitre 2 Les ondes progressives périodiques Table des matières Onde périodique 2 2 Les ondes sinusoïdales 3 3 Les ondes acoustiques 4 3. Les sons audibles.............................

Plus en détail

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté Compétences travaillées : Mettre en œuvre un protocole expérimental Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

Numérisation du signal

Numérisation du signal Chapitre 12 Sciences Physiques - BTS Numérisation du signal 1 Analogique - Numérique. 1.1 Définitions. Signal analogique : un signal analogique s a (t)est un signal continu dont la valeur varie en fonction

Plus en détail

Quantification Scalaire et Prédictive

Quantification Scalaire et Prédictive Quantification Scalaire et Prédictive Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 7 Décembre 2012 M. Cagnazzo Quantification Scalaire et Prédictive 1/64 Plan Introduction

Plus en détail

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd UE 503 L3 MIAGE Initiation Réseau et Programmation Web La couche physique A. Belaïd [email protected] http://www.loria.fr/~abelaid/ Année Universitaire 2011/2012 2 Le Modèle OSI La couche physique ou le

Plus en détail

Projet de Traitement du Signal Segmentation d images SAR

Projet de Traitement du Signal Segmentation d images SAR Projet de Traitement du Signal Segmentation d images SAR Introduction En analyse d images, la segmentation est une étape essentielle, préliminaire à des traitements de haut niveau tels que la classification,

Plus en détail

TP Modulation Démodulation BPSK

TP Modulation Démodulation BPSK I- INTRODUCTION : TP Modulation Démodulation BPSK La modulation BPSK est une modulation de phase (Phase Shift Keying = saut discret de phase) par signal numérique binaire (Binary). La phase d une porteuse

Plus en détail

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia Olivier Togni Université de Bourgogne, IEM/LE2I Bureau G206 [email protected] 24 mars 2015 2 de 24 M1 Informatique, Réseaux Cours

Plus en détail

http://www.u-bourgogne.fr/monge/e.busvelle/teaching.php

http://www.u-bourgogne.fr/monge/e.busvelle/teaching.php TP1 Traitement numérique du son 1 Introduction Le but de ce TP est de mettre en pratique les notions de traitement numérique vues en cours, TDs et dans le précédent TP. On se focalisera sur le traitement

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Chap17 - CORRECTİON DES EXERCİCES

Chap17 - CORRECTİON DES EXERCİCES Chap17 - CORRECTİON DES EXERCİCES n 3 p528 Le signal a est numérique : il n y a que deux valeurs possibles pour la tension. Le signal b n est pas numérique : il y a alternance entre des signaux divers

Plus en détail

Chapitre 18 : Transmettre et stocker de l information

Chapitre 18 : Transmettre et stocker de l information Chapitre 18 : Transmettre et stocker de l information Connaissances et compétences : - Identifier les éléments d une chaîne de transmission d informations. - Recueillir et exploiter des informations concernant

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

Chapitre 2 : communications numériques.

Chapitre 2 : communications numériques. Chapitre 2 : communications numériques. 1) généralités sur les communications numériques. A) production d'un signal numérique : transformation d'un signal analogique en une suite d'éléments binaires notés

Plus en détail

$SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU

$SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU $SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU Fabien FIGUERES [email protected] 0RWVFOpV : Krigeage, plans d expériences space-filling, points de validations, calibration moteur. 5pVXPp Dans le

Plus en détail

TD : Codage des images

TD : Codage des images TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment

Plus en détail

Les techniques de multiplexage

Les techniques de multiplexage Les techniques de multiplexage 1 Le multiplexage et démultiplexage En effet, à partir du moment où plusieurs utilisateurs se partagent un seul support de transmission, il est nécessaire de définir le principe

Plus en détail

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION ) Caractéristiques techniques des supports. L infrastructure d un réseau, la qualité de service offerte,

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Echantillonnage Non uniforme

Echantillonnage Non uniforme Echantillonnage Non uniforme Marie CHABERT IRIT/INP-ENSEEIHT/ ENSEEIHT/TéSASA Patrice MICHEL et Bernard LACAZE TéSA 1 Plan Introduction Echantillonnage uniforme Echantillonnage irrégulier Comparaison Cas

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : [email protected] La maquette

Plus en détail

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test

Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test 11 juillet 2003 Étude des Corrélations entre Paramètres Statiques et Dynamiques des Convertisseurs Analogique-Numérique en vue d optimiser leur Flot de Test Mariane Comte Plan 2 Introduction et objectif

Plus en détail

Expérience 3 Formats de signalisation binaire

Expérience 3 Formats de signalisation binaire Expérience 3 Formats de signalisation binaire Introduction Procédures Effectuez les commandes suivantes: >> xhost nat >> rlogin nat >> setenv DISPLAY machine:0 >> setenv MATLABPATH /gel/usr/telecom/comm_tbx

Plus en détail

Liste de vérification des exigences Flexfone

Liste de vérification des exigences Flexfone Liste de vérification des exigences Flexfone Introduction Avant de déployer un service de voix par le protocole de l Internet (VoIP) ou un PBX hébergé dans votre entreprise, vous devriez prendre certaines

Plus en détail

Chapitre 13 Numérisation de l information

Chapitre 13 Numérisation de l information DERNIÈRE IMPRESSION LE 2 septembre 2013 à 17:33 Chapitre 13 Numérisation de l information Table des matières 1 Transmission des informations 2 2 La numérisation 2 2.1 L échantillonage..............................

Plus en détail

Dan Istrate. Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier

Dan Istrate. Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier Détection et reconnaissance des sons pour la surveillance médicale Dan Istrate le 16 décembre 2003 Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier Thèse mené dans le cadre d une collaboration

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Filtrage stochastique non linéaire par la théorie de représentation des martingales Filtrage stochastique non linéaire par la théorie de représentation des martingales Adriana Climescu-Haulica Laboratoire de Modélisation et Calcul Institut d Informatique et Mathématiques Appliquées de

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Technique de codage des formes d'ondes

Technique de codage des formes d'ondes Technique de codage des formes d'ondes Contenu Introduction Conditions préalables Conditions requises Composants utilisés Conventions Modulation par impulsions et codage Filtrage Échantillon Numérisez

Plus en détail

Utilisation d informations visuelles dynamiques en asservissement visuel Armel Crétual IRISA, projet TEMIS puis VISTA L asservissement visuel géométrique Principe : Réalisation d une tâche robotique par

Plus en détail

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE RANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE Un message numérique est une suite de nombres que l on considérera dans un premier temps comme indépendants.ils sont codés le plus souvent

Plus en détail

Communication parlée L2F01 TD 7 Phonétique acoustique (1) Jiayin GAO <[email protected]> 20 mars 2014

Communication parlée L2F01 TD 7 Phonétique acoustique (1) Jiayin GAO <jiayin.gao@univ-paris3.fr> 20 mars 2014 Communication parlée L2F01 TD 7 Phonétique acoustique (1) Jiayin GAO 20 mars 2014 La phonétique acoustique La phonétique acoustique étudie les propriétés physiques du signal

Plus en détail

La nouvelle dimension de l analyse acoustique et vibratoire

La nouvelle dimension de l analyse acoustique et vibratoire La nouvelle dimension de l analyse acoustique et vibratoire HEAD Gallery Des fonctions innovantes intégrées dans une technologie de pointe ArtemiS suite est la solution logicielle intégrée de HEAD acoustics

Plus en détail

Outils permettant la diffusion de l information. Un point sur le droit numérique

Outils permettant la diffusion de l information. Un point sur le droit numérique Technologies de l Information et de la Communication Introduction aux NTE/TICE Présentation des UNR UNT Outils permettant la diffusion de l information Conceptualisation d un module d apprentissage numérique

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne Objectifs : Ce TP est relatif aux différentes méthodes de codage d une information binaire, et à la transmission en bande de base de cette information. Les grandes lignes de ce TP sont l étude des méthodes

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK 5.1 Introduction Simulink est l'extension graphique de MATLAB permettant, d une part de représenter les fonctions mathématiques et les systèmes sous forme

Plus en détail

Réseaux grande distance

Réseaux grande distance Chapitre 5 Réseaux grande distance 5.1 Définition Les réseaux à grande distance (WAN) reposent sur une infrastructure très étendue, nécessitant des investissements très lourds. Contrairement aux réseaux

Plus en détail

Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information

Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information Chapitre 22 : (Cours) Numérisation, transmission, et stockage de l information I. Nature du signal I.1. Définition Un signal est la représentation physique d une information (température, pression, absorbance,

Plus en détail

ACOUSTIQUE 3 : ACOUSTIQUE MUSICALE ET PHYSIQUE DES SONS

ACOUSTIQUE 3 : ACOUSTIQUE MUSICALE ET PHYSIQUE DES SONS Matériel : Logiciel winoscillo Logiciel synchronie Microphone Amplificateur Alimentation -15 +15 V (1) (2) (3) (4) (5) (6) ACOUSTIQUE 3 : ACOUSTIQUE MUSICALE ET PHYSIQUE DES SONS Connaissances et savoir-faire

Plus en détail

Livrable 2.1 Rapport d analyse et de restructuration de code monothread des modules P, T, Q et F de l encodage MPEG-4 AVC

Livrable 2.1 Rapport d analyse et de restructuration de code monothread des modules P, T, Q et F de l encodage MPEG-4 AVC Groupe des Ecoles des Télécommunications Institut National des Télécommunications Département ARTEMIS Advanced Research & TEchniques for Multidimensional Imaging Systems Livrable 2.1 Rapport d analyse

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Transmission de données. A) Principaux éléments intervenant dans la transmission

Transmission de données. A) Principaux éléments intervenant dans la transmission Page 1 / 7 A) Principaux éléments intervenant dans la transmission A.1 Equipement voisins Ordinateur ou terminal Ordinateur ou terminal Canal de transmission ETTD ETTD ETTD : Equipement Terminal de Traitement

Plus en détail

TD séance n 10 Multimédia Son

TD séance n 10 Multimédia Son Ce TD est dédié aux chaînes de traitements audio, un des objets multimédia de base. Il se déroulera sous Windows, bien que les logiciels utilisés ou équivalents soient aussi disponibles sous Unix. Les

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

Mesure agnostique de la qualité des images.

Mesure agnostique de la qualité des images. Mesure agnostique de la qualité des images. Application en biométrie Christophe Charrier Université de Caen Basse-Normandie GREYC, UMR CNRS 6072 Caen, France 8 avril, 2013 C. Charrier NR-IQA 1 / 34 Sommaire

Plus en détail

Analyse d images. [email protected]. Edmond Boyer UFRIMA 1

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1 Analyse d images [email protected] Edmond Boyer UFRIMA 1 1 Généralités Analyse d images (Image Analysis) : utiliser un ordinateur pour interpréter le monde extérieur au travers d images. Images Objets

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

TD1 Signaux, énergie et puissance, signaux aléatoires

TD1 Signaux, énergie et puissance, signaux aléatoires TD1 Signaux, énergie et puissance, signaux aléatoires I ) Ecrire l'expression analytique des signaux représentés sur les figures suivantes à l'aide de signaux particuliers. Dans le cas du signal y(t) trouver

Plus en détail

Université de La Rochelle. Réseaux TD n 6

Université de La Rochelle. Réseaux TD n 6 Réseaux TD n 6 Rappels : Théorème de Nyquist (ligne non bruitée) : Dmax = 2H log 2 V Théorème de Shannon (ligne bruitée) : C = H log 2 (1+ S/B) Relation entre débit binaire et rapidité de modulation :

Plus en détail

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Introduction à l informatique temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 -Définition et problématique - Illustration par des exemples -Automatisme:

Plus en détail

Comment enregistrer simplement toute musique restituée par votre PC

Comment enregistrer simplement toute musique restituée par votre PC Comment enregistrer simplement toute musique restituée par votre PC Il s'agit, vous l'avez compris d'enregistrer tout ce qui passe par la carte son de votre machine : musique ou paroles, chansons ou commentaires

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Qualité perçue de parole transmise par voie téléphonique large-bande

Qualité perçue de parole transmise par voie téléphonique large-bande Université Pierre et Marie Curie Mémoire pour le Master Sciences et Technologie de l UPMC, Mention SDI, Spécialité MIS, Parcours ATIAM. Qualité perçue de parole transmise par voie téléphonique large-bande

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Cours n 12. Technologies WAN 2nd partie

Cours n 12. Technologies WAN 2nd partie Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes

Plus en détail

La couche physique de l ADSL (voie descendante)

La couche physique de l ADSL (voie descendante) La couche physique de l ADSL (voie descendante) Philippe Ciblat École Nationale Supérieure des Télécommunications, Paris, France Problématique qq kilomètres CENTRAL câble de 0,4mm Objectifs initiaux :

Plus en détail

Correction de l examen de la première session

Correction de l examen de la première session de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi

Plus en détail

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes

Plus en détail

P2: Perception auditive

P2: Perception auditive P2: Perception auditive Daniel Pressnitzer Laboratoire des Systèmes Perceptifs, CNRS & Département d études cognitives, Ecole normale supérieure 29 rue d Ulm, 75230 Paris cedex 05 [email protected]

Plus en détail

En DV (PAL ou NTSC), la largeur est toujours de 720 pixels, c'est la proportion du pixel qui change la proportion de l'image.

En DV (PAL ou NTSC), la largeur est toujours de 720 pixels, c'est la proportion du pixel qui change la proportion de l'image. En DV (PAL ou NTSC), la largeur est toujours de 720 pixels, c'est la proportion du pixel qui change la proportion de l'image. Il s agit de la notion de pixels non carrés Cette histoire de pixel non carrés

Plus en détail

Multimedia. Systèmes, Communications et Applications. Ahmed MEHAOUA

Multimedia. Systèmes, Communications et Applications. Ahmed MEHAOUA Multimedia Systèmes, Communications et Applications Ahmed MEHAOUA Professeur - Laboratoire CRIP5 [email protected] Plan 1. Multimedia : principes et définitions 2. Algorithmes et normes

Plus en détail

LABO 5-6 - 7 PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

LABO 5-6 - 7 PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB LABO 5-6 - 7 PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB 5.1 Introduction Au cours de séances précédentes, nous avons appris à utiliser un certain nombre d'outils fondamentaux en traitement du

Plus en détail

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires Chapitre 2 : Systèmes radio mobiles et concepts cellulaires Systèmes cellulaires Réseaux cellulaires analogiques de 1ère génération : AMPS (USA), NMT(Scandinavie), TACS (RU)... Réseaux numériques de 2ème

Plus en détail

Modélisation géostatistique des débits le long des cours d eau.

Modélisation géostatistique des débits le long des cours d eau. Modélisation géostatistique des débits le long des cours d eau. C. Bernard-Michel (actuellement à ) & C. de Fouquet MISTIS, INRIA Rhône-Alpes. 655 avenue de l Europe, 38334 SAINT ISMIER Cedex. Ecole des

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) [email protected] Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Chapitre I La fonction transmission

Chapitre I La fonction transmission Chapitre I La fonction transmission 1. Terminologies 1.1 Mode guidé / non guidé Le signal est le vecteur de l information à transmettre. La transmission s effectue entre un émetteur et un récepteur reliés

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

A la découverte du Traitement. des signaux audio METISS. Inria Rennes - Bretagne Atlantique

A la découverte du Traitement. des signaux audio METISS. Inria Rennes - Bretagne Atlantique A la découverte du Traitement des signaux audio METISS Inria Rennes - Bretagne Atlantique Les conférences scientifiques au Lycée Descartes Imagerie médicale et neuronavigation par Pierre Hellier Le respect

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

TP SIN Traitement d image

TP SIN Traitement d image TP SIN Traitement d image Pré requis (l élève doit savoir): - Utiliser un ordinateur Objectif terminale : L élève doit être capable de reconnaître un format d image et d expliquer les différents types

Plus en détail

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Odile VERBAERE UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Résumé : Cet article présente une réflexion sur une activité de construction de tableau, y compris

Plus en détail

Accédez au test ici http://myspeed.visualware.com/index.php

Accédez au test ici http://myspeed.visualware.com/index.php Test de vitesse VoIP Pourquoi faire le test? Un test de vitesse VoIP est un moyen efficace d évaluer la capacité de votre connexion Internet à prendre en charge un système de téléphonie VoIP. D autres

Plus en détail

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges? Compétences générales Avoir des piles neuves, ou récentes dans sa machine à calculer. Etre capable de retrouver instantanément une info dans sa machine. Prendre une bouteille d eau. Prendre CNI + convocation.

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

SIMULATION HYBRIDE EN TEMPOREL D UNE CHAMBRE REVERBERANTE

SIMULATION HYBRIDE EN TEMPOREL D UNE CHAMBRE REVERBERANTE SIMULATION HYBRIDE EN TEMPOREL D UNE CHAMBRE REVERBERANTE Sébastien LALLECHERE - Pierre BONNET - Fatou DIOUF - Françoise PALADIAN LASMEA / UMR6602, 24 avenue des landais, 63177 Aubière [email protected]

Plus en détail