La Compressione Audio - 1



Tutti sanno che Internet pur essendo uno straordinario mezzo di comunicazione in grado di arrivare in qualsiasi angolo del mondo provvisto di linea telefonica, tutti pregi che hanno reso internet diffusissimo negli ultimi anni. Altrettanto però, internet è famoso per la sua lentezza, a volte insopportabile.
Un modo per ovviare alla scarsità di banda è la compressione dei dati. In parole povere, comprimere i dati significa immagazzinare la medesima quantità di informazione nel minor spazio (Bytes) possibile. Un modem, per citare un esempio, prima di trasmettere i dati sul doppino telefonico, li elabora utilizzando diversi algoritmi di compressione, inclusi nel protocollo V90.

Comprimere il più possibile i files è fondamentale per usufluire di tutte le potenzialità della rete. Nel campo della ricerca di nuovi e più efficienti algoritmi di compressione si investono miliardi e spesso c'è dietro una matematica avanzatissima. È bene chiarire sin da subito che NON ESISTE un algoritmo definitivo, unico e perfetto per la compressione di tutti i tipi di dati . Per fare un esempio, non si può comprimere un' immagine a colori abbastanza efficientemente se si usa un algoritmo pensato per comprimere file binari generici. Programmi come lo Zip usano un insieme di tecniche di compressione che si adeguano a seconda del tipo di file che deve essere trattato. In poche parole esiste un algoritmo di compressione per ogni tipo di files.

Adesso cercherò di spiegarvi qualcosa sulla compressione dei segnali audio, esaminando la basi della conversione analogico-digitale, le tecniche di compressione più semplici; approfondendo infine le codifiche psico-acustiche che hanno portato alla realizzazione dell' ormai famosissimo MP3.

Il segnale Audio

Il segnale audio è un segnale analogico, ovvero un segnale che varia in modo continuo nel tempo. Se volessimo riprodurlo graficamente, riportando su un diagramma la variazione dell'intensità sonora nel tempo, otterremmo un andamento di questo tipo:

Da notare che non ci sono bruschi salti, ma è una linea continua. Inoltre l'ampiezza può assumere una infinità di valori passando da un valore minimo ad uno massimo. La larghezza temporale di questa forma d'onda è molto breve (1-2 ms)

Un segnale digitale ha invece una forma di questo tipo :

Riuscire a rappresentare un segnale audio, per sua natura analogico e dunque con un andamento "morbido" con un segnale digitale preservando l'informazione è un argomento che è alla base della teoria dell'informazione. Il segreto sta nel campionare il segnale, ossia prelevare ad intervalli regolari, il valore del segnale audio, che si presenta sotto forma di un segnale elettrico che varia nel tempo. L'idea è quella di approssimare la funzione analogica che è "morbida" con una funzione fatta a gradini (rettangoli verdi).

Ad ogni istante multiplo del valore fondamentale, detto passo di campionamento, costruisco il rettangolino che approssima la funzione in quel punto. Se l'insieme dei rettangolini è sufficientemente fitto , la funzione di partenza è ben approssimata. Nel disegno in alto abbiamo supposto di dividere la porzione del segnale in 10 parti, ognuna di durata T. Se la durata complessiva è di 1ms, il passo di campionamento sarà di 0.1 ms, ovvero la frequenza di campionamento è di 1/(0.1 ms) cioè 10KHz . L'errore che si commette con l'approssimazione è notevole.

Nelle seguenti figure vediamo la "spezzata" che approssima la funzione (È stata costruita prendendo i valori delle altezze dei rettangoli) e il risultato di un campionamento a frequenza maggiore. Se aumentiamo la risoluzione, cioè il numero di rettangoli, l'errore di conversione diminuisce:

Ora, notiamo che l'altezza della funzione al variare di t varia in modo continuo. Nella figura in alto ho supposto di poter dividere l'altezza in 18 parti. Se il segnale originale cade nell'istante di campionamento fra i valori, diciamo, 12 e 13, decido arbitrariamente di assegnargli il valore 12. Ho cioè quantizzato l'ampiezza, che potrà assumere solo valori discreti, compresi fra 0 e 17. In informatica si lavora, come sapete, con le potenze del due, quindi supponiamo di quantizzare l'ampiezza con 16 livelli (2 elevato alla 4): dunque essa potrà assumere solo valori compresi fra 0 e 15. Sono quindi necessari 4 bit : ad esempio il valore 7 dell'ampiezza verrà codificato come la stringa 0111. Allora si capisce come in ogni intervallo di campionamento devo trasmettere 4 bit. Il meccanismo di campionamento e la successiva quantizzazione dell'ampiezza costituiscono le basi della conversione di un segnale da analogico a digitale.

Passiamo ad un esempio concreto: le tracce audio digitali di un CD sono immagazzinate in file binari esattamente seguendo questo principio, solo che in ogni secondo vengono prelevati ben 44100 campioni e ogni campione è quantizzato con 16 bit. Considerando che ho due canali, sinistro e destro, avrò un bit- rate complessivo pari a : 44100 * 16 *2= 176400 bytes/secondo valore che corrisponde alla velocità di lettura "1x" dei normali lettori CD audio. Tale bit-rate, a partire dalla codifica finora discussa, porta alla qualità sonora note come "qualità CD", che è lo standard di riferimento quando si valutano i risultati prodotti dagli algoritmi di compressione . Per quale motivo si è scelto di utilizzare un rate o tasso di campionamento di 44100 campioni al secondo? Perchè è noto che l'orecchio umano arriva idealmente a percepire frequenze entro i 20 KHz. Oltre questo limite l'uomo non ode nulla, così come sotto i 20 Hz. Da considerazioni di natura matematica, che non trattiamo in questa sede, si deve scegliere una frequenza di campionamento che sia almeno pari alla massima frequenza di interesse moltiplicata per due, se non si vogliono avvertire imperfezioni nell'ascolto (teorema del campionamento). In breve, 20mila per due fa 40mila. Un valore leggermente superiore (44100) permette però di avere un pò di tolleranza al rumore nella costruzione dei filtri digitali preposti al trattamento del segnale.

Questa discussione "qualitativa" è servita ad introdurre i concetti di base dell'audio digitale. Lo standard PCM, tipicamente usato per maneggiare un segnale audio in forma digitale non compressa, prevede proprio l'impiego di un rate di campionamento pari a 44100 campioni al secondo quantizzati a 16 bit per canale. Un formato audio non compresso molto noto agli utenti Windows è il WAV; WAV organizza i dati campionati in modo analogo al PCM. È facilmente calcolabile che un brano di 5 minuti trattato in questo modo produce un file di una cinquantina di Megabyte (10MByte/minuto). Negli hard disk commerciali di una decina di anni fa neanche ci sarebbe entrato tutto! L' aumento progressivo di potenza dei calcolatori ha però favorito negli ultimi decenni lo sviluppo e la diffusione dei sistemi di compressione dei dati audio che permettono, come vedremo, una forte riduzione delle dimensioni dei file.

Capitoli

  1. La compressione audio
  2. La compressione
  3. Classificazione degli algoritmi di compressione
  4. Timbro e Pitch
  5. Approcio psico-acustico alla compressione
  6. Il mascheramento audio
  7. L'mp3 in specifico
  8. L'mp3 in specifico
  9. Conclusione