Finora
abbiamo visto come si campiona e si converte un segnale da
analogico a digitale. In questa operazione viene inevitabilmente
introdotto del rumore, legato al fatto che l'approssimazione
della curva analogica originale tramite una spezzata non è
perfetta. Comunque, d'ora in avanti per noi il segnale da
considerare perfetto è quello di qualità CD, con passo di
campionamento a 44100 Hz e quantizzazione dei campioni a 16
bit ( I puristi lamenteranno che queste specifiche in realtà
lasciano ancora dei margini di miglioramento, e infatti in
futuro forse assisteremo a brani musicali campionati a 96
KHz con quantizzazioni a 32 bit. Chiaramente una tale risoluzione
genera una mole di dati enorme che solo l'impiego dei DVD
può gestire ). Nel campo dei segnali vocali (es: telefonate,
audioconferenza) le richieste in termini di frequenza di campionamento
e bit per campione sono più limitate di quelle sopra
elencate. Infatti la voce emette frequenze tipicamente più
basse di 4KHz e con dinamica limitata rispetto a quella di
uno strumento musicale, quindi un segnale vocale può
essere ricostruito con qualità adeguata campionando
a soli 8KHz con campioni da 13bit. Storicamente, una delle
prime tecniche di compressione è stata la quantizzazione
non lineare. Questa tecnica è tutt'ora utilizzata nella
telefonia fissa e consiste nell'applicare una scala logaritmica
in fase di campionamento e ricostruzione del segnale. Basandosi
su alcune proprietà della voce e dell'orecchio si privilegiano
i segnali a bassa ampiezza piuttosto che quelli ad elevata
ampiezza (provate ad urlare al telefono...) e si riesce ad
ottenere la stessa qualità dei 13bit menzionati sopra
con soli 8bit. Questa codifica a 8000 campioni al secondo
e 8bit per campione prende il nome di LogPCM o PCM
telefonico e richiede una banda "canonica" di
64Kbit/s (guarda caso la banda di una canale telefonico
ISDN) valore tipicamente usato come misura della banda necessaria
per un segnale vocale.
Classificazione degli algoritmi di compressione
L'obbiettivo
delle tecniche di compressione è ovviamente quello
di ridurre lo spazio necessario ad immagazzinare determinati
dati o la banda necessaria per trasmetterli. Una prima classificazione
delle tecniche di compressione distingue tra tecniche che
mantengono perfettamente inalterate le informazioni dopo la
compressione (tecniche lossless cioè senza perdita)
e tecniche che prevedono un certo degrado delle informazioni
(lossy). E' abbastanza ovvio che nel comprimere informazioni
come testi, documenti o programmi non ci si possa permettere
la perdita di nessun bit di informazione, percui dovremo utilizzare
necessariamente tecniche lossless come quelle adottate
dallo Zip. Nel caso dell' audio, delle immagini e dei filmati,
un certo livello di degradazione è un compromesso accettabile
per ridurre (e di molto) l'occupazione o la banda richiesta
dal file. Le tecniche di compressione audio che analizzeremo
sono infatti tutte di tipo lossy.
Le codifiche di compressione dell'audio sono numerose
ed utilizzano tecniche anche molto differenti l'una dall'altra.
Esistono però tre categorie principali: le codifiche
nel dominio del tempo, le codifiche per modelli e
le codifiche nel dominio delle frequenze. Generalmente
le prime due categorie di algoritmi vengono usate per comprimere
il segnale vocale mentre alla terza appartengono algoritmi
come MP3, WMA, ATRAC-3 e AAC ottimi
per la compressione della musica.
Codifiche
nel dominio del tempo
Si
tratta di algoritmo che elaborando il segnale campionato direttamente,
senza estrarre le informazioni spettrali(frequenze). L'obbiettivo
è quello di trovare correlazioni tra i campioni e/o
proprietà dalla sorgente e della destinazione che permettano
di ridurre il numero di bit usati per descrivere il valore
di un campione audio. Sono storicamente le prime ad essere
state elaborate, hanno bassa efficienza e sono state ampiamente
superate dai nuovi algoritmi. Le più importanti sono
il DPCM e l'ADPCM
DPCM
e ADPCM
La Differential Code Pulse Modulation è in
sostanza una PCM "truccata". Il punto è il seguente:
poichè la voce umana emette suoni che non passano da volumi
bassi a volumi alti o da frequenze basse a frequenze alte
in un tempo inferiore ad alcune decine di millisecondi (corrispondenti
quindi a centinaia di campioni registrati), posso pensare
di trasmettere non tanto il campione attuale, ma la differenza
fra il campione passato e quello attuale. Facciamo un esempio
per meglio comprendere il tutto: se il campione N ha ampiezza
pari a 100, il campione N+1 avrà ampiezza pari a 100, 101
o 99. Non potrà avere ampiezza pari a 200 perchè fra un
campione e l'altro ci passano solo poche centinaia di microsecondi
e la gola e le corde vocali hanno un tempo di rilassamento
molto maggiore. Quindi, anzichè trasmettere il valore 101
del campione N+1, trasmetto solo il valore +1. Il decoder
che riceve l'informazione vede quanto è il valore di N (es:
100), legge poi che il valore del campione N+1 è pari a
quello di N cui va sommato 1, e quindi assume che il valore
del campione N+1 è 101.
Utilizzando questo approccio sono necessari molti
meno bit per trasferire l'informazione poichè si trasmette
la sola differenza fra i campioni e non i valori effettivi
a 16 bit . Qual'è il problema? Questo sistema funziona bene
con la voce umana, che gode di certe proprietà, ma si presta
meno bene ad essere impiegato quando siano presenti anche
degli strumenti musicali.
Una tecnica molto simile al DPCM è quella Adaptative
Differential PCM, in cui cioè trasmetto sempre i bit
differenza, ma tenendo conto della "storia" dei bit passati.
Il meccanismo è molto più complesso poichè si cerca di capire
dove potrà andare l'onda cioè quali saranno i suoi campioni
futuri sulla base della storia di quelli passati. Il principio
è comunque lo stesso, cioè trasmettere l'informazione collegata
alle differenze fra i campioni, anzichè i valori effettivi
con un numero di bit che dipende dalle caratterisiche del
segnale nella porzione in esame (da cui il nome "adattivo").
Questa tecnica raggiunge un ratio di compressione di
1:2 rispetto all'originale non compresso quindi ancora
insufficiente per i nostri scopi.
Codifiche
per modelli
Le codifiche
per modelli sono tecniche legate ad una particolare sorgente
sonora (in questo caso la voce) che si tenta di emulare tramite
un modello più o meno semplificato. Le corde vocali
e la gola hanno delle ben precise caratteristiche fisiche,
il loro comportamento sarà quindi predicibile sulla
base di un modello. Queste codifiche rappresentano una scelta
ottimale per la compressione della voce, tanto che vengono
utilizzate nella telefonia mobile (GSM) e anche su
Internet. Le più famose sono LPC e il CELP.
LPC e CELP
La Linear Predictive Coding ['76] è una tecnica
utilizzata esclusivamente ai fini della compressione spinta
della voce (vocoder). LPC comprime così tanto che la voce
di qualsiasi persona finisce per assomigliare a quella prodotta
da un computer! Il vantaggio è un bit-rate bassissimo:
si può arrivare a soli 2.4 Kbit al secondo (fattore
di compressione: 1:26 !). Il funzionamento è a grandi
linee il seguente: si fa utilizzo di un modello per cui, riconosciuto
il tipo di elemento (una vocale, il silenzio, una consonante
etc.), si trasmette il codice associato prelevato da una tabella
di riferimento. Siccome con questo sistema molto spesso non
si capisce neanche l'identità dell'interlocutore, si è
sviluppato negli anni successivi il Code Excited Linear
Predictor (CELP) ['84] che fa uso della LPC ma migliora
un pò la qualità poichè trasmette anche l'informazione sull'errore
associato alla codifica LPC. La qualità è buona
e il bit-rate minimo raggiungibile risulta comunque molto
basso: 4.8Kbit al secondo (ratio 1:13). Questo tipo
di codifica è molto usata in vari ambiti: Nei telefonini
GSM sotto forma di EFR(Enhanced FullRate)
da 12.2Kbps e grazie alla sua flessibilità viene anche
utilizzata spesso nella trasmissione della voce via Internet.
(Audio-Videoconferenza e Voice over IP).
I contenuti
originali di Lithium.it, il marchio e il sito Lithium.it sono copyright
2001Fabio Sonnati.
Leggere attentamente le avvertenze legali. Tutti i diritti riservati.
La riproduzione anche parziale dei contenuti di questo sito è vietata.
Tutti i marchi registrati sono dei legittimi proprietari.