Vorrei sapere il principio di funzionamento dei dsp attualmente in commercio, e come posso comprimere un segnale audio di almeno un fattore 10 senza ritardare eccessivamente il suono che deve sembrare il tempo reale.

DSP sta per “Digital Signal Processor” e si tratta quindi di un “processore
digitale di segnale”. In pratica consiste in un dispositivo programmabile
in tutto analogo al processore centrale di un Personal Computer (la CPU),
specializzato per effettuare operazioni di trattamento di segnali.

Un tipico DSP ha una o più unità di calcolo, magari con
caratteristiche diverse (intero e/o floating point), alcuni Kbytes di memoria
interna, un bus accessibile dall’esterno per aggiungere memoria esterna
o altri dispositivi, alcune porte per la comunicazione con l’esterno.

Molte apparecchiature o dispositivi di uso comune contengono qualche
tipo di DSP con il relativo programma che implementa le funzioni desiderate.
Tipici esempi sono: le schede “sonore” dei PC, i telefoni cellulari, i
riproduttori di CD, etc.

In generale i programmi per un sistema DSP vengono messi a punto mediante
un “sistema di sviluppo” che gira su un Personal Computer e che comprende
compilatori, librerie, emulatori, etc. e successivamente scritti su una
memoria a sola lettura (PROM) che viene installata come memoria esterna
del DSP sul circuito.

Figura 1

Nella figura viene mostrato lo schema di principio di un apparecchio
per la compressione di segnali audio basato sull’uso di un DSP. La parte
tratteggiata rappresenta la componente software del sistema, ovvero il
programma che implementa l’algoritmo di compressione. L’uscita consiste
in una sequenza di dati digitali che possono essere registrati, trasmessi
o utilizzati in altro modo.

Come comprimere un file audio di almeno un fattore 10 senza che sia ritardato
troppo il segnale?

La domanda è uin pò vaga, ma leggo due spunti interessanti.

Innanzitutto chiariamo cosa voglia dire “comprimere” un file audio.

Normalmente la voce viene registrata (dopo essere convertita in segnale
elettrico da un microfono) in maniera digitale utilizzando un convertitore
A/D (Analogico/Digitale). Questa operazione effettua una quantizzazione
del segnale che può essere uniforme o seguire delle leggi logaritmiche
(conosciute come mu-law e A-law).

Perche’?

Il computer lavora con simboli binari, di solito si usano configurazioni
che comprendono 8 simboli (8 bit=1 byte), o 16 (word, anche se a volte
una word è a 32 bit).

Bisogna quindi associare un certo valore di tensioni ad un simbolo.

Ad esempio:

-2 ..-1 : 10

-1 .. 0 : 11

0 .. 1 : 00

1 .. 2 : 01

Questa è una quantizzazione uniforme, perché gli intervalli
hanno ampiezza uguale. Quando parliamo ad alta voce, però, potremmo
utilizzare degli intervalli più ampi, senza che l’orecchio (in fase
di decodifica D/A) se ne accorga, per cui, per valori alti di tensione
è possibile utilizzare dei valori più alti di ampiezza di
intervallo (quantizzazioni non uniformi).

Si è visto sperimentalmente che per l’intelligibilità
delle parole e per il riconoscimento del parlatore (qualità telefonica)
sarebbero necessari 12 bit utilizzando la quantizzazione uniforme e solo
8 utilizzando quella non uniforme (mu-law o A-law).

Questo risparmio è già un tipo di compressione, che però
è applicabile solo all’esempio della voce.

Come ridurre ulteriormente?

Bene, si può passare a tecniche di codifica differenziali (invece
di codificare il valore di tensione, codifichiamo la differenza tra essi,
ottenendo un altro piccolo risparmio, perché le differenze tra un
campione e l’altro variano in pochi intervalli, quindi sono necessari meno
bit), oppure ad algoritmi di codifica speciali, conosciuti come LVQ (utilizzato
nel Vocoder) oppure LPC (utilizzati nei telefoni cellulari), sempre che
non si scelga di utilizzare algoritmi di compressione standard (utlizzati
nei noti ZIP, ARJ, e così via), che però hanno un “piccolo”
problema: la perdita di un solo bit (cosa possibile nelle trasmissioni
telefoniche) può comportare l’inutilizzo dell’intero file.

C’è da affrontare un ulteriore problema: volendo trasmettere
la voce su Internet (in tempo reale, ovvero come se si stesse al telefono)
c’è il rischio che i pacchetti di campioni non arrivino nello stesso
ordine, per cui non siamo sicuri di avere una qualità accettabile.
I ritardi di alcuni pacchetti comportano una scarsa intelligibilità
nonché un enorme fastidio.

Ecco perché Internet Phone ancora non è pronto per rivoluzionare
il mercato delle comunicazioni…

Due ultime parole sugli algoritmi citati

LPC

Linear Prediction Coefficent.

E’ un metodo di codifica che consiste nel ricavare alcune caratteristiche
del segnale voce, che si possono differenziare in: segnale sonoro (tipico
delle vocali) oppure no, atteggiamento della bocca (poco aperta, chiusa,…),
silenzio, altre caratteristiche dipendenti dal parlatore.

Comprendiamo subito che se il parlatore è sempre lo stesso, possiamo
trasmettere una sola volta le sue caratteristiche, o, supponendo che esso
possa cambiare durante la conversazione, certamente non avverrà
più volte in un secondo! Questo consente già un ottimo risparmio.

Nei telefoni GSM viene anche applicata, alle restanti caratteristiche
la LVQ.

LVQ

Learning Vector Quantization.

E’ un metodo largamente utilizzato quando abbiamo dei valori che risultano
essere delle piccole variazioni rispetto ad un set di valori fissi, come
ad esempio sfumature di alcuni colori. Se non fossimo interessati alle
sfumature (perdendo quindi un pò della qualità) potremmo
codificare il colore base, risparmiando quindi diversi codici (e quindi
“comprimendo”).

Mediante tecniche statistiche è possibile ricavare i valori
base, per poi effettuare una compressione che perda la minore qualità
possibile.

E’ inoltre possibile determinare il numero minimo/massimo di codici
in modo da fissare la minima qualità e la massima dimensione media
del file audio.

Queste tecniche permettono, accettando un pò di perdita della
qualità, di ottenere compressioni anche superiori a 10.

Per quanto concerne la velocità, alcuni DSP implementano gli
algoritmi mediante alcuni circuiti specializzati, assicurando quindi un
ritardo compatibile con i fastidi all’orecchio sopra accennati.