1
La compressione audio
Come risparmiare spazio e tempo lavorando sulla forma d’onda
2
La compressione audio
L’arte di minimizzare le risorse per i dati audio aridurre la memoria occupata
aridurre i costi di trasmissione
aRisultati attuali: buona qualità in confronto all’audio non compresso (stesso tasso di trasferimento dati)
3
Obiettivo: riproduzione trasparente
aAudio che anche “orecchie” sensibili non riescono a distinguere dall’originale
aNumero minimo di bit mantenendo una riproduzione trasparente del segnale
4
L’audio digitale
aVantaggi
`alta fedeltà delle copie del segnale
`robustezza
`gamma dinamica estesa
aSvantaggio: alto tasso di trasferimento dati
`campionamento: 44.1 kHz (CD), 48 kHz (DAT)
`quantizzazione: PCM lineare a 16 bit
5
Perché nasce la compressione
L’audio digitale non compresso occupa ...
amolto spazio sull’hard-disk per la memorizzazione auna banda ampia sul canale di trasmissione
6
Esempio: brano di 1 min con qualità CD
a Parametri
`campionamento = 44,100 c/s
`quantizzazione = 16 bit = 2 byte
`canali = 2
a Memoria = 44.100 c/s * 2 can * 2 byte/c * 60 s
~ 10 Mbyte
a Tempo = 10 Mbyte * 8 bit/byte / (56 kbps * 60 s) ~ 24 min
Solo per scaricare un minuto di musica stereo!
7
… non solo
aProblemi di banda per applicazioni multimediali aAccesso e trasferimento dati sempre più veloce,
ma ...
… immagini, video, testo, e audio di alta qualità sincronizzati tutti assieme
8
Due livelli di applicazioni
aBassa qualità
`telefonia
aAlta qualità
`colonne sonore per giochi su CD-ROM
`memorie allo stato solido (flash) per i suoni
`audio su Internet
`broadcast di audio digitale (Radio e TV)
9
Compressione e decompressione
Encoding, Codifica, Compressione Dati audio
non compressi
Bitstream in modalità compressa Decoding,
Decodifica, Decompressione Audio non compresso
che suona come l’originale lossless
lossy
10
Nell’analogico
aProblema: gamma dinamica ridotta
aRiduzione del rumore (Dolby) per aumentare la gamma dinamica ridotta dal rumore
acompansion: compression + expansion
`registrazione: compressione della gamma dinamica
`riproduzione: espansione della gamma dinamica
aCompansion su tutte le frequenze (dbx) o su bande selezionate (Dolby A, B, C)
11
La compansion nel digitale
aEsempio: valori di 8 bit
`00001101 = 1101 x 1
`00011010 = 1101 x 10
`00110100 = 1101 x 100
`01101000 = 1101 x 1000
`11010000 = 1101 x 10000
aSono sufficienti 7 bit = 4 + 3 (si risparmia 1 bit:
riduzione del 12,5%)
aPerdita di accuratezza nei valori più grandi
12
ITU-T G.711, µ-law e A-law
-32768 +32767
0 255
-32768 +32767
13
µ-Law compansion
aQuantizzazione logaritimica
aGamma dinamica di 14 bit con una codifica a 8-bit aPer i servizi voce ISDN in Nord America e Giappone aSemplice il computo della codifica
-8 +7
-4 +3
14
Codifica µ-law
Codifica PCM lineare (a 16 bit)
codifica µ-Law
a 8-bit
Decodifica PCM lineare (a 16 bit)
15
Esempi di codifica µ-law
16
Lossy µ-law
- 200 (a 16 bit)
106 a 8-bit
- 193 (a 16 bit)
17
ADPCM
CCITT G.721, G.723, e ITU-T G.726
aStandard per la compressione di dati vocali
`CCITT G.721 (ADPCM a 32 Kbps)
`CCITT G.723 (ADPCM a 24 e 40 Kbps)
aADPCM = Adaptive Differential PCM
`metodo comune di compressione
`buon compromesso tra velocità di elaborazione, tasso di compressione e decodifica di qualità
18
Codifica della differenza (DPCM)
aRidondanze temporali tra i campioni
aLa differenza tra due campioni a x-bit si può rappresentare con meno bit di x
aSi memorizza la differenza (non il campione)
+1 +1
+1 0 0 -1
-1 0 0
+1 0 -1
-1 -1 -3
0 +1 +2
+3
19
Problema “Slope Overload“
a Differenze elevate (alte frequenze) non si possono rappresentare con un numero piccolo di bit
a Gli errori introdotti porterebbero a distorsioni sulle alte frequenze
+1 +1
0 -1
-1 0 0
0 0 -1
-2
-4 +4 +5
-8 +6 -4 +1
+1
20
Adaptive DPCM (ADPCM)
aPassi di quantizzazione più grandi per differenze più grandi, e viceversa
aSi usano i campioni precedenti per stimare i cambiamenti futuri
21
Schema di ADPCM
22 Predictor
+ –
+ campione
PCM a x-bit
“differenza”
ADPCM a y-bit Quantizer
Adattatore Step-Size
Requantizer +
Campione n+1 PCM predetto
Raffiniamo l’adattabilità ADPCM
+ +
23
Due varianti di ADPCM
aIMA/DVI ADPCM
`comprime dati audio a 16-bit in soli 4 bit
aMicrosoft ADPCM
`variante di ADPCM da usare con i WAV
`anch’esso dati audio a 16-bit data in 4-bit data
24
IMA ADPCM
Register +
–
+ campione
PCM a 16-bit
“differenza”
ADPCM a 4-bit Quantizer
Adattatore Step-Size
Requantizer +
Campione n-1 PCM
aPredictor non adattativo
aPasso di quantizzazione aumenta in modo logaritmico
+ +
25
IMA: Tabella Passi (di quantizzazione)
6484 71
1166 53
209 35 37
17
32767 88
5894 70
1060 52
190 34 34
16
29794 87
5358 69
963 51 173
33 31
15
27086 86
4871 68
876 50 157
32 28
14
24623 85
4428 67
796 49 143
31 25
13
22358 84
4026 66
724 48 130
30 23
12
20350 83
3660 65
658 47 118
29 21
11
18500 82
3327 64
598 46 107
28 19
10
16818 81
3024 63
544 45 97
27 17
9
15289 80
2749 62
494 44 88
26 16
8
13899 79
2499 61
449 43 80
25 14
7
12635 78
2272 60
408 42 73
24 13
6
11487 77
2066 59
371 41 66
23 12
5
10442 76
1878 58
337 40 60
22 11
4
9493 75
1707 57
307 39 55
21 10
3
8630 74
1552 56
279 38 50
20 9
2
7845 73
1411 55
253 37 45
19 8
1
7132 72
1282 54
230 36 41
18 7
0
Passo Indice
Passo Indice
Passo Indice
Passo Indice
Passo Indice
26
Selezione step-size adattiva
8 1,75
111 7/4passo < differenza
6 1,50
110 3/2passo < differenza < 7/4passo
4 1,25
101 5/4passo < differenza < 3/2passo
2 1,00
100 passo < differenza < 5/4passo
-1 0,75
011 3/4passo < differenza < passo
-1 0,50
010 1/2passo < differenza < 3/4passo
-1 0,25
001 1/4passo < differenza < 1/2passo
-1 0,00
000 differenza < 1/4passo
Variazione indice Moltiplicatore
Output del Quantizer Quantizzazione
27 Lookup
Tabella Step-Size
Registro
Calcolo Adattamento
Indice Tabella Step-size Adattamento
indice Nuovo indice
Output Quantizer Nuovo
Step-Size
Adattatore Step-size
Quantizer
Adattatore Step-Size
Requantizer
Quantizer
Requantizer Nuovo
Step-Size
Limiti tabella +
(0 - 88)
28
Esempio
…
…
20 51
1,5 22
6 110 3/2 34<51<7/4 34 16/34
-51 20 15
71 28
1,75 16
8 111 7/4 16<45
8/16 -45
54 14
99 13,75 1,25
8 4
101 5/4 11<14<3/2 11 4/11
-14 99 13
113 3
0,25 4
-1 001 1/4 12<3<1/2 12 5/12
3 113 12
110 10
1,00 5
2 100 10<11<5/4 10 3/10
11 111 11
100 0
0 3
-1 000 0<1/4 11 4/11
0 100 10
100 9
0,75 4
-1 011 3/4 12< 9< 12 5/12
-9 100 9
109 9,75
0,75 5
-1 011 3/4 13<13< 13 6/13
-13 106 8
119 11,25
1,25 6
4 101 5/4 9<12<3/2 9
2/9 -12 118 7
130 0
0 2
-1 000 1<1/4 10 3/10
-1 129 6
130 2,75
0,25 3
-1 001 1/4 11<4<1/2 11 4/11
4 131 5
127 9
0,75 4
-1 011 3/4 12<9< 12 5/12
9 127 4
118 6,5
0,5 5
-1 010 1/2 13<9<3/4 13 6/13
9 120 3
111 10,5
1,5 6
6 110 3/2 7<12<7/4 7 0/7
12 112 2
100 0/7
100 1
Decode
∆ Molt.
Nuovo indice Var.
indice Output
Quant.
Confronto C[N]-Passo Indice/
Passo C[n]
X[n]
29
La compressione di tipo percettivo
MP3 & Co.
Principi psicoacustici applicati
30
Schema generale
X(n)
Analisi tempo/
frequenza
Quantizzazione e
Codifica
Allocazione di bit Analisi
psicoacustica
Compressione senza perdite (entropia)
Parametri
Soglie di mascheramento
bitstream nel canale
Infoaggiuntive
Decodifica del bitstream Ricostruzione
campioni per banda Sintesi
segnale X’(n)
Codifica del bitstream
31
Soglia assoluta dell’udito
32
Le bande di
frequenza critiche
Banda Centro Estremi
1 50 -100
2 150 100-200
3 250 200-300
…
7 700 630-770
…
11 1370 1270-1480
…
15 2500 2320-2700
…
19 4800 4400-5300 20 5800 5300-6400
…
25 19500 15500- Bande di 100 Hz fino a
circa 500 Hz
Bande per 20% del centro oltre 500 Hz
33
Soglie di mascheramento globale
34
Mascheramento simultaneo
Tono di
mascheramento Soglia di
mascheramento
Minima soglia di mascheramento
Banda critica
Banda vicina
m-1 mm+1 SMR
MNR SNR dB
frequenza
35
Mascheramento temporale
masker
Pre (5 ms)
Post
(50-300ms) Simultaneo
-50 0 50 100150 0 50 100 150 250 ms dB
36
MPEG
(Motion Picture coding Experts Group)
Gruppo di lavoro di ISO/IEC per lo sviluppo di standard internazionali per ...
acompressione, decompressione, elaborazione, e rappresentazione codificata di …
a… video, audio, combinazioni A/V.
37
Standard MPEG
aMPEG-1: memorizzazione/recupero video/audio (11/92)
aMPEG-2, standard per la TV digitale (11/94) aMPEG-4
`v. 1, standard applicazioni multimediali (10/98)
`v. 2, standard audio/video HDTV (12/99)
aMPEG-7: standard rappr. dei contenuti
`ricerca, filtraggio, gestione di info multimediale
`rilasciato a luglio 2001
38
… e MPEG1/2 Layer III (MP3)
a1987 progetto Eureka (Digital Audio Broadcasting)
alavoro su audio percettivo in collaborazione tra Fraunhofer IIS e l’Università di Erlangen
arisultato: algoritmo molto potente ISO-MPEG Audio Layer-III
39
Lo schema di compressione MPEG-1
aStruttura di base comune su più layer
`calcolo delle sottobande
`calcolo del modello psicoacustico
a3 Layer
`Layer I: semplice, poco efficace
`Layer III: complesso, efficace
aScelta del layer - rapporto qualità/compressione
40
Modalità di compressione
aPiù frequenze di campionamento (32/44.1/48) aBitstream compresso supporta mono, dual
mono, stereo, joint stereo
aBit rate da 32 a 224 kbps (compressione da 2,7 a 24 volte) – tassi fissi e variabili
aSupporta il controllo e la correzione degli errori aInformazioni supplementari
41
I tre livelli di compressione
aLayer I
`il più semplice (bitrate oltre 128 kbps a canale)
`DCC di Philips usa la compressione di Layer I a 192
aLayer II
`complessità media (bitrate circa 128 kbps a canale)
`applicazioni in DAB
aLayer III
`il più complesso, migliore qualità
`64 kbps adatto per trasmissione audio su ISDN
42
MPEG 1 - Layer III
Loop controllo distorsione
Codifica di Huffman
bitstream Banco di filtri
(32 sottobande)
FFT 1024 punti audio digitale PCM
Codifica del bitstream
Decodifica del bitstream Ricostruzione dei
campioni per bande Ricostruzione dei
campioni nel tempo audio digitale
decompresso
Loop controllo quant. log.
Codifica info agg.
MDCT 0
31
…
Modello psicoacustico Analisi tempo-frequenza
0 575
…
Allocazione dei bit, quantizzazione e codifica
Analisi psicoacustica
Riserva
43
Corrispondenza bande critiche e MPEG
44
Frame di 12 campioni consecutivi
45
Modello psico-acustico
aFFT a 1024 punti
aSeparazione del segnale in tonale e non tonale
`“perceptual noise shaping”
`“perceptual subband coding“
aCalcolo soglie mascheramento globale
aCalcolo rapporto SMR (Signal to Masker Ratio) per quantificare i dati da comprimere
46
Modello psicoacustico
aNecessario per stabilire il livello max di quantizzazione
aNon si deve udire il rumore di quantizzazione
FFT 1024 punti
Modello psicoacustico Analisi psicoacustica
47
Compressione dei dati audio
aPiù cicli di quantizzazione e codifica
aModello psicoacustico + bitrate in uscita
Loop controllo distorsione
Codifica di Huffman Loop controllo
quant. log.
0 575
…
Allocazione dei bit, quantizzazione e codifica
Riserva
48
Allocazione dei bit
aAlloca i bit necessari per sottobanda
aCalcola MNR = SNR - SMR per sottobanda aPrende il minimo MNR
aAssegna i bit necessari
m-1m m+1 SMR
NMR SNR dB
frequenza
49
Spettro di ampiezza per 32 sottobande
Soglia globale di mascheramento
Allocazione di bit per banda
50
Quantizzazione e codifica
aI bit determinano i livelli di quantizzazione aCodifica logaritmica dei campioni
51
Codifica di Huffman
aMeno bit ai valori più frequenti
aDopo Huffman: ok per i limiti del bitrate ?
52
Due cicli di lavoro
aCiclo interno sui limiti del bitrate (RATE LOOP)
`si quantizzano e si codificano i valori
`compressione di Huffman
`se si eccede il bitrate, si allocano meno bit e go back
aCiclo esterno sul controllo del rumore per banda
`all’inizio tutte le bande sono trattate allo stesso modo
`se dopo il RATE LOOP il rumore in qualche banda va oltre il mascheramento, si allocano più bit solo per quelle bande
53
Terminazione: 3 casi
aIn nessuna banda il rumore supera la soglia del mascheramento (no distorsione)
aIterare ancora comporta per qualche banda il superamento dei valori permessi
aLa prossima iterazione porterebbe ad aumentare i bit per tutte le bande
aGli encoder che lavorano in real time hanno anche limiti di tempo
54
Quantizzazione/codifica
aBit di allocazione fino a 4 aFattore di scala tra 0 e 6 bit
55
Frame Packer
afile compresso in frame di campioni aogni frame ha
`un header con le info di sincronizzazione
`16 bit per il CRC
`Bit per 12 campioni per 32 sottobande
aCoda di bit per info supplementari
56
Tipiche riduzioni di MPEG
Riferimento standard (CD):
16 bit * 2 canali * 44100 sr = 1.411 kbps
a1:4 con Layer I (PASC)
`corrisponde a 384 kbps per un segnale stereo
a1:6...1:8 con Layer II
`corrisponde a 256..192 kbps per un segnale stereo
a1:10...1:12 con Layer III (MP3)
`corrisponde a 128..112 kbps per un segnale stereo
sempre mantenendo la qualità audio CD
57
Decodifica
aSintetizza un segnale a partire dalle componenti spettrali codificate
aNon si ha più lo stesso segnale!!!
aTutto dipende dal bit-rate
bitstream
Decodifica del bitstream Ricostruzione dei
campioni per bande Ricostruzione dei
campioni nel tempo audio digitale
decompresso
58
Esempi di bitrate
abit-rate = numero medio di bit consumati da un secondo di dati audio (kbps)
abit-rate per il CD = 1411.2 kbps
abit-rate per MP3 per qualità CD = 128 kbps
59
Le performance di MP3
aqualità telefonica: 96:1 (2.5 kHz / mono / 8 kbps) ameglio di AM radio: 24:1 (7.5 kHz / mono / 32
kbps)
asimile a FM radio: 26...24:1 (11 kHz / stereo / 56...64 kbps)
aquasi-CD: 16:1 (15 kHz / stereo / 96 kbps)
aCD: 14..12:1 (>15 kHz / stereo / 112..128kbps)
`prende approx. 1Mb/minute di spazio hard-disk
aOltre: 8…4:1 per la musica acustica
60
MP3 Codec
aprogramma del tipo di una libreria di sistema (collezione di funzioni)
avengono lanciate dai programmi di frontend acodec in distribuzione con frontend MP3
61
L’encoder migliore
aNon ha senso chiedersi quale sia l’encoder migliore: la risposta dipende dalle esigenze
`encoder veloci/lenti (> velocità, < fedeltà audio)
`confrontare mp3 ottenuti da encoder diversi a parità di bit-rate
aConsiglio pratico (ovvio): creare MP3 con basso bitrate con encoder ‘lenti’
62
I Frontend MP3
ainterfaccia ai codec
aAlcuni frontend implementano funzioni per
“normalizzare” il volume, o realizzano ID TAGS aIDTAG è informazione (testuale, in genere) nel
file di layer III (autore, titolo, etc ...)
63
Player MP3
asuona mentre decomprime
ai dati audio (campioni) vengono inviati alla scheda per la conversione