L'objectif principal de la compression de données est de conserver une qualité sonore maximum tout en réduisant le plus possible la taille des données.
La compression de données fonctionne en supprimant l'information inutile ou redondante du flux de données, tout en préservant la qualité sonore.


Réduction de données audio et reconstruction
Réduction de données audio et reconstruction


Généralement il faut choisir un compromis entre qualité et réduction de la taille des données.



Codage avec ou sans pertes


Deux types de codages sont possibles :
  • le codage sans pertes : les données d'origine sont parfaitement reconstruites au décodage. Il n'y a aucune perte d'information.
    Il est possible d'utiliser ce type de codage sur des données audio. Les données PCM d'origine vont être reproduites à la perfection sans ajout de bruit.
    Mais la réduction des données est de l'ordre 2.5:1 (cela varie suivant l'information à compresser). Même si ce type de codage peut s'effectuer en temps réel, les taux de compression sont généralement insuffisants.
  • le codage avec perte permet des taux de compression nettement supérieur mais avec une baisse de qualité. En effet le bruit de quantification est augmenté. Il doit être masqué par le signal. Pour cela il faut utiliser un codage perceptuel : c'est à dire qu'il faut utiliser des modèles psycho acoustiques détaillés de façon à prévoit l'effet de masquage du signal en tout point du temps.
    Il est possible de parvenir à des débits inférieurs à 100 kbits/s par canal tout en conservant une bonne qualité sonore. En revanche pour un débit de 192 kbits/s la qualité atteinte rivalise avec le PCM d'origine.


  • Retour haut de la page


    Principes psycho acoustiques


    Le codage perceptuel est basé sur des notions de psycho acoustique (étude de la perception auditive).
    Un masquage intervient lorsqu'un son rend un autre (partiellement) inaudible. Une composante d'un son complexe peut masquer d'autres composantes plus discrètes.

    Le masquage intervient à la fois dans le domaine temporel et dans le domaine fréquentiel. L'effet de masque d'un son pur s'étend légèrement en dessous et au-dessus de sa propre fréquence en fonction de son niveau.


    Effet de masque sur un son pur à 40 khz et 80 dB
    Effet de masque sur un son pur à 40 khz et 80 dB


    Les sons situés au dessous de la courbe de masquage ne seront pas perçus normalement. Ils peuvent être "démasqué" par d'autres sons provenant de directions différentes (Gerson).
    L'effet de masque est maximum lorsque deux sons occupent la même bande critique (Fletcher puis Zwicker) au sein du même système. Les bandes critiques sont des bandes de fréquences distinctes (24 entre 20 Hz et 15 kHz) à l'intérieur desquelles l'effet de masque est constant et indépendant de la séparation de fréquences entre son masquant et son masqué. Lorsque deux sons sont séparés en fréquence par plus d'une bande critique, l'effet de masque est réduit.

    Le masquage non simultané définit un masquage intervenant après ou avant.


    Types de masques
    Types de masques


    En post masquage un son masque un autre son arrivé légèrement après lui. En pré masquage, le masquage précède le son (cas plus difficile à montrer).

    Retour haut de la page


    Principes généraux des codeurs perceptuels


    Pour compresser du PCM linéaire, il existe deux moyens :
  • Réduire la largeur de bande audio (fréquence d'échantillonnage plus basse)
  • Autoriser l'augmentation du bruit (moins de bits pas échantillons)
  • Cela induit une baisse de la qualité.
    Le codage perceptuel utilise le masquage qui permet d'accroître le niveau de bruit sans perte de qualité sonore. On considère qu'un bruit de quantification est acceptable à condition qu'il reste en dessous du seuil de masquage du signal audio concerné.

    Ce type de codeur travaille en divisant le signal audio en un certain nombre de bandes étroites, puis en requantifiant chaque bande à une résolution inférieure en conformité avec le modèle psycho acoustique.


    Encodeur psycho acoustique à basse résolution
    Encodeur psycho-acoustique à basse résolution


    La division en sous bandes peut être réalisée de deux façons :
  • en utilisant une banque de filtres numériques afin de générer les sous bandes
  • en utilisant une transformation mathématique telle que la transformée modifiée en cosinus discret de façon à générer un certain nombre de coefficients du domaine fréquentiel à partir d'un bloc d'échantillons audio. Le modèle psycho acoustique analyse des blocs d'échantillons (quelques millisecondes) afin de déterminer leur spectre (niveau par fréquence), puis calcule le masquage général à appliquer au bloc.
  • L'avantage est que la requantification a lieu dans des bandes étroites et donc ses effets son plus facilement masqués.


    Bruit de quantification
    Bruit de quantification


    Le bruit situé dans la même bande qu'une composante du signal peut être de très haut niveau tout en restant en dessous du seuil de masquage.
    Le codeur alloue un certain nombre de bits à chaque bande mais attribue plus de bits aux bandes dont l'effet de masque est réduit. Si le masque est trop important il peut même arriver que la bande ne soit pas codée.

    Le seuil de masquage est un seuil moyen par blocs. Dans le cas ou un bloc contient de l'audio à un niveau très élevé suivi par de l'audio de très bas niveau, il peut arriver que le bruit, masqué par la première partie du signal se situe au-dessus du seuil de la seconde partie du signal.


    Bruit de quantification


    Dans ce cas les effets de masquage "avant" et "après" aident à cacher les petites parties d'un bloc dont le bruit risque d'être audible. Il existe même des systèmes à allocation dynamique de longueur de bloc en fonction du contenu du signal.

    Les seuls systèmes de codage à perte à ne pas utiliser le codage perceptuel parviennent à des résultats de l'ordre 4:1 comme taux de réduction. Ce sont l'apt-X 100 et le codage par prédiction linéaire (LPC).

    Retour haut de la page


    Transformation de Fourier


    L'organe de l'oreille interne qui nous permet de détecter la tonalité des sons que nous entendons s'appelle la cochlée. La cochlée transforme les variations de pression captées par le tympan en une information fréquentielle que le cerveau interprète comme une tonalité et une texture. La transformée de Fourier est une technique mathématique qui réalise une tâche analogue.

    Transformée de Fourier

    La transformation de Fourier est due à Fourier (mathématicien français) et repose sur le principe suivant : quasiment toutes les fonctions sont décomposables en une somme de cosinus et de sinus à des fréquences différentes. Ce concept est omniprésent dans le traitement du signal.

    Ainsi, lorsque l'on représente une fonction dans un repère Amplitude/Temps, la transformation de Fourier permet de la voir dans un repère Amplitude/Fréquence. Cela permet d'obtenir les composantes en fréquence d'un signal.


    Transformée de Fourier
    x(t) : signal d'entrée (fonction du temps)
    f la fréquence
    i la base des nombres complexes


    De plus, on peut retrouver la fonction d'origine à partir de la transformée de Fourier en appliquant la transformée de Fourier inverse.

    Généralement, si le bruit d'un signal est important, alors les composantes en hautes fréquences vont être importantes. Du coup il va être possible d'appliquer un filtre passe-bas sur le signal de façon à restreindre au maximum l'effet du bruit.

    Mais la transformée de Fourier pose plusieurs problèmes :
  • on perd toute information liée au temps (on intègre la fonction sur tout le temps) ce qui peut poser problème si la fréquence varie beaucoup au cours du temps. La transformation par ondelettes nous permet de remédier à ce problème. (principe d'incertitude d'Heisenberg)
  • le temps de calcul d'une transformée de Fourier est très lent (elle était quasiment inexploitable). La FFT (Fast Fourier Transformation) a révolutionné l'utilisation des transformées de Fourier.


  • Transformée de Fourier rapide

    La transformée de Fourier discrète est un algorithme qui convertit une fonction du temps à valeurs complexes échantillonnées en une fonction à valeurs complexes de la fréquence, également échantillonnée.

    Voici l'équation de la transformée de Fourier discrète pour un signal de N échantillons :


    Transformée de Fourier discrète
    xkest le kième nombre complexe en entrée (domaine temporel)
    yp est le pième nombre complexe en sortie (domaine fréquentiel)
    n = 2N est le nombre total d'échantillons
    k et p sont dans l'intervalle 0 .. n-1.


    Mais cette formule demande n2 additions et multiplications complexes.
    Or, un calcul simple montre que les coefficients de fréquence paire sont ceux de la transformée de Fourier du signal n/2 périodique
    fp[n] = f[n] + f[n+N/2]

    et que les coefficients de fréquence impaire sont ceux de la transformée de Fourier du signal

    fi[n] = (f[n]-f[n+N/2]) e-2ipn/N

    En poussant le raisonnement par récurrence, on voit que le nombre d'opérations nécessaires au calcul de la transformée de Fourier par cette méthode est de l'ordre de KN log2(n), où K est une constante indépendante de N.

    C'est le principe de base de la transformée de Fourier rapide. Plusieurs variantes en existent, toutes cherchant à minimiser K.

    Retour haut de la page


    ISO - MPEG - 1


    L'ISO (International Standarts Specifications) et l'IEC (International Electrotechnical Commission) ont très vite reconnu le rôle important de la compression dans le futur du multimédia. En 1988 ils ont établi le MPEG (Moving Pictures Extern Group) dans le but d'aboutir à un standard international. La même année l'audio au travers du MPEG-audio fut formé.

    Vue générale

    Le MPEG_1 audio dispose de quatre modes :
  • simple canal
  • double canal (deux canaux indépendants de même flux)
  • stéréo
  • stéréo joint (codage stéréo qui prend en compte les redondances gauche / droite)

  • La réduction des données audio comprend trois couches (layers) de complexité, du layer 1 au layer 3. Le layers de niveau élevé donnent de meilleurs résultats à faibles débits mais entraînent des codages plus longs.


    Couches MPEG-Audio
    Couche Complexité Délai minimum
    introduit
    Débit Cible
    1 Basse 19 ms 32-448 kbits/s 192 kbits/s
    2 Modérée 35 ms 32-384 kbits/s 128 kbits/s
    3 Haute 59 ms 32-320 kbits/s 64 kbits/s


    Le standard ISO ne définit que les formats du flux de données encodées ainsi que le processus de décodage, laissant ainsi le champ libre à l'amélioration du modèle psycho acoustique utilisé. Mais le standard comporte des indications sur l'encodage et les modèles acoustiques pour aider au développement.

    Système d'encodage

    Les données sont initialement divisées pour tous les layers en 32 sous bandes par l'intermédiaire d'un filtre numérique. Une bande de filtrage additionnelle est employée en layer 3 de façon à augmenter la précision jusqu'à 275 bandes indépendantes, et un analyseur psycho acoustique différent est utilisé.


    MPEG-Audio Layer 1
    MPEG-Audio Layer 1


    En layer 1, des blocs de 384 échantillons PCM sont divisés en 32 sous-bandes, c'est à dire qu'on obtient 12 échantillons par sous bandes.
    Ces échantillons sont ensuite échelonnés par rapport à l'échantillon de plus haut niveau de chaque groupe de 12 échantillons. De cette façon, les bits les actifs sont placés sur les bits les plus significatifs (MSB), ce qui permet de requantifier linéairement selon le nombre de bots disponible en supprimant les LSB et en arrondissant adéquatement.
    Les bits sont attribués à chaque sous bande suivant les besoins, c'est à dire suivant le niveau de masquage souhaité. Chaque échantillon de sous bande se voit attribuer entre 0 et 15 bits.


    MPEG-Audio Layer 2
    MPEG-Audio Layer 2


    En layer 2 une économie supplémentaire est réalisée car les données d'échantillons, les facteurs d'échelle, ainsi que l'information d'allocation des bits sont groupés de façon à ce qu'ils puissent être utilisés à plus d'un seul groupe de 12 échantillons de sous bande.


    MPEG-Audio Layer 3
    MPEG-Audio Layer 3


    L'apport en complexité du layer 3 est énorme. Le layer 3 utilise :
  • un quantificateur à mise en forme de bruit (noise-shapping)
  • une allocation dynamique de la longueur des blocs
  • un encodage de Huffman (technique de "groupage" sans pertes)
  • technique de "réservoir de bits" pour les blocs critiques


  • Format de trame

    Format de trame du MPEG-audio


    La trame est constituée :
  • d'une entête de 32 bits composée entre autre de référence de synchronisation, de la spécification de l'algorithme utilisé, du layer, de la spécification de la correction d'erreur, le taux de bits total, la fréquence d'échantillonnage d'origine, le mode (mono/stéréo ....), le copyright, le droit de copie.
  • d'un mot de vérification CRC (Cyclic Redondance Check) contrôle de redondance cyclique sur 16 bits


  • Dans chaque trame les données audio comprennent des informations d'allocation des bits, des informations de facteur d'échelle et des données d'échantillon de sous bande.
    Les données d'allocation des bits indiquent combien de bits ont été attribués par échantillon pour chaque sous bande
    Le facteur d'échelle (6 bits) indique le facteur par lequel les échantillons requantifiés doivent être multipliés au décodage afin de reconstruire les bons niveaux.

    La trame du layer 2 représentent trois fois le nombre d'échantillons PCM contenus dans une trame du layer 1, mais pas forcément le nombre de facteurs d'échelle ou de valeurs de l'échantillon audio. Du coup la trame doit contenir une information qui indique le nombre de facteurs d'échelle inclus pour chaque bande.

    Décodage

    Le décodage s'effectue en sens inverse de celui d'encodage, mais sans passer par le modèle psycho acoustique.

    Codage en stéréo jointe

    Il faut nécessairement que les paires de signaux stéréo possèdent des redondances.
    Il existe deux méthodes :
  • celle qui utilise la somme ou la différence (stéréo Main Side) réservée au layer 3.
  • la stéréo d'intensité : plus la fréquence de la source sonore est élevée, plus l'oreille a du mal à la positionner. Ainsi si la fréquence est élevée, un seul des deux canaux d'information, le set de données d'allocation de bits est transmis, et les facteurs d'échelle sont transmis aux deux canaux


  • Retour haut de la page


    ISO - MPEG - 2



    L'objectif de la norme MPEG-2 est d'introduire des améliorations tout en restant compatible avec le standard ISO.

    Contrôle de la plage dynamique

    Dans les layers 1 et 2 du MPEG-2 ont été intégré un contrôle de la plage dynamique, c'est à dire que la compression s'adapte à la plage dynamique d'environnement de l'utilisateur final. Pour cela il faut multiplier les facteurs d'échelle par un facteur de gain approprié, associé à des constantes de temps adéquates de façon à éviter les effets secondaires.

    Son multicanal

    La difficulté est de préserver la compatibilité avec les décodeurs MPEG-1. L'option surround permet la transmission de 5 canaux discrets en réduction de données, tout en utilisant une matrice de compatibilité qui autorise la transmission des canaux de bases Gauche / Droite sur la partie visibles par les décodeurs MPEG-1.


    Matrice de compatibilité de l'extension multicanal MPEG-2
    Matrice de compatiblité de l'extension multicanal MPEG-2
    Le débit combiné pour les données surround des cinq canaux se situe entre 256 et 384 kbits/s en layer 2.
    L'extension multicanal comporte aussi des canaux multilingues ou infra-basses.

    Basses fréquences d'échantillonnage

    L'objectif principal du MPEG-2 a été d'étendre le standard ISO à des taux de transfert et d'échantillonnage inférieurs de façon à obtenir une qualité audio raisonnable pour les applications multimédias tout en exploitant des débits allant de 24 à 64 kbits/s.
    Trois nouvelles fréquences d'échantillonnage sont apparues : 24, 22.05 et 16 kHz (la moitié des précédentes).
    L'utilisation de fréquences plus basses permet des sous bandes plus étroites et donc un meilleur contrôle du bruit de quantification.

    Retour haut de la page


    PASC



    Le Precision Adaptative Sub-band Coding (PASC) a été conçue par Philips pour sa DCC (Digital Compact Cassette).

    L'algorithme PASC effectue deux tâches distinctes :
  • filtrer : éliminer du signal toutes les fréquences inférieures à 15 Hz et supérieures à 20 KHz (fréquence inaudibles).
  • échantillonner : on divise le spectre audible en 32 bandes de 720 Hz chacune. on compare la valeur moyenne de chaque bande à la valeur correspondant sur la courbe de réponse de l'oreille. Toute bande en dessous de la courbe de réponse est éliminée. Chaque bande retenue est divisée en 12 sous-bandes échantillonnées sur 16 bits. On compare encore une fois la valeur des sous bandes à la courbe de référence. On quantifie les différences à la courbe, et on code ces différences sur un nombre minimum de bits.
  • Ces opérations sont renouvelées tous les 8 millièmes de seconde.

    L'algorithme PASC atteint des taux de compression de 4:1. De plus son rôle filtreur élimine tout ou partie des bruits résiduels.

    Retour haut de la page


    ATRAC



    L'Adaptive Transform Acoustic Coding (ATRAC, codage par transformation acoustique adaptive) est le système mis en oeuvre par Sony pour son Minidisc ainsi que pour son cinéma multicanal SDDS (Sony Dynamic Digital Sound). L'ATRAC apporte une réduction des données de l'ordre de 5:1.

    La particularité du système ATRAC est de posséder un algorithme évolutif; depuis sa création en 1992, celui-ci s'est amélioré au fil de ses différentes versions et la qualité de reproduction n'a donc cessé d'augmenter depuis la version 1.0.


    Différentes version de l'ATRAC
    Version Convertisseur A/N Sortie
    ATRAC 1.0 16 bits 1992
    ATRAC 2.0 16 bits 1993
    ATRAC 3.0 16 bits 1994
    ATRAC 3.5 18 bits 1995
    ATRAC 4.0 20 bits 1996
    ATRAC 4.5 20 bits 1998
    ATRAC Type R-DSP 1.0 20 bits (DSP 24 bits) 1999


    L'algorithme ne travaille plus avec des convertisseurs A/N conventionnels mais avec une plus haute résolution. Le format 24 bits est aujourd'hui adopté par Sony, ce qui permet de réduire le niveau de bruit de manière considérable ainsi que de travailler avec une plus grande précision de retour en 16 bits.
    Le résultat est que, même dans les bas niveaux (-80 dB), le système est capable de reproduire le son enregistré sans pour autant générer le bruit de quantification du 16 bits classique. Ce qui veut dire qu'un niveau de -80 dB provenant d'un MiniDisc possède une qualité sonore bien supérieure au -80 dB d'un CD.

    L'encodeur comporte trois éléments :

  • l'analyseur spectral : Dans un premier temps, tous les 512 échantillons de 16 bits par canal (1024 octets), le signal PCM filtré en trois zones spectrales: grave (0 à 5,5 kHz), médium (5,5 kHz à 11 kHz) et aigu (11 à 22 kHz), par l'intermédiaire de filtres numériques. Chacune de ces trois grandes bandes de fréquences va être convertie en domaine fréquentiel par fenêtres de 11,6 ms grâce à des analyseurs de Fourier FFT (Fast Fourier Transform). L'Assignation de taille de bloc permet d'allouer le nombre de bits nécessaires pour chaque raie spectral. A partir de cette étape, le système travaille toujours dans le domaine fréquentiel avec en plus, des informations temporelles. A la sortie de l'analyseur, nous avons donc, pour 512 échantillons de 16 bits par canal, un spectre représentant une durée sonore de 11,6 ms. Cependant, l'algorithme ATRAC ne se contente pas de coder chaque raie de ce spectre en une seule durée, il divise la fenêtre de 11,6 ms en 8 sous-fenêtres pour les aigus et 4 pour les graves et médiums : c'est le principe des modes courts et modes longs.


  • le quantificateur spectral : ces modes sont assimilés et répartis en 52 bandes critiques appelées Block Floating Units (BFU's) au sein du quantificateur spectral. Le facteur d'échelle est utilisé pour déterminer les niveaux relatifs des différentes valeurs de crête d'une fenêtre de 11,6 ms. C'est au sein du Quantificateur Spectral que le modèle psycho acoustique de l'algorithme est présent, il détermine le seuil de niveau de bruit pour chaque BFU, ce qui permet de n'enregistrer que la partie du signal réellement entendue.


  • l'assignation de bits : Sur 1024 octets de données audio PCM, l'algorithme en inscrira 212 sur le disque quelle que soit la version ATRAC. Dans l'évolution des versions ATRAC, c'est évidemment l'interprétation des données spectrales qui subit des améliorations, c'est-à-dire la manière de quantifier au mieux les 212 octets pour un résultat identique aux 1024 d'entrée.

  • Le débit à l'entrée de l'encodeur est celui du CD, c'est-à-dire 1,4 Mbits / sec tandis qu'à sa sortie il est de 292 kbits / sec, soit une compression d'environ 5 : 1.

    Retour haut de la page


    Dolby AC-1, AC-2 et AC-3



    Le Comité ATSC (Advanced Television Systems Comitee) est une organisation internationale qui comprend 200 membres et qui détermine les standards pour la télévision haute qualité. L'ATSC a par exemple défini les standards de la télévision haute définition (HDTV), les standards de la télévision (SDTV), de transmission télévisuelle, du son surround multicanal, et de la diffusion satellite. L'ATSC est l'organisme qui a validé l'AC-3.

    L'AC-1 est le procédé adaptatif à modulation delta développé par Dolby au milieu des années 80 (débit supérieur à 200 kbits/q par canal).

    L'AC-3 est la seconde génération d'algorithmes de codage à faible débit de Dolby. Il en existe deux encodeurs :
  • l'un à faible délai
  • l'autre à délai modéré
  • Le débit de sortie est de 128 kbits/s par canal piur une fréquence d'échantillonnage de 48 kHz.

    L'AC-3 (1992) intervient dans le codage multicanal du système Dolby SR-D et du Home cinéma (DVD). Ce procédé exploite les redondances entre canaux, et réduit le taux de données des facteurs d'échelles.
    L'AC-3 est souvent appelé Dolby Digital 5.1, les six canaux discrets sont Gauche, Centre, Droite, AR-Gauche, AR-Droit et le caisson de basses (inférieur à 120Hz). Souvent confondu, l'AC-3 est un algorithme de compression, assimilé au 5.1, mais il est aussi employé pour encoder de l'audio en d'autres formats ( mono 1.0, stereo 2.0, etc...).

    Retour haut de la page


    L'apt-X 100



    L'apt-X 100 a été développé par Audio Processing Technology, une filiale de Solid State Logic. C'est un système qui ne repose pas à la base sur l'effet de masque. Mais il n'est performant que lorsque la théorie du masquage est appliquée à l'analyse du bruit.
    Il est fondé sur le codage de la voix mais vise aussi les application smusicales de haut niveau.

    Il divise le signal audio en 4 bandes seulement, et accompli sa réduction en fonction du débit en utilisant la prédiction linéaire et la modulation par impulsions codées adaptative (on enregistre les variations entre les valeurs et non pas les valeurs elles-mêmes).

    Pour une fréquence d'échantillonnage de 32 kHz, le débit résultant est de 128 kbits/s par canal, et de 192 kbits/s à 48 kHz.

    Retour haut de la page


    IMA ADPCM



    L'International Multimedia Association (IMA) s'est chargé d'établir un degré de standardisation des divers atériaux multimédias. Elle a définit l'algorithme AMA ADPCM (fondé sur l'algorithme Intel/DVI) qui autorise un décodage en temps réel par l'unité centrale de l'ordinateur sans ressources additionnelles autres qu'un logiciel de décompression (contrairement aux standarts MPEG).

    Il permet d'encoder de l'audio 16 bits de haute qualité vers du 4 bits par échantillon en utilisant une forme de PCM différentiel : la valeur de l'échantillon suivant est calculé à partir de l'échantillon actuel.
    Une quantification à 4 bits à intervalle variable, dépendant du taux de variation de la forme d'onde est appliqué. Au décodage, le mécanisme est inversé.

    Le gain de ce système de compression est de 4:1 pour un temps de décompression rapide.

    Retour haut de la page




    Dernière mise à jour le 5 décembre 2001.
    Réalisée par Matthieu Guenebaud.