# Compressione audio digitale

In informatica, elettronica e telecomunicazioni la compressione audio digitale è una tecnica di elaborazione dati, attuata a mezzo di un codec audio, che permette di ridurre le dimensioni (anche di molto) di un file audio o la banda passante richiesta per una trasmissione audio su un canale di comunicazione.

## Descrizione

Un file è una sequenza di cifre binarie (bit) utilizzata come veicolo di informazione. Comprimere significa ridurre il numero delle cifre che costituiscono la sequenza mantenendo l'informazione inalterata o in un intorno dell'informazione originaria (ossia facendo in modo che la nuova informazione approssimi quella precedente).

### Motivazioni

I motivi della compressione sono:
* occupare minor spazio in fase di immagazzinamento cioè in memoria.
* impiegare minor tempo in fase di trasmissione dati.
Il costo da pagare è l'aumento dei tempi di lettura/scrittura legati rispettivamente a tempi di decompressione/compressione. Nel caso di file audio si ha un costo anche in termini di qualità dell'audio.

### Tipologie

Esistono due tipi di compressione:
* con perdita (lossy): quando l'informazione contenuta nel file compresso è minore di quella contenuta nel file di origine
* senza perdita (lossless): quando l'informazione contenuta nel file compresso è identica a quella contenuta nel file di origine
La prima permette compressioni maggiori, ma a scapito della qualità sonora.
Usando un algoritmo di compressione senza perdita, dal risultato della compressione si può riottenere tutta l'informazione originaria. In questo caso la riduzione massima generalmente ottenibile, utilizzando algoritmi studiati appositamente per l'audio è all'incirca del 60%, ma solo con alcuni tipi di suono. Si possono utilizzare gli stessi algoritmi generali di compressione (come per esempio ZIP o Gzip) ma i risultati in termine di riduzione sono inferiori.
Esempio: FLAC, APE, ALE

## Compressione con perdita
### Premessa

Dal risultato della compressione audio con perdita non si può più ottenere un suono identico all'originale ma la riduzione ottenibile è molto spinta: con rapporti di compressione di 10 a 1, il risultato è quasi indistinguibile dall'originale ma ci si può spingere anche oltre a discapito della qualità.
Gli studi di psicoacustica hanno permesso di accertare che l'uomo non è sensibile nello stesso modo a tutte le frequenze e che un suono ad alta intensità ne maschera uno con frequenza vicina ma intensità più bassa. Sfruttando queste ed altre considerazioni, si può pensare di eliminare l'informazione che non verrebbe comunque percepita ed ottenere quindi un buon rapporto di compressione.

### L'approccio Time/Frequency

I principali algoritmi di compressione lossy dei segnali audio si basano su tecniche di tipo time/frequency, per mezzo delle quali, il segnale audio viene preliminarmente scomposto in finestre temporali e processato da un banco di filtri digitali, al fine di rappresentarlo in molteplici sotto-bande nello spettro audio. Successivamente, ciascuna sotto-banda viene quantizzata considerando sia la potenza in essa convogliata (a maggior potenza corrisponde, come regola generale, una maggiore quantizzazione), sia la sensibilità dell'udito umano, nonché gli effetti psico-acustici. Uno dei principali limiti dell'approccio time/frequency risiede nella possibilità che le proprietà intrinseche del segnale audio da comprimere non siano stazionarie nella finestra temporale di analisi. In questo caso, il rumore di quantizzazione introdotto in ciascuna sotto-banda, distribuendosi sull'intera finestra temporale di analisi, può indurre dei gravi effetti distorsivi che deteriorano la qualità del segnale. Per ovviare a tale problema, in molti degli standard di uso comune, sono state adottate tecniche di adattamento dinamico della finestra temporale di analisi (in presenza di segnali non stazionari si riduce la dimensione della finestra di analisi) e di predizione nel dominio della frequenza.

### Alcuni esempi di codec lossy

* MP3 (MPEG-1 Layer III) è stato introdotto negli anni ottanta ed è il più popolare. Essendo il più antico, è anche il meno efficiente e spesso il peggiore in termini di qualità.
* Windows Media Audio (WMA) è molto diffuso sui sistemi Windows.
* Ogg Vorbis è un codec più efficiente dell'MP3 ed è open source (ossia liberamente distribuibile e modificabile).
* AAC è stato reso popolare dalla Apple. Apple's iTunes Music Store fa uso di file compressi con 128 Kbit/s CBR AAC e lo standard video MPEG4 (nonché MPEG2) raccomanda l'uso dell'AAC audio.
* Dolby Digital (AC3) può comprimere fino a 6 canali audio, di cui 5 a piena larghezza di banda ed uno per gli effetti a bassa frequenza (LFE), fino a 384 kbit/s. Viene utilizzato nei DVD, nei bluray e nel sistema americano ATSC DTV.
* MPC o Musepack è un formato opensource con una qualità maggiore dell'mp3 a parità di bitrate.
* Ogg Opus è un codec audio aperto e royalty-free, è stato sviluppato nel 2012 con il risultato della collaborazione di molte organizzazioni, come IETF, Mozilla, Microsoft (per Skype), Xiph.Org, Octasic, Broadcom e Google. Ha un ritardo algoritmico molto basso rispetto ai formati musicali più popolari come MP3, Vorbis e HE-AAC e può competere con loro in termini di rapporto tra qualità e velocità di trasmissione.

## Bitrate

I file multimediali sono per loro natura connessi al tempo che scorre. In altri termini ad ogni secondo è associato un certo contenuto informativo e quindi una certa sottosequenza di cifre binarie. Il numero di cifre binarie che compongono queste sottosequenze è detto bitrate. In altre parole il bitrate è il numero di cifre binarie impiegate per immagazzinare un secondo di informazione. Questo può essere costante per tutta la durata del file o variare all'interno di esso. Ad esempio i cd musicali vengono campionati (registrati) ad una frequenza pari a 44.100Hz. Da ciò si evince che ogni secondo si hanno 44.100 valori registrati dall'ipotetico microfono che vanno poi moltiplicati per i 2 canali del suono stereo che vanno a loro volta moltiplicati per 2 poiché la registrazione avviene a 16 bit (pari appunto a 2 byte). Quindi avremo:
La compressione, diminuendo la lunghezza globale del file, diminuirà di conseguenza la lunghezza media delle sottosequenze ossia diminuirà il bitrate medio. Il bitrate medio diventa dunque in questi casi l'indice dell'entità della compressione. Ad esempio se il file di origine possedesse un bitrate di 1411 Kbit/s e il file compresso possedesse un bitrate medio di 320 Kbit/s, allora avremmo ridotto di un fattore pari a circa 4.5.
Una compressione lossy effettua un compromesso fra la perdita d'informazione e la dimensione del file finale, mentre una lossless deve bilanciare la dimensione del file finale con i tempi di esecuzione dell'algoritmo.
Esistono anche codec in grado di utilizzare un approccio ibrido, utilizzando una compressione lossy e generando un blocco di correzione, in modo da ricostruire l'onda sonora senza alterazioni qualitative; attualmente i codec in grado di adottare anche questa strategia sono WavPack, OptimFrog DualStream e MPEG-4 SLS.