MPEG 2 part 7 - AAC-LC
I – Généralité sur le AAC
a) Historique
b) Intéret du AAC : caracteristique, Performances, [I b) == II c)?]
c) Applications
II - Codeur perceptuelle
a) Fonctionnement
b) Evolution : Les layers I, II & III
c) Apport de l'AAC
III – AAC
a) vue global – profile AAC
b) Transformé en cosinus modifié
c) Modèle psychoacoustique
d) Quantification et codage sans bruit
(e) Modules optionnel)
f - norme
Introduction :
AAC pour Advanced Audio Coding est un algorithme de compression audio. La compression a pour objectif de réduire le volume des données (et donc le débit) tout en conservant au maximum les qualités du signal initial.
it can be referred to as MPEG-2 Part 7 and MPEG-4 Part 3
I
a) Historique
AAC pour Advanced Audio Coding est un algorithme de compression audio avec perte de données . Le AAC, est une extension du MPEG-2 (ISO/IEC 13818-7) et a été amélioré avec l'avènement du MPEG-4 Version 1, 2 et 3 (ISO/IEC 14496-3) .Le AAC a été conçu en 1997 par le Fraunhofer-Institut für Integrierte Schaltungen en collaboration avec AT&T, Sony et Dolby pour remplacer le MP3. Il a été déclaré standard international par le Moving Pictures Expert Group (MPEG) en avril 1997. L’AAC (Advanced Audio Coding) est un format développé par un consortium au sein duquel se retrouvent l’institut Fraunhofer (le père du MP3), Sony ou encore Dolby
L’extension de fichier généralement adoptée est .mp4 et .aac. Apple a introduit les extensions .m4a, .m4p, et .m4b.
Son profil le plus employé est nommé AAC-LC (1999)(Low Complexity(faible complexité)) et a été augmenté par l'adjontion d'outils supplémentaire, lors d'amendements à la norme, pour créer les profiles HE-AAC (en ajoutant le SBR, 2003) et HE-AACv2 (en ajoutant le PS en 2004). (Schéma)
Les trois profils déployés massivement sont:
Le profil AAC-LC;
Le profil HE AAC (appelé AAC+ ou aacPlus au 3GPP), sur la TNT notamment, HE AAC fait partie des décodeurs audio requis sur un décodeur TNT. Il est aussi utilisé par la radio numérique (normes DAB+ et DMB);
Le profil HE AACv2 (appelé eAAC+ ou enhanced aacPlus au 3GPP) pour l'audio sur mobile (supporté par les smartphones, Android, iOS etc.).
I -
b) Performances
Comparaison des performances:
En qualité d'audition, un fichier AAC en 128 kb/s est équivalent à un fichier MP3 en 256 kb/s.
I
c) Application:
il a été choisi par différentes firmes comme Apple ou RealNetworks.
En 2007, Apple a lancé une version AAC en 256 kb/s sous le nom de iTunes Plus1.
L’AAC est le format audio utilisé pour le réseau radio numérique japonais ISDB (Integrated Services Digital Broadcasting). . Made most popular by Apple using it for compressing audio CDs for their iPod and iTunes products.
À cela s’ajoute, comme pour le WMA, des propriétés de gestion des droits d’auteur (DRM) et la possibilité de gérer des sons sur 48 canaux différents, ce qui le rend apte à encoder des DVD audio ou vidéo en conservant la spatialisation sonore d’origine (les six canaux du Dolby Digital par exemple), bien que cette possibilité ne soit pour l’heure pas vraiment exploitée.
On retrouve l’AAC sur le site de musique en ligne iTunes d’Apple et dans son baladeur iPod. Mais il est également intégré à des logiciels tel WinAmp. Il est lisible par les iPod, iPhone, iPad, les Nokia sortis après 2008, plusieurs smartphones sous Android, quelques baladeurs, tous les lecteurs Blu-Ray et de rares chaines hi-fi.
Sources : http://www.iis.fraunhofer.de/conte [...] nalweb.pdf
http://www.iis.fraunhofer.de/conte [...] inal-4.pdf
(Images intéressante)
http://www.iis.fraunhofer.de/conte [...] R1.0-1.pdf
(images format)
II – Codage perceptuelle
a) Fontionnenement
Definition du codage perceptuelle
(source: http://www.pfast.fr/?MPEG-audio&artpage=5-8)
Les particularités perceptuelles de l’oreille évoquées dans les pages précédentes ont bien sûr été prises en compte dans cette première norme. Pour réaliser l’analyse en temps réel nécessaire à ce type de codage, l’espace spectral a été divisé en 32 bandes de fréquences appelées sous-bandes à l’aide de filtres numériques spécifiques. En présence d’un signal audio numérique, la courbe de masquage est déterminée en temps réel à l’intérieur de chaque sous bande à partir du modèle psycho-acoustique. La quantification est variable en fonction de la pertinence des données. Ainsi les signaux situés dans des zones où l’oreille est très sensible sont affectés d’un nombre de bits plus importants que ceux qui sont moins perceptibles. En présence de sons masquants, le niveau plancher d’audition est relevé dans chaque sous-bande. Les informations utiles peuvent donc être quantifiées avec un nombre plus réduit de bits mais ceci a pour incidence négative de relever également le bruit de quantification (1 bit de quantification en moins, c’est 6 dB de détérioration du rapport signal sur bruit). Même élevé, ce bruit ne sera cependant pas audible s’il reste sous la courbe de masquage. Dans chaque sous-bande, le système va donc gérer un équilibre en temps réel entre le niveau de quantification que l’on souhaite le plus faible possible et le bruit qui ne doit pas être perceptible.
Le schéma ci-après reproduit les différents étages d’un encodeur perceptuel suivant les principes décrits précédemment. Une dernière étape, le codage entropique, peut être ajoutée. Un codage entropique est un « traitement » purement informatique qui permet la réduction des redondances dans les suites de données numériques. Il n’introduit pas de perte. Le codage Huffman est le plus utilisé des codages entropiques et consiste à remplacer les « suites numériques » qui apparaissent souvent par des codes spécifiques courts (et donc avec un nombre de bits peu élevé) et celles qui sont plus rarement présentes par des codes plus longs. Ce système est identique dans son principe au code morse qui affecte un simple point pour la lettre E très courante et deux traits deux points pour la lettre Z d’un emploi moins habituel. En terme de compression, l’efficacité de cette seule opération est relativement modeste, mais elle s’ajoute aux autres étapes du dispositif. (source: http://www.pfast.fr/?MPEG-audio&artpage=5-8)
b) Evolutions les layers
Dans MPEG-1 audio, trois « niveaux » différents (les layers) ont été définis. Ils ont en commun un certain nombre de caractéristiques (les fréquences d’échantillonnage utilisées : 32 ; 44,1 et 48 Khz, la structure de base, le mode de traitement des données) mais ils se distinguent essentiellement par la complexité des encodeurs, donc par la plage du débit numérique correspondant à un niveau de qualité donné.
Les 3 types de codecs sont compatibles sur le plan hiérarchique : un décodeur de niveau 3 décodera les layers 1, 2 ou 3 mais un décodeur prévu pour le layer 2 n’acceptera de décoder que les layers 1 et 2. La complexité des codecs et les performances croissent avec chacun des layers : pour un débit donné, la qualité de la restitution sera meilleure avec un layer 3 qu’avec un layer 1 mais le codeur du layer 3 sera plus complexe.
Le layer 1 : C’est le système le plus simple. Les débits utilisables sont compris entre 32 kb/s et 448 Kb/s. Bien que dépendant de l’encodage, la qualité CD est obtenue avec un débit de 384 kb/s environ pour un programme stéréo.
Le layer 2 : Parfois mentionné dans la littérature un peu ancienne sous le nom de Musicam (Masking Pattern adapted Universal Subband Coding And Multiplexing) par référence à l’algorithme développé par le CCETT, Philips et IRT... qui a servi de base à la création de ce point de la norme. Les débits sont compris entre 32 et 384 kb/s ce qui correspond à des taux de compression plus importants que pour le layer 1 et donc à une complexité accrue au niveau des équipements (2 à 4 fois plus importante pour l’encodage, 25% pour le décodeur). La qualité CD est obtenue avec un débit de 256 kb/s pour un programme stéréo. Ce layer est très utilisé pour la télévision numérique (DVB). Il a également été intégré dans les normes du DVD, mais il n’a guère été utilisé dans les faits.
Le layer 3 Il permet des taux de compression encore plus importants. Les débits sont compris entre 32 et 320 kb/s. Il est adapté aux plus faibles débits grâce à la plus grande complexité de son codeur (avec notamment, outre la division en 32 sous-bandes principales, une subdivision supplémentaire pour chacune d’entre-elles en 18 sous-bandes soit au total 576) qui permet des plus grandes performances [2]. La qualité CD est obtenue pour 192 kb/s environ. C’est très certainement le format le plus connu dans le monde entier sous son « nom de scène » MP3, qui se rapporte à l’expression « MPEG layer 3 » et non pas à l’acronyme MPEG‑3 comme on peut parfois le croire par erreur [3]. Très utilisé sur Internet, il offre à 128 kb/s une réduction du volume des fichiers de 10 à 12 fois par rapport au classique CD audio.
Avec MPEG-1, la restitution audio est limitée à deux canaux. Quatre modes ont été défini : mono, double mono (deux canaux indépendants), stéréo et joint stéréo (qui exploite les redondances entre les deux canaux, permettant de ce fait de réduire les débits).
MPEG2
MPEG-2 a été finalisé en 1994. Elle apporte à MPEG-1 des fonctionnalités supplémentaires :
une extension vers les bas débits avec des fréquences d’échantillonnage de 16 - 22,05 et 24 Khz et des débits plus faibles qui peuvent descendre jusqu’à 8 kb/s.
la prise en compte de canaux supplémentaires pour les applications multicanaux. Avec MPEG‑2, on passe de la restitution stéréophonique qui était de mise avec le CD audio à des dispositifs de reproduction « surround » comprenant jusqu’à 5 ou 7 canaux audios en pleine bande. On y associe généralement un canal supplémentaire destiné à la seule reproduction des sons les plus graves (LFE pour Low Frequency Effect). Ces dispositifs sont souvent mentionnés dans la littérature sous l’appellation 5.1 ou 7.1, le chiffre 1 faisant référence à ce canal LFE.
MPEG-2 audio est une extension de MPEG-1 audio avec qui il reste compatible, d’où la dénomination de MPEG-2 BC (pour Backward Compatible) qui est parfois employée. Un décodeur MPEG-1 décodera la partie stéréo de MPEG-2 et ignorera les données relatives à l’extension multicanal. MPEG-2 audio n’apporte pas d’amélioration par rapport à MPEG-1 au niveau de la qualité de la restitution. L’évolution qualitative sera obtenue avec les versions suivantes de MPEG. A noter également une déclinaison qui n’a pas été normalisée et qui a été développée par l’organisme de recherche Fraunhofer IIS. Baptisée officieusement MPEG-2.5, elle permettait des fréquences d’échantillonnage encore plus basses (8 à 12 Khz) pour des débits compris entre 16 et 32 Kb/s.
Layer 3 Technical Description
Layer 3 (popularly known as MP3) implements a unique combination of methods to attain high compression ratios while preserving audio quality. Telos Systems' Layer 3 implementation was developed in close collaboration with its developer, Fraunhofer-Gesellschaft.
Psychoacoustic masking: The audio in Layer 3 is divided into 576 frequency bands. First, a polyphase filter bank performs a division into the 32 "main" bands, which correspond in frequency to those used by Layer 2. Filters are then used to further subdivide each main band 18 times. At the 32kHz sampling rate, the resulting bandwidth is 27.78Hz (compared to 500Hz for Layer 2) allowing very accurate calculation of the masking threshold values.
Redundancy reduction: Redundancy reduction is accomplished by a Huffman (entropy) coding process to take advantage of the statistical properties of the signal output from the psychoacoustic stage. This lossless redundancy reduction process is the ideal supplement to psychoacoustic masking. In general, maskers with high tonality have more redundancy but allow less masking, while noise-like signals have low redundancy and high masking effect.
Bit reservoir buffering: Often, there are some critical parts in a piece of music that cannot be encoded at a given data rate without "softening" of the transients. Layer 3 uses a short time "bit reservoir" buffer to address that need. If a critical part occurs, the encoder can use the saved bits to code this part with a higher data rate.
(sources : http://telos-systems.com/techtalk/mpeg/)
c) Apport de l'AAC
Compared to the previous layers, AAC takes advantage of such new tools as temporal noise shaping, backward adaptive linear prediction and enhanced joint stereo coding techniques. AAC supports a wide range of sampling rates (8–96 kHz), bit rates (16–576 kbps) and from one to 48 audio channels.
The AAC system uses a modular approach. An implementer may pick and choose among the component tools to produce a system with appropriate performance-to-complexity ratios.
AAC is the first codec system to fulfill the ITU-R/EBU requirements for indistinguishable quality at 128 kbps/stereo. It has approximately 100% more coding power than Layer II and 30% more power than the former MPEG performance leader, Layer III.
AAC takes advantage of such tools as temporal noise shaping, backward adaptive linear prediction and enhanced joint stereo coding techniques in addition to the techniques used in ISO/MPEG Layer III
(sources: http://telos-systems.com/techtalk/aac/default.htm)
MPEG AAC
Sous cet acronyme se cache une nouvelle série d’innovations qui est d’abord apparue dans la continuation des normes MPEG-2 audio avant d’être également intégrée et standardisée dans MPEG-4. La première évolution AAC de MPEG-2 a été standardisée en 1997. Si elle présente l’inconvénient de ne pas être rétro-compatible (NBC ou Non Backward Compatible) avec les normes précédentes (un décodeur MPEG-1 ne pourra pas décoder un flux MPEG-2 AAC), elle apporte en contre-partie des nouvelles fonctionnalités dans deux directions :
la restitution multicanaux :
Cela était déjà possible avec MPEG-2 BC, mais cette nouvelle version en augmente de façon considérable les possibilités. Jusqu’à 48 canaux en pleine résolution sont possibles, 16 canaux en basse fréquence, 16 flux de données... avec des fréquences d’échantillonnage qui peuvent être comprises entre 8 et 96 Khz. Les débits pourront être aussi bas que 8 Kb/s pour l’enregistrement monophonique de la parole et atteindre 160 kb/s par canal pour des codages de haute qualité.
des performances accrues :
Par rapport aux versions précédentes, MPEG-2 AAC offre des performances accrues grâce à l’amélioration de l’efficacité de son codage (il s ’appuie notamment sur un « jeu » de 1024 filtres au lieu de 576 pour le MPEG1/2 layer 3) et par l’introduction de nouveaux outils (meilleur codage entropique, amélioration du codage stéréo, « backward prediction », implémentation du TNS ou Temporal Noise Shaping pour le traitement du bruit et l’amélioration de la restitution de la parole aux bas débits...). Le gain qualitatif est significatif et approche 30% par rapport au MP3. En stéréo, MPEG‑2 AAC offre à 96 Kb/s une qualité équivalente à celle d’un signal MP3 à 128 Kb/s. Avec MPEG-2 layer 2, la comparaison s’établit pour un débit deux fois plus élevé (192 kb/s). Pour une reproduction surround en 5.1, la transparence avec le CD audio est obtenue pour 384 kb/s.
La version standard de AAC comporte 3 « profiles » (les profils) qui implémentent plus ou moins les nouveaux outils proposés et qui correspondent donc à des niveaux de complexité différents : Main Profile (le plus complet), Low Complexity Profile (LC), le plus répandu et Scalable Sampling Rate Profile (SSR) qui autorise un codage hiérarchique (voir encadré).
III – AAC
a) Vue global
1)Fonctionnement général
2)Différent profile
3)Avantage/incovénient mp3?
1)
- PCM et codage prédicitif :
Le PCM est une quantification scalaire uniforme. Quand on quantifie le signal, une erreur de quantification apparaît dans le signal quantifié. Ce bruit peut être vue comme un bruit blanc uniforme. Un tel codage n'est optimal que si les echantillons sont indépendant ce qui n'est pas le cas en général. Pour amélioré le codage, on va décoréllé les echantillons. Dans ce cas le codeur est optimal, on peut baissé sa résolution sans dégradation audible. L'erreur que l'on va quantifié est l'erreur de prédiction . (ADPCM) C'est de la quantification scalaire prédictive. Plus la prédiction est effication, plus le gain de prédiction est élevé et plus l'erreur est blanche. Mais le gain de prédiction tend vers une asymptote. Pour un gain de 50 Db (ce qui est très grand), on economise seulement 8 bits par echantillons.
Les codeurs perceptuelles permettents acutellement les meilleurs performance.
Le signal à bruit n'est pas une bonne mesure de la qualité du signal codé. Un rapport de 60 db obtenu par quantification scalaire uniforme est généralement jugé inaceptable par l'oreille, alors que dans certain cas un rapport seulement 20 dB peut sembler imperceptible. La psychoacoustique nous apprend que c'est la densité spectral de puissance du bruit qui est pertinante à l'écoute. Dans un codeur à début de sortie fixe (cas MPEG audio)) le nombre moyen de bits de codage est fixe ce qui impose une certaine valeur du rapport signal à buit de quantification, typiquement 20 dB. Mais le codeur peut metttre en forme le bruit de sorte qu'il soit inaudible. Pour que le bruit de quantification soit masqué par le signal, il suffit que sa DSP reste infénieur à une courbe appelé seuil de masquage. Pour calculer ce seuil, on utilise un modèle psychoacoustique.
Le signal d'entrée n'est pas stationnaire, au mieux localement stationnaire ce qui impose des contrainte sur le codeur.
Comme les phénomènes de masquage sont essentiellement de nature spectral, il faut exprimer le signal dans une domaine fréquentielle à l'aide d'un banc de filtre ou d'une transformé. Auquelle il existe une transformation reciproque qui remplisse la condition de reconstruction parfaite. Le compromis entre résolution temporelle et résolution fréquentielle dépend de la longueur de T. Une transformé longue augmente la précision de la mise en forme spectrale du bruit de quantification, ms sur une durée ou le signal risque de ne pas être stationnaore
En MPEG1, T est un banc de fitre PQMF, alors que dans AAC il s'agit d'un transformé MDCT.
Parallelement à T, le modèle psychoacoustique analyse le signal et calcul le seuil de masquage correspondant à chaque fenetre temporelle courant.
Enfin, le modèle de quantification alloue aux coefficients transformé des bits de codages de telle sorte que la distortion généré soit inférieur au seuil de masquage. (contrainte de masquage).
Ensuite les coeeficients transformés quantifié sont transmis au décodeur sous la forme d'un train binaire selon une syntaxe qui correspond à la norme.
Il s'agit d'un codeur par transformé spectrale qui utilise le principe de quantification par facteur d'echelle
Fonctionnement général :
Processus d'encodage
le diagramme d'encodage du MP3 (MPEG-l Audio layer-3) suit le schéma habituel des encodeurs basés sur la psychoacoustique : les données sont soumises à un filtrage intense en fonction des seuils fixés dans un modèle perceptuel. le schéma de décodage est en revanche plus simple, car la comparaison avec ce modèle et le masquage ne sont pas nécessaires.
http://www.sartoretti.org/display.php?id1=790
(Site très intéressant sur le Mp3, figure utiles)
Image fonctionnemet général :
http://electronique.marcel.free.fr [...] at_MP3.pdf
2) Differents profils
MPEG-2 AAC provides three profiles that can be selected by end-users according
to their desired complexity and quality requirements. These three profiles are main
profile, low-complexity (LC) profile, and scalable sampling rate (SSR) profile, and
their relationships are shown in Figure 7.1.
(1) Main profile. AAC main profile, abbreviated as AAC main, provides the
best audio quality at any given bit rate among all three profiles. All coding tools
except the gain control are enabled in AAC main. Thus both the memory requirement
and the computational complexity of this configuration are higher than the
other two profiles. However, the main profile AAC decoder is more powerful and
is capable to decode a bitstream generated by a low-complexity AAC encoder.
(2) Low-complexity profile. AAC low-complexity profile, abbreviated as AAC
LC, does not use the gain control and prediction tools. Moreover, the temporal
noise shaping (TNS) filter has a lower order than that of the AAC main codec.
With this configuration, the AAC codec consumes considerably lower memory
and processing power requirements. However, degradation of the reconstructed
sound quality is not obvious. In fact, among all three profiles, AAC LC is the most
popular profile adopted in industry.
(3) Scalable sampling rate profile. AAC scalable sampling rate profile, abbreviated
as AAC SSR, is capable to provide a frequency scalable signal. The gain control
is activated when the AAC codec is operating in this profile. Except the gain control
module, other audio tools are operating at the same configuration as the AAC
LC profile. Therefore, the memory requirement and the computational complexity
of the AAC SSR codec are also significantly lower than that of the AAC main
codec.
MDCT – Transformé en cosinus discrete modifié
il est conçu pour être exécuté sur les blocs consécutifs d'un plus grand ensemble de données, là où suivant des blocs sont recouverts de sorte que la dernière moitié d'un bloc coïncide avec la première moitié du prochain bloc. Ce recouvrement rend le MDCT aide à éviter provenant des frontières de bloc.
L'acronyme MDCT signifie : "Modified Discrete Cosinus Transform". Il s'agit en fait de filtres passebande numériques réalisés à base d'algorithmes permettant de réduire la quantité de calculs.
Ils couvrent ainsi le spectre audio de façon très fine.
Cette résolution permet ainsi de grouper ces filtres pour se conformer au mieux avec les bandes
critiques de l'ouïe humaine (voir §2.2). (mp3)
La suppression complète des composantes totalement masquées. Il s'agit de celles situées sous
le seuil de masquage calculé par la fonction "FFT et Modèle psycho-acoustique".
Cela est rendu possible par le nombre de filtres MDCT qui permet une décomposition en
fréquence plus fine que les bandes critiques. Les sorties des filtres MDCT concernés sont
simplement ignorées.
(source : http://electronique.marcel.free.fr [...] t_MP3.pdf)
(Source http://ljk.imag.fr/membres/Valerie [...] ode9.html)
The modified discrete cosine transform (MDCT) is a Fourier-related transform based on the type-IV discrete cosine transform (DCT-IV), with the additional property of being lapped: it is designed to be performed on consecutive blocks of a larger dataset, where subsequent blocks are overlapped so that the last half of one block coincides with the first half of the next block. This overlapping, in addition to the energy-compaction qualities of the DCT, makes the MDCT especially attractive for signal compression applications, since it helps to avoid artifacts stemming from the block boundaries.
Modified discrete cosine transform
AAC utilise une transformation en banc de filtre modulés à reconstruction parfaite. Dans AAC, on la nomme Modified Discrete Cosine Transform.
Qu'est-ce que c'est ?
Il s'agit d'un transformation spectral. Cette transformation produit des coefficient réels.LA particuliarité de AAC est d'utilisé deux taille de transformé (2048 et 256) pour ajuster le compromis entre résolutions temporelle et résolution fréquentielle aux caractéristique de stationnarité à court terme du signal. La particularité des bande de filtre modulés est d'utilisé des matrices de filtre d'analyse de synhtèses identique. Chaque réponse impulsionnel s'ecrit comme le produit terme à terme d'une "fenêtre de MDCT" par les coefficient d'une matrice de modulation. Le banc de filtre est alors commandé par un module d'analyse qui est incorporé au modèle psyco acoustique.
Coefficient de la matrice de modulation :
Les conditions de reconstruction parfaite donne :
Two window functions, the sine window and the Kaiser-Bessel-derived (KBD) are provided in AAC coder.
Fonctionnement
MDCT
L = 2M
Changement de taille des fenêtres
Le choix de la longueur de la transformé (M) influe directement sur la qualité du signal reconstruit. Une transformée courte à de bonne performance en terme de résolution temporelle, au détriment de la résolutions fréquentielle. Dans ce cas le spectre comporte un petit nombre de composante "pertubatrice". Inversement, une transformé longue n'aura pas ce défaut mais aura une moin bonne résolution temporelle. En pratique cela se caractérise par un phénomène de pré-écho. Le bruit qu'engendre la quantification d'un spectre est répartie sur l'ensemble de la longueur de la fenêtre à la reconstruction. Une augmentation brutale du niveau du signal pourra être perçu avec de l'avance.
Pour le codeur AAC, on a le choix entre 2 valeurs de M, avec possibilité de passer dynamiquement de l'une à l'autre pour s'adapter aux caractéristique du signal.
2M = 2048 fenêtre longue
2M= 256 fenêtre courte
Passage d'une fenêtre longue vers une fenêntre courte :
On décompose X(m) en quatre sections :
Modèle psycho-acoustique:
Objectif: Le modèle psychoacoustique a pour but de déterminer le seuil de masquage dans les sous-bandes de codage.
Il determine la taille de transformé (parametre N). Modèle monophonique.
Phénomène de masquage fréquentielle:
Tous les codeurs perceptuelles s'appuie le masquage fréquentielle. Ce masquage reflète le fonctionnement mécanique et nerveux de l'oreille. On cherche à le modéliser de la façon la plus fine et la plus réaliste possible pour déterminer la distorsion maximal que l'on va pouvoir introduire sans qu'elle soit perçue.
IV 1.2 Seuil d'audition absolu
La dynamique maximal de la perception auditive est de 120 dB, la dynamique utile est plus proche des 90 dB.
Bande critique:
D'après les expériences de Zwicker, l'oreille se comporte comme un banc de filtre : elle intègre la puissance du signal sonore sur des bandes fréquentielles. Deux raies à une distance fréquentielle l'une de l'autre inférieur a la largeur de la banque critique seront perçu comme une seul. On considère 24 bandes critiques.
On intédre le spectre du signal sur les bandes critiques pour modéliser la perception auditive.
Courbe de masquage:
Il existe une limite de dessous de laquelle la perception de la somme du son masquant et du son masqué est identique la la perception du son masquant seul. La variation de cette limite en fonction de f est appelé courbe de masquage
Seuille de masquage :
En combinant toutes les courbes de masquage des raies spectrales du signal (intégré par bande critique ou par sous bande frequentielle), on obtient le seuil de masquage.
Le seuille de masquage est la plus hautte DSP d'un bruit large bande qu'on peux ajouter au signal sans qu'il soit perçu.
Pour chaque raie spectral, on additionne les contributions des courbes de masquage de toutes les autres raies. Le choix d'une loi d'addition n'est pas simple [19]. Souvent, comme dans le AAC, on utilise une d'addition classique qu'on implemante sous forme d'une convolution : le spectre du signal est convolué par une fonction d'étalement representant la partir triangulaire des courbes de masquage. Ensuite, il reste à appliqué l'indice de masquage selon le caractère tonal ou non de chaque raie du spectre . Dans AAC, on considère une variation continue de l'indice de masquage entre le cas tonal et non tonal.Cela suppose un estimateur de la tonalité du signal.
Il n'existe pas un seul modèle psychoacoustique unique et irréfutable , mais un grand nombre de modèle différent.
/* IV 3 Calcul du seuil de masquage dans le codeur AAC – en annexe ?
Le modèle psychoacoustique doit effectuer en premier lieux une analyse spectral du signal. Dans le codeur AAC, on travaille sur les même blocs que la MDCT, mais cette fois on fait une DFT.
L'estimation spectral consiste en une fenetrage (fenêtre de Hann) suivi d'une DFT :
*/
IV Choix de la longueur de la MDCT
Le critère pour le choix de la taille de la transformé esr l'entropie perceptuelle. C'est le nombre minimal théorique de bit de codage par echantillon nécessaire au respect de la contrainte psychoacoustique. D'après la théorique du codage de source :
S(f) est la DSP du signal
Sm(f) le seuil de masquage
Le spetre et le seuil de masquage sont considéré constant sur les partitions.
En comparant PE calculé pour N=2048 à un seuil empirique.
N=2048 si PE2048 < seuil
N=256 si PE2048 > seuil
IV.5 influence de la longueur de la fenetre variable.
Ces valeurs de N ont une influence sur le modèle psychoacoustique, car ces valeurs sont valables quelque soit la fréquence d'échantillonage.
Le choix du parametre N pour la fenetre courant n'intervient qu'après le calcul des rapport signal à masque, c'est à dire à la fin du modèle psychoacoustique. Or le calcul des seuils de masquage a besoin de connaitre la valeur de N. Pour résoudre cette contradiction on doit calculer en parallele les seuils de masquage pour les deux valeurs de N, et donc fournir aux modèle psychoacoustique simultanement une fentre de 2048 ech et huit fenetre de 256 ech, soit 2 version d'un même bloc. En revanche, la sortie ne propose qu'un seul jeu de rapports signal à masque car la décision à déjà eu lieu. La MDCT peut ensuite être effectué.
III
d) Quantification et codage sans bruit
Mis à part le bruit présent dans le signal audio d'entrée, le "plancher" de bruit est déterminé par la
taille des représentations des échantillons et des nombres dans le processus : c'est le bruit de
quantification.
Par exemple, dans un codage en puissances de 2, le rapport "signal/bruit de quantification" augmente
de 6dB environ par bit ajouté dans la représentation des nombres.
Ainsi, si on peut augmenter le bruit de quantification tout en restant inaudible, on peut se
permettre de réduire le nombre de bits représentatifs des nombres des signaux numériques.
Ce traitement est effectué pour chaque bande critique en fonction du seuil de masquage fourni par la
fonction "FFT et modèle psycho-acoustique" : le bruit de quantification doit toujours rester inférieur
au seuil de masquage, tout en s'en rapprochant le plus possible : NMR < 0dB (voir description du
modèle psychoacoustique).
Rappel : rapport S/B de quantification SNRdB = 20 * log(n^2*sqrt(15)) , n étant le nombre de bits.
Ex : n = 8 bits SNR = 50dB
n = 16 bits SNR = 98dB
(source : http://electronique.marcel.free.fr [...] t_MP3.pdf)
Description :
La quantification représente l'étage de compression proprement dite. Son but est d'exprimer les composantes de la MDCT sous forme sous forme d'entiers binaires. Plus le nombre de bits utilisés pour représenté une composante sera faible, plus le signal sera comprimé.
Le codeur AAC partage avec le MPEG-1 couche III (MP3) le principe de quantifiation par facteur d'échelle : la compression fait appel à un seul quantificateur scalaire uniforme (cela équivaut à un quantificateur scalaire uniforme unitaire précédé par un gain, ce qui peut être implémenté par l'opération d'arrondi à l'entier le plus proche), l'arrondi à l'entier le plus proche combiné avec une non linéarit, mais comprime ou dilate auparavant le signal au moyen d'un facteur multiplicatif appelé facteur d'échelle. La norme MPEG AAC définit un facteur d'échelle par sous-bande fréquentielle.
Dans chaque sous-bande, le choix de ce paramètre fixe l'erreur de quantification ainsi que le nombre de bits consommé.
Pour choisir les meilleurs valeurs des facteurs d'échelle sous contrainte de débit fixe, et si possible en respectant la contrainte de masquage psychoacoustique, on fait appel à un algorithme itératif où une boucle de contrôle de la distorsion est imbriqué ans une boucle de contrôle du débit. La contrainte principal concerne le nombre de bits consommé qui doit respecter le débit fixé, ensuite vient la contrainte de qualité. Généralement, la contrainte de débit ne permet pas de respecter ce sueil. Il faut donc mettre en oeuvre un algorithme de gestion de sous-optimalité. La norme MPEG-2 propose un tel algorithme qui comporte deux boucle imbriquées :
Une boucle de controle de distorsion visant le respect du seuil de maquage (la contrainte psycoacoustique),
et une boucle de controle du débit consistant à trouver le nombre de bits de codage utilisé par unité de temps tout en étant inférieur au débit de sortie net du codeur. En effet, le flux binaire doit conserver un débit fixe qui est définit comme un paramètre de la transmission. Il s'agit d'un débit brut. Ensuite, le flux binaire inclut des informations de contrôle et des données représante les composantes quantifiées compromis.
Concrètement:
Le signal d'entrée est compris entre -32768 et +32767, donc grand devant 1. L'opération de quantification est :
A(s) = 2^((2/16) * gamma)
Les coefficient Xq(k) et y(s) sont exprimé en binaire au moyen de table de Huffman. Dans la sous bande s, pour un signal X(k) donné, le choix de A(s) fixe fonc la puissance de l'erreur et le nombre de bits consommé.
(Source : ErreurQuantifAAC.pdf)
Codage sans bruit
La réprésentation binaire des composantes quantifiés fait appel à un jeu de codes à longueur variables faisant partie de la famille des codes de Huffman. Il s'agit d'un codage sans bruit, en bloc, utilisant des tables prédéfinies.
L'algorithme de quantification mesure le nombre de bits de codage utilisé, pour satisfaire la contrainte de débit. C'est pourquoi, le codage sans bruit est à l'intérieur des boucles.
D'autre part, pour estimer la DSP de l'erreur de quantification à chaque étapes, et vérifier la contrainte de masquage, la méthode consiste à décoder le signal puis à calculer effectivement l'erreur par soustraction du signa reconstruit au signal d'origine. On parle de codage de type "analyse par la synthèse". Dans les codeurs plus anciens, par exemple MPEG1 couche I et II; l'allocation de bit est faite en "boucle ouverte" : on alloue des bits en fonction du rapport signal à masque fourni par le modèle psychoacoustique, suivant des tables de correspondance calculé à priori, on ne controle pas directment le bruit de quantification.
Les composantes fréquentielles sont regrouper en sous bandes fréquentielle.La taille des sous-bande augmente avec la fréquence (minimum 4 pour les plus graves) afin de suivre la sensibilité fréquentielle de l'orielle. A cause de la dimension des dimensons des tables de Huffman, elles regroupent toujours un multiple de 4 composantes. Leur définition dépend de la fréquence d'echantillonnage et de la taille de la fenêtre. Ex : A 32 et 44,1khz, en fenêtre longue, la sous-bande la plus large comporte 32 composantes.
Exemple : fs=32kHz, longue fenêtre
Le codage de Huffman a pour rôle d'une part de calculer le nombre de bits nécessaire pendant le déroulement du processus itératif d'optimisation, et d'autre part de déterminer les mots de code en sortie du processus.
Codage des facteurs d'échelle:
Les facteurs d'échelle sont également codé par un code de Huffman.
On définit un gain global g sur 8 bits. Ensuite, les facteurs d'échelles sont définis de manière différentielle delta : (39) (40)
Ces indices sont directment utilisé comme entrée des tables de Huffman. Ces dictionnaire codent des indices entier de 0 à 120. La valeur differentiel est donc limité à [-60,60]
codage des composantes quantifiées
Bit reservoir :
Bit rate in most applications is required to be constant. However signal properties are not constant over time. It is
possible to expect accidental "peaks" in signal properties that require higher more bits. Also there are parts of the
signal that don't require bit rate specified by user demands. For that purpose AAC standard defines so-called "bit
reservoir" for storing or spending extra bits.
(sources: http://www.mp3-tech.org/programmer/docs/di042001.pdf)
Bit Stream Format :
http://my.safaribooksonline.com/bo [...] coding/650
f) Norme