MP3 : MPEG-1 Audio Layer III

Transcription

MP3 : MPEG-1 Audio Layer III
MP3 : MPEG-1 Audio Layer III
Felix HAHNLEIN & Auriane REVERDELL
Ensimag - Grenoble INP
Mars 2016
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
1 / 31
Table des matières
1
Introduction
2
Encodage
Filtre polyphase
MDCT
Analyse psychoacoustique
Allocation de bits
3
Performances
4
Avantages et inconvénients
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
2 / 31
Introduction
Introduction
Publié officiellement en 1992 par le groupe MPEG (Moving Picture
Experts Group)
Encodeur perceptuel, exploitation des défauts de l’ouı̈e humaine
Bande passante: 20Hz - 20kHz
Masquage auditif: simultané et temporel
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
3 / 31
Introduction
Masquage auditif
Découpage de la bande fréquentielle en bandes critiques
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
4 / 31
Introduction
Masquage auditif
Masquage simultané
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
5 / 31
Introduction
Masquage auditif
Masquage temporel
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
6 / 31
Encodage
Encodeur perceptuel
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
7 / 31
Encodage
Filtre polyphase
Filtre Polyphase
Le signal PCM est partitionné en :
Frames
32 sous-bandes de fréquences égales par frame
36 échantillons par sous bandes
Filtre passe bas → enlève les fréquences inaudibles par l’oreille humaine
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
8 / 31
Encodage
MDCT
Types de fenêtres
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
9 / 31
Encodage
MDCT
MDCT
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
10 / 31
Encodage
MDCT
MDCT
Fenêtrage → MDCT sur des sous-bandes utilisant un chevauchement
temporel de 50% entre des fenêtres adjacentes


x1
 .. 
 . 
 
x18 
 
x19 
 
 .. 
 . 
→
MDCT
x36
 
x19
 .. 
 . 
 
x36 

→
x37 
 
 .. 
 . 
→
MDCT
→ ···
x54
Demo video
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
11 / 31
Encodage
Analyse psychoacoustique
Analyse psychoacoustique
But: Calculer les rapports SMR(Signal-to-mask ratio) pour toutes les
bandes critiques.
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
12 / 31
Encodage
Analyse psychoacoustique
Calcul des énergies, mesures d’imprévisibilité par bande
Energie par
Pbhbande
z
eb(z) = f =bl
R 2 (f )
z
devient
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
13 / 31
Encodage
Analyse psychoacoustique
Calcul des énergies, mesures d’imprévisibilité par bande
Mésure d’imprévisibilité
cw (f ) = G (R(f ), Φ(f ))
Ici, les basses fréquences ont une probabilité plus importante d’être
des son
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
14 / 31
Encodage
Analyse psychoacoustique
Calcul de la fonction de propagation
Fonction de propagation
exprime l’influence d’une bande critique z sur les autres
Convolution avec l’énergie et l’imprévisibilité
⇒ pondération de ces fonctions
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
15 / 31
Encodage
Analyse psychoacoustique
Estimation de l’indice de tonalité
L’opposée de l’imprévisibilité par bande
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
16 / 31
Encodage
Analyse psychoacoustique
Calcul du seuil de masquage
Un son a une plus grande aptitude a masquer un bruit qu’un bruit un
son.
Noise-masking-tone
Felix HAHNLEIN & Auriane REVERDELL
Tone-masking-noise
MP3 : MPEG-1 Audio Layer III
17 / 31
Encodage
Analyse psychoacoustique
Calcul du seuil de masquage
Comment choisir le comportement? On interpole entre les deux
comportements extrêmes grâce à notre probabilité d’être un son.
SMR(z) = 24Pson (z) + 4(1 − Pson (z))
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
18 / 31
Encodage
Analyse psychoacoustique
Entropie perceptuelle
Il s’agit d’une borne inférieure du nombre de bits nécessaires pour
encoder un échantillon sans introduire une différence perceptuelle par
rapport à l’original.
PE = −
X
z∈{bandesCritiques}
largeur (z) log(
seuilDeMasquage(z)
)
energieDeBande(z)
A quels moments va-t-elle dépasser un certain seuil?
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
19 / 31
Encodage
Analyse psychoacoustique
Détection des passages rapides
Situation d’un écho, p.ex. déclenché par un triangle
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
20 / 31
Encodage
Analyse psychoacoustique
Détection des passages rapides
Eviter des ”pré-échos”, dus au bruit de quantification
Emettre un signal au module MDCT, pour augmenter la résolution
fréquentielle.
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
21 / 31
Encodage
Allocation de bits
Allocation de bits
Système de boucles :
Distortion control loop : vérifie bruit quantification < seuil de
masquage
Rate control loop : pas de quantification, tables de Huffman
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
22 / 31
Encodage
Allocation de bits
Distortion control loop
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
23 / 31
Encodage
Allocation de bits
Variables de l’éxécution de la boucle extérieures
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
24 / 31
Encodage
Allocation de bits
Rate control loop : Quantification
Quantification non uniforme : ajustement du pas de quantification en
fonction des bandes
Elévation des valeurs à la puissance 3/4 → petites valeurs quantifiées
avec plus de précision
Application de la formule de quantification
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
25 / 31
Encodage
Allocation de bits
Rate control loop : Codage de Huffman
Codage de Huffman
32 tables de Huffman
Ordonnnancement du block codé par régions → permet de
sélectionner la table la plus adaptée (si beaucoup de zeros ou
beaucoup de grandes valeurs)
Ajustement du pas de quantification pour que la plus grande valeur
quantifiée puisse être codée avec le code de Huffman le plus large
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
26 / 31
Encodage
Allocation de bits
Exemples de découpages en régions
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
27 / 31
Performances
Encodage exemplaire
L’original: 3.5Mo, 16bit - 44,1kHz
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 320kBit/s - 806,7ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 256kBit/s - 645,3ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 224kBit/s - 564,7ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 192kBit/s - 484,0ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 160kBit/s - 403,3ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 128kBit/s - 322,7ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 112kBit/s - 282,3ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 96kBit/s - 242,0ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 80kBit/s - 201,7ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 64kBit/s - 161,3ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 56kBit/s - 141,0ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 48kBit/s - 120,8ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 40kBit/s - 100,7ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Performances
Encodage exemplaire
Bit-rate: 32kBit/s - 80,6ko
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
28 / 31
Avantages et inconvénients
Avantages et inconvénients
Avantages
Supporté par des nombreux types de périphériques
Standard ISO, format libre
Décodage rapide et moins complexe que celui de l’AAC
Inconvénients
Performance moins bonne que celle d’autres formats plus récents
Limite de 320kbit/s parfois pas suffisante
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
29 / 31
Conclusion
Conclusion
La compression MP3 est une compression avec pertes travaille par blocs de
données et quantifie le spectre avec une résolution fréquentielle adaptative.
Elle cherche à optimiser le pas de quantification en fonction des données
afin que la différence perceptuelle par rapport à l’original reste négligeable.
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
30 / 31
Appendix
Bibliographie
Bibliographie I
Jayaraman J.Thiagarajan, Andreas Spanias
Analysis of the MPEG-1Layer III (MP3) Algorithm Using MATLAB
2011
Rassol Raissi
The Theory Behind Mp3.
2002
Felix HAHNLEIN & Auriane REVERDELL
MP3 : MPEG-1 Audio Layer III
31 / 31