34
Audio compression - Novembre 2005 Introduction aux techniques audio et vidéo Compression des signaux audio Embrechts J.J. Université de Liège – Dépt. E.E.I. - INTELSIG group

Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Introduction aux techniques audio et vidéo

Compression des signaux audio

Embrechts J.J.Université de Liège – Dépt. E.E.I. - INTELSIG group

Page 2: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

. La compression audio : pourquoi ?

. Les systèmes de compression audio les plus répandus

. Les principes de la compression audio

. Les systèmes de compression MPEG : vers le MP3

. Evaluation des systèmes de compression audio

Page 3: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

La compression audio : pourquoi ?

• Le stockage du code audionumérique sur des supports à densité limitée (disque optique ou bande magnétique) limite la durée d’enregistrement.

• De même, la transmission du code audio via des canaux à bande passante limitée.

• L’intérêt pour cette dernière application tend à devenir prépondérant (ex : transfert via internet ou réseau de téléphonie mobile).

Page 4: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

La compression audio : formats ?

• MPEG (-1) audio (1992) : layers I, II, III (MP3), prévus au départ pour la transmission de l’audio (et de la vidéo) : DAB, DVB

• MPEG (-2) audio : BC (backwards compatible) et AAC (advanced audio coding,1997, non compatible avec MP3) : multichannel audio, pour le DVD. AAC est aussi le noyau du code audio pour MPEG-4.

• (Dolby) AC-3, prévu initialement pour la télévision numérique aux USA (standard ATSC), mais intégré également dans le standard MPEG-2 (DVD).

• Ogg Vorbis, wma, MP3PRO (2001),…• Codes propriétaires : MUSICAM et ASPEC (qui ont influencé

MPEG-1), ATRAC (mini-disc), PASC (DCC), …

Page 5: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (1)

Lossless/lossy coding

• Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux.

• Exemple : le code de Huffman

• Ils peuvent rarement atteindre des taux de compression supérieurs à 2:1

Page 6: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (2)

Lossless/lossy coding

• Le codage avec perte enlève du flux audio une partie de l’info qui ne pourra être retrouvée après décodage.

• L’information « perdue » ne devrait pas être significative (irrelevant info), elle devrait être « inaudible ».

• Ces codes font appel à un modèle psychoacoustique(perceptive codes).

• Ils peuvent atteindre des taux de compression > 10:1

Page 7: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (3)Modèle psychoacoustique : le masquage

• Un son d’intensité inférieure au seuil d’audibilité est inaudible : c’est de

l’information NON significative

02040

6080

dB

Hz100 1000 10000

Inaudible

Audible

Page 8: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (4)Modèle psychoacoustique : le masquage

• Un son pur relève le seuil d’audibilité au voisinage de sa fréquence : il masque les sons d’intensité plus

faibles, situés à des fréquences proches de la sienne.

02040

6080

dB

Hz100 1000 10000

Inaudible

Inaudible

Page 9: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (5)

Modèle psychoacoustique : le masquage

• Masquage temporel : un son de forte intensité va masquer les sons d’intensité plus faible immédiatement postérieurs (post-masking) ET antérieurs (pre-masking).

• Pre-masking : qq msec• Post-masking : qq 10 msec

dB

t

Masqueur

PREPOST

Inaudible

Page 10: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (6)

Modèle psychoacoustique : le masquage

Evaluation permanente duseuil de masquage fréquentiel

Elimination des échantillonssous le seuil de masquage

Les échantillons restants sont codésavec le nombre minimum de bits

Eventuellement,les échantillons précédents et suivants sont considérés pour tenir compte du masquage temporel

Page 11: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (7)

Noise masking

• Pour « comprimer » le signal, certains échantillons seront codés avec moins de bits : mais, cela revient à augmenter le bruit de quantification.

• Rappel : SNR=6N+2, puissance du bruit = Q2/12

• Le nombre de bits doit être choisi pour que ce bruit reste inférieur au seuil de masquage.

Page 12: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (8)Noise masking

• Compander : système réducteur de bruit constitué d’un COMPresseur (de dynamique), suivi d’un expanseur (exPANDER)

QuantificationCompresseur Expanseur

dB

t

signal

Max. level

t

Max. level

t

Max. level

t

Max. level

signal

Noise

Noise

Page 13: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (9)Noise masking

• Compander : système réducteur de bruit constitué d’un COMPresseur (de dynamique), suivi d’un expanseur (exPANDER)

• Dans les systèmes de compression audio, la compression de dynamique est opérée en transformant chaque valeur numérique en « floating point » : mantisse + exposant

Exposant 23Si bruit autorisé : Q=2-5

0.0001101, Q=2-7

0.1101000 0.11

Page 14: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (10)Noise masking

• Dans les systèmes de compression audio, la compression de dynamique est opérée en transformant chaque valeur numérique en « floating point » : mantisse + exposant

Exposant 23Si bruit autorisé : Q=2-5

0.0001101, Q=2-7

