Audio Digitale e Compressione
Stavo scrivendo un nuovo articolo per la rubrica "A chi serve il blueray" quando mi sono accorto che per andare avanti mi serviva di spiegare un bel po' di cose, ed erano davvero troppe e anche un po' fuori luogo all'interno di un post che riguarda i videogiochi PS3, così ho deciso di metterlo un attimo da parte e scrivere questo post, nel quale parlerò un po' delle basi della compressione e dei formati audio esistenti.
Premetto subito che questa non vuol essere una bibbia completissima, ma giusto un'introduzione a questo mondo davvero complesso e vasto, di cui il web è già ben fornito.
Partiamo dal principio: il suono è un onda meccanica, un'oscillazione della pressione nata dalla vibrazione di un corpo, che si propaga per l'aria o un qualsiasi altro mezzo elastico.
Quando un suono viene captato da un microfono, questo lo trasforma in un segnale elettrico, i cui valori di tensione rappresentano la forma dell'onda originale. Questo segnale elettrico è continuo, sia nel tempo che nei valori che può assumere, ed è detto analogico.
In pratica, ad ogni istante di tempo è possibile misurare un preciso valore; gli istanti di tempo misurabili e i valori che può assumere sono infiniti.

Quando convertiamo questo segnale in digitale (digitalizzazione) non facciamo altro che andare a leggere ad intervalli regolari di tempo, il valore di questo segnale; una singola lettura è detta campione, mentre il numero delle letture che facciamo in un secondo è detto frequenza di campionamento.

In questo modo, come risultato delle conversione analogico\digitale otteniamo una serie di valori delle varie misurazioni fatte ad intervalli regolari di tempo. Con queste informazioni è possibile ricostruire un segnale che, anche se non è perfettamente identico all'originale, cerca di approssimarlo (come si vede in figura): più sarà alta la frequenza di campionamento e la precisione nella misurazione del valore, e tanto più il segnale digitale sarà simile all'originale analogico.
Se fino a qui è stato tutto chiaro, il peggio è passato
Con questa piccola introduzione già si spiega cosa vogliano dire i "44.100Hz 16bit stereo" che rappresentano la qualità audio cd: in ogni secondo di audio vengono fatti 44.100 campionamenti, e il valore di questi viene scritto in un numero a 16bit.
Da qui è facile anche calcolare quanto spazio occupa un secondo di audio: 44.100 x 16 = 705.600 bit = 88Kilobyte x 2 canali stereo = 176KB/s al secondo. Questo valore, ovvero lo spazio necessario per memorizzare un secondo, è detto bitrate.
Senza ulteriori manipolazioni, possiamo salvare questa lista di valori misurati ottenendo un file di audio non compresso (PCM), che solitamente abbiamo visto nei nostri pc con estensione WAV.
Ma l'audio non compresso, beh, ci occupa davvero molto spazio (circa 10MB al minuto) e come sappiamo un cd-audio di 700MB riesce a contenere solo 80 minuti. Abbiamo quindi il problema di dover ridurre un po' le dimensioni dei nostri file, dato che diventa problematico sia da archiviare, ma ancor più da trasmettere (ad esempio via internet).
La cosa più semplice che ci può venire in mente è quella di abbassare la frequenza di campionamento o ridurre il numero di bit utilizzati per rappresentare un singolo campione, ma questa scelta porta subito ad una drastica riduzione della qualità del suono, in quanto avremo molte meno informazioni per ricostruire il segnale originale.
Allora possiamo provare a comprimere il nostro file WAV con winzip o winrar, ma noteremo presto che difficilmente si raggiunge una compressione maggiore del 30-40%, ed è troppo poco.
Quindi, per poter ridurre il peso del nostro file cercando di mantenere la qualità originale, dobbiamo fare uso di codificatori\decdificatori (codec) che convertono il nostro audio in nuovi formati più o meno compressi.
I codec si dividono in due diverse famiglie: lossy e lossless.
Le compressioni lossless sono senza perdita di informazioni: quando andremo a decomprimere il nostro file, otterremo una copia identica all'originale, esattamente come succede con un file ZIP, ma dato che questi codec sono stati studiati proprio per la compressione audio, si riesce a raggiungere una compressione maggiore del semplice zip\rar, solitamente attorno al 50%. I codec lossless più famosi sono: FLAC, ALE, Monkey's Audio (APE).
Le compressioni lossy invece, riescono a farci risparmiare molto più spazio (fino al 90%) pagando però un prezzo: l'impossibilità di riottenere il segnale originale, perché il codec sceglie di tagliare fuori molte informazioni che ritiene "inutili".
Anche la perdita può far sembrare che questa sia la soluzione sbagliata al nostro problema, in realtà è quella che viene usato praticamente ovunque: gli MP3 fanno parte di questa categoria, assieme ai meno conosciuti AAC, OGG e WMA. Questo perchè entro certi limiti la perdita di informazioni ci è impercettibile e allo stesso tempo lo spazio risparmiato è tantissimo.
Per raggiungere questo risultato si fa uso della psicoacustica, ovvero lo studio della percezione soggettiva umana del suono, il cui concetto di base è semplice: l'orecchio umano non'è perfetto.
Noi percepiamo frequenze che variano dai 20Hz ai 20kHz (e con l'età il limite superiore tende ad abbassarsi), e in questo range ne sentiamo alcune meglio di altre. Inoltre ci sono casi in cui in presenza di suoni di frequenza simile, ma di diversa intensità, riusciamo a sentire solo quello più forte. Il grafico mostra a quali frequenze siamo più sensibili (la fascia intorno dai 500Hz ai 2500Hz è quella che comprende la voce umana):
Con queste e altre conoscenze, tanti studi e tante prove di ascolto, è stato possibile creare dei codificatori che effettuano dei tagli di tutto quello che il nostro orecchio non percepisce e distribuiscono più bit di informazioni nelle frequenze che precepiamo meglio, e meno in quello su cui siamo più carenti.
E con questi tagli riusciamo ad avere audio di buona qualità anche a solo 16KB/s, che corrispondono al classico MP3 128Kbps.
Ovviamente come detto, per raggiungere questo risultato molte informazioni vengono perse, ed un orecchio allenato riesce a percepire differenze dall'originale anche con un MP3 a 256Kbps o più, a patto però di avere anche un impianto audio o delle buone cuffie. Gli audiofili patiti della massima qualità, e dotati di un buon hardware, ovviamente ripiegheranno sempre sui formati lossless, per tutto il resto facciamo uso di formati lossy: gli mp3 nei nostri lettori portatili, le tracce audio dei dvd, l'audio dei filmati su internet, l'audio nei videogiochi, ecc ecc... Bene o male tutti abbiamo sentito almeno una volta un MP3, e abbiamo idea di come "suona", e credo che sia più che sufficiente per qualsiasi tipo di applicazione.
Gli altri formati lossy, come AAC, OGG, WMA, si basano sugli stessi principi: si distinguono più che altro per lievi differenze di qualità a diversi bitrate, o per il supporto all'audio multicanale, o per essere opensource... Ma alla fine se dovete scegliere il formato per la vostra musica l'unica cosa da fare secondo me è provare a convertire qualche brano e sentire con le proprie orecchie.
Prima di concludere, voglio spendere due parole su un alto formato lossy che però non fa uso della psicoacustica: l'ADPCM.
Quando un file viene compresso con questa codifica, invece di salvare un valore per ogni campione, si usano delle funzioni matematiche che cercano di predire il valore del campione attuale utilizzando quelli passati, e salvando solo 4bit di informazioni che contengono l'errore tra la predizione fatta e il valore reale.
Quando andremo quindi a riprodurre il file, verranno riapplicate le solite funzioni di predizione per ottenere un valore "previsto" il quale verrà ritoccato coi 4 bit di informazione per tornare al valore originale; quindi vediamo subito che la compressione in questo formato è di 4:1, per il semplice passaggio da 16bit a 4 bit per campione.
Fin qui sembra tutto perfetto, ma questo formato fa sempre parte della famiglia dei lossy, in quanto i 4 bit non sono sufficienti per salvare con precisione l'errore della predizione, e quindi anche in questo caso avremo sempre un'approssimazione che sprecialmente alle alte frequenze porterà ad avere dei disturbi.
Nonostante questo, ADPCM è stato ed è molto usato sia nella telefonia (e quindi lavorando con basse frequenze), sia in molti videogiochi (ed è qui che ci interessa): anche se il bitrate necessario è molto più elevato rispetto all'MP3 e simili, il carico di cpu richiesto per la riproduzione è molto inferiore. In particolare è stato usato tantissimo su PlayStation 2, la quale può riprodurre direttamente audio ADPCM senza scomodare la CPU, ma oggi con i processori ben più potenti che ci troviamo nei pc e nelle consoles, questo formato ha molto meno senso di essere utilizzato. Una curiosità su ADPCM: dato che, come per l'audio non compresso, vengono salvati su file una serie di numeri (di 4 bit, uno per campione), zippando un file si ottiene una buona compressione, simile a quella ottenuta zippando un PCM (30-40%), mentre provando a zippare un lossy non si guadagna praticamente nulla, perchè in questi formati i dati sono suddivisi in blocchi, ognuno dei quali contiene le informazioni per la ricostruzione di una serie di campioni.
Finish, qui concluso questa mia piccola introduzione all'audio digitale e ai codec più famosi; ho cercato di semplificare il tutto alle cose più essenziali, giusto per dare un'infarinatura, perché ci sarebbero tante cose su cui scrivere, ma se l'argomento vi ha incuriosi potete iniziare a spulciare su wiki o chiedere a zio Google.
Non dimenticatevi però quanto letto qua, perché sarà utile per il prossimo post della rubrica "A chi serve il bluray?" nel quale parlerò del secondo capitolo della saga "simbolo" PS3.