0.1101000 0.11

• Décodage (expanseur) :

0.11 + Exposant 23 0.0001100

Page 15: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (11)Noise masking

• Problème du compandeur large bande.

Voix + bruit blanc

Voix + bruit blanc + compandeur large bande

Page 16: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (12)Noise masking

• Problème du compandeur large bande : il est nécessaire de travailler par bandes de fréquences -> sub-band coding

• Par souci d’économie, un seul exposant sera transmis pour TOUS les échantillons d’un bloc de N échantillons : block coding

• Cette notion de « bloc » se justifie également par le fait que le seuil de masquage sera déterminé par rapport à la distribution fréquentielle de l’énergie du signal, qui ne peut s’évaluer à partir d’un seul échantillon.

• Il faut néanmoins analyser le problème du masquage temporel si un brusque changement de niveau survient dans le bloc.

Page 17: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Principes de la compression audio (13)Noise masking and block coding

t

dB

noisemasquénon masqué

• Le niveau du bruit de quantification est constant dans une sous-bande et dans un bloc.

• Il est déterminé par le nombre de bits attribués à la mantisse, et donc par le niveau du masqueur.

• En cas d’élévation brutale du niveau dans le bloc, le bruit peut ne pas être entièrement masqué.

• Le « pré-masquage » agira si le bloc est plus petit qu’1 msec. Sinon, il faut utiliser une fenêtre temporelle variable ou en tout cas limiter le bruit de quantificationdans les blocs contenant des transitoires trop prononcés.

Page 18: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Sub-band coding (1)Quelles bandes fréquentielles ?

• Fletcher et Zwicker ont mis en évidence l’existence de bandes critiques dans notre système auditif : elles ont une largeur relative, proche du tiers d’octave. A l’intérieur d’une bande critique, deux sons de fréquences différentes sont indiscernables. Conséquence : le niveau du bruit masqué dépend de l’énergie du signal dans une bande critique, et non de ses composantes.

• Une analyse par bandes critiques complique le traitement de signal, et n’est pas absolument nécessaire. La plupart des codes perceptifs découpent le spectre audio en un certain nombre de bandes de largeurs égales.

• Exemple : 32 sous-bandes de largeur uniforme.

• Plus la sous-bande est étroite, plus le bruit admissible sera élevé, et donc plus le codage sera efficace. Mais, trop de sous-bandes augmentent aussi la complexité du système de codage.

Page 19: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Sub-band coding (2)Plus la sous-bande est étroite, plus le bruit admissible sera élevé.

dB

f

Seuil de masquage Bruit masqué, sous-bande étroite

Bruit masqué, sous-bande large

Page 20: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Sub-band coding (3)Le banc de filtres

Décimation : 1 échantillon sur 32Filtres1

2

3

32

s[n]

Fs/32

Fs/32

Fs/32

Fs/32

Fs

Bit rate total INCHANGE

Chaque signal, dans chaquesous-bande, est « translaté »dans la bande de base de0 à (Fs/64) Hz.

Attention à l’aliasing :Pseudo QMF filters

Page 21: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Sub-band coding (4)Le banc de filtres : la reconstruction

f

Fs/7 2Fs/7 Fs

f

Fs

f

Fs

Signal 3è sous-bande Interpolation à Fs Filtrage passe-bande

n n n

Page 22: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

Sub-band coding (5)• Pour déterminer le seuil de masquage, les 32 sous-bandes ne

conviennent pas car elles ont des largeurs constantes, donc tropétendues en B.F. et trop étroites en H.F., par rapport aux largeurs de bandes critiques.

• Par conséquent, le seuil de masquage sera avantageusement évaluéavec une résolution plus importante, par FFT

Seuil de masquage évalué par FFTdB

Exemple : une FFT de 512 points.

f

Bruit masquéDans la sous-bande

Page 23: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer I Encoder (1)

384 échantillons8 ms à 48 kHz 12 éch.

s[n] Fs

Audio PCM

BlocBanc deFiltres(32)

FFT (512 points)

12 éch.12 éch.

12 éch.

Page 24: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer I Encoder (2)

Banc defiltres(32)

FFT (512 points)

niveau max. =>exposant (scale factor)

Compression dedynamique

Masquage fréquentiel :Détermination du bruit acceptable danschaque sous-bande.

Re-quantification :réduction de la taille

de la mantisse

Taille de la mantisse

(bit allocation)

DATA

FRAME

12 éch.

6 bits/sous-bande

4 bits/sous-bande

Page 25: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer I Encoder (3)• La taille du bloc (8ms) est trop longue que pour assurer un pré-

masquage en cas de transitoire brutal. Il faut donc éviter des quantifications trop « grossières » dans ces blocs, par exemple en analysant les caractéristiques du bloc précédent

• 6 bits par « scale factor », permet d’atteindre 128 dB de dynamique (par pas de 2dB)

• 4 bits sont utilisés pour décrire la taille de chaque mantisse, ce qui permet d’adresser 14 types de quantification (nombre impair de pas de quantification)

• Le bit-rate est FIXE en sortie => les bits disponibles par bloc sont distribués entre les sous-bandes, de manière à obtenir un NMR (noise-to-masking ratio) constant dans chaque sous-bande

• Si le bit-rate désiré est trop faible, l’opération de bit allocation est impossible => positive NMR (on accepte un niveau de bruit non masqué) => artefacts

Page 26: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer I Decoder (1)

Banc de filtres (32)identique à l’encodage

Expansion dedynamique

Quantification inverse :restitution de la taille

originale de la mantisse(en ajoutant des zéros !)

bit allocationpar sous-bande

DATA

FRAME

exposant (scale factor)extrait pour chaque sous-bande

Echantillons

Audio PCM

Page 27: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer I Decoder (2)

• Le codage est asymétrique, c’est-à-dire :

• la complexité de l’encodeur est supérieure à celle du décodeur ;

• l’encodeur est donc plus « cher » que le décodeur ;• il y a plusieurs types d’encodages possibles (le

modèle de masquage n’est pas unique ! ). Tout ce qui importe est de respecter le format du « data frame ».

Page 28: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer II (1)

• Différences avec Layer I :

• FFT de 1024 points pour estimer le seuil de masquage;• la longueur du bloc est portée à 1152 échantillons (24 ms à 48

kHz);• chaque bloc est coupé en trois sous-blocs de 384 échantillons.

Dans chaque sous-bande, les 3 « scale factors » successifs sont codés plus efficacement, ce qui permet de réduire le bit-rate relatif aux exposants de moitié !

Page 29: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer II (2)• Différences avec Layer I (suite) :

• les sous-bandes sont partagées en trois domaines : les B.F. (15 longueurs de mot possibles + « 0 » ou « no data »), les M.F (7 longueurs + 0) et les H.F. (3 longueurs + 0);

• donc, ces longueurs définissant la « bit allocation » peuvent être décrites par, respectivement, 4, 3 et 2 bits;

• dans certains cas, le groupement de trois échantillons successifs (par granule) permet un codage plus efficace (avec moins de bits);

• l’information de « bit allocation » renseigne le décodeur si les échantillons doivent être décodés individuellement, ou en granules.

Page 30: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer III : MP3 (1)

• Différences avec Layer II :

• la sortie des 32 sous-bandes fait l’objet d’une transformation de type MDCT (modified discrete cosine transform);

• les fenêtres temporelles définissant les blocs se recouvrent (overlap);

• la taille des fenêtres (blocs) est variable, et s’adapte au contenu (transitoires brusques ou non);

• dans le cas de la fenêtre la plus longue (1152 échantillons, 24 ms à 48 kHz), la MDCT délivre dans chaque sous-bande 18 coefficients, ce qui donne au total 32x18=576 coefficients fréquentiels;

Page 31: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer III : MP3 (2)

• Différences avec Layer II (suite) :

• le modèle psychoacoustique est plus complexe, car il doit intégrer ces changements de longueurs de fenêtres;

• la MDCT permet une meilleure résolution fréquentielle (576 coefficients), et donc une meilleure estimation du bruit admissible et une meilleure opération de « bit allocation »;

• quantification non-uniforme (pas variables) des coefficients;• codage sans perte (Huffman coding) des coefficients quantifiés;• Buffering.

Page 32: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer III : MP3 (3)• Buffering : qu’est-ce que c’est ?

• Dans les layers I et II, le « bit rate » en sortie est constant, chaque bloc de 384 (ou 1152) échantillons donnant lieu à une « data frame ».

• Dans le MP3, les blocs successifs peuvent délivrer un nombre de bits quelque peu variable, pour s’adapter aux longueurs de fenêtre variables.

• Comme le « bit rate » doit rester constant en sortie, une « data frame » peut contenir les coefficients de deux blocs successifs.

Page 33: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer III : MP3 (4)

• Layer I : 384 Kbits/s (stereo), for transparent coding• Layer II : 256 Kbits/s• Layer III : 192 Kbits/s, but quality still acceptable at

128 Kbits/s : depends on the encoder !

• ATRAC : compression rate 5:1• AC-3 : 320 Kbits/s pour 5.1 channels

• MPEG-1 : 32, 44.1 et 48 kHz• MPEG-2 : étendu à 16, 22.05 et 24 kHz

Page 34: Compression des signaux audio - Montefiore Institute · • Le codage sans perte permet de retrouver, après décodage, les échantillons audio originaux. • Exemple : le code de

Audio compression - Novembre 2005

MPEG Layer III : MP3 (5)

Source : Alain Bouffioux (Philips)

QualityQuality

BitrateBitrate

ComplexityComplexity

MPEG Layer 1MPEG Layer 1

MPEG Layer 2MPEG Layer 2

MPEG Layer 3MPEG Layer 3

MPEG AACMPEG AACOther TechniqueOther TechniqueSpeech codingSpeech coding