# Codifica della voce e dell'audio/Tecniche CELP

Codifica della voce e dell'audio
Copertina Tutti i moduli · Sviluppo
    CopertinaCodifica della voce e dell'audio/Copertina
* StoriaCodifica della voce e dell'audio/Storia
* Conversione analogico/digitaleCodifica della voce e dell'audio/Conversione analogico/digitale
* Codifica di sorgenteCodifica della voce e dell'audio/Codifica di sorgente
* Tecniche PCMCodifica della voce e dell'audio/Tecniche PCM
* Tecniche parametricheCodifica della voce e dell'audio/Tecniche parametriche
* Tecniche CELPCodifica della voce e dell'audio/Tecniche CELP
* Codifica dell'audioCodifica della voce e dell'audio/Codifica dell'audio
Modifica il sommario
Le codifiche parametriche ad anello aperto non sono in grado di raggiungere la toll quality: per migliorare la naturalezza non è sufficiente aumentare il bit rate a disposizione, ma occorre modificare l'architettura di base.
Negli anni '80 si studia come combinare insieme le tecniche PCM e le tecniche parametriche:
* codifiche PCM: seguono la forma d'onda → sono robuste ai segnali in ingresso;
* codifiche parametriche: il filtro di sintesi garantisce l'intelligibilità con pochi bit.

## Quantizzazione vettoriale

Negli anni '70 viene teorizzata la quantizzazione vettoriale (VQ):
* il quantizzatore scalare di ordine N trasforma 1 numero reale in uno dei $2^{N}$ indici, ciascuno lungo $N$ bit;
* il quantizzatore vettoriale di ordine N trasforma un vettore di $N$ numeri reali in uno dei $2^{N}$ indici, ciascuno lungo $N$ bit.

### Quantizzatore vettoriale di ordine 3

* un vettore contiene le tre coordinate di un punto nello spazio
* ognuno dei $2^{N}=8$ possibili indici è associato a un punto nello spazio
* dato un punto nello spazio in ingresso, il quantizzatore lo trasforma nell'indice associato al punto più vicino al punto dato

### Vantaggi/svantaggi

* + prestazioni: è stato dimostrato che, sotto certe condizioni, un quantizzatore vettoriale di ordine N produce un rapporto segnale/rumore SNR migliore di $N$ quantizzatori scalari di ordine N in parallelo;
* − complessità: cresce esponenzialmente con la dimensionalità $N$, poiché occorre calcolare la distanza euclidea in ogni dimensione.

## Analisi per sintesi

A metà anni '80 nasce l'idea di usare la quantizzazione vettoriale per fare codifica di forma d'onda a un bit rate più basso delle tecniche PCM: l'idea di base è quella di quantizzare il segnale in ingresso trasformando ogni sequenza di 40 campioni in un indice associato a una forma d'onda.
Il modello della laringe di LPC-10 viene sostituito da due cataloghi contenenti forme d'onda, ciascuna di durata 5 ms (40 campioni):
* catalogo di forme d'onda: contiene 1024 forme d'onda predefinite, ciascuna associata a un indice da 10 bit, che rappresentano la componente rumorosa;
* catalogo per ridondanza di lungo termine: contiene delle forme d'onda che rappresentano la componente periodica (viene sommata alla componente rumorosa quando il segnale ha delle componenti vocalizzate).

### Algoritmo ad anello chiuso (per forza bruta)

Per ogni sequenza $x[n]$ di 40 campioni (5 ms) del segnale in ingresso:
* per ogni forma d'onda nel catalogo:
** si produce la voce sintetica ${\hat {x}}[n]$ attraverso il filtro di sintesi a partire dalla forma d'onda corrente;
** si calcola l'errore $e[n]$ tra la voce sintetica e la sequenza in ingresso;
* si seleziona la forma d'onda nel catalogo che genera l'errore minimo, cioè che genera la sequenza di campioni più vicina alla sequenza in ingresso;
* si invia al decodificatore l'indice associato alla forma d'onda selezionata (insieme al gain $G$ e ai coefficienti di predizione lineare $\alpha _{i}$).

### Vantaggi/svantaggi

* + bit rate: abbatte il limite delle tecniche PCM, pur seguendo la forma d'onda (la forma d'onda ricostruita è simile alla forma d'onda originale):
    $R\sim 8\div 10\;{\text{kb/s}}$
* + naturalezza: la tecnica di analisi per sintesi raggiunge la toll quality;
* − complessità: è astronomica (~20 MIPS) poiché occorre calcolare 1024 errori ogni 5 ms.

## Standard CELP

A partire dalla fine degli anni '80, tutti gli standard a toll quality appartengono alla famiglia CELP.
Prima del 3G, esistevano diversi standard per la telefonia cellulare digitale commerciale:
* USA: erano in competizione tra loro gli standard CDMA e TDMA;
* Europa: è stato imposto un unico standard chiamato GSM.
Standard GSM :
| | Nome | Anno | Bit rate | Qualità |
| GSM-FR | RPE-LTP | anni '80 | 13 kb/s | MOS ≈ 3,5 |
| GSM-EFR | ACELP | 1995 | 12,2 kb/s | toll quality (MOS ≈ 4) |
| GSM-AMR | | ∼2000 | variabile tra 4,8 e 12,2 kb/s | toll quality |
Standard ITU :
| | Nome | Anno | Bit rate | Applicazioni |
| G.728 | LD-CELP | 1995 | 16 kb/s | poco usato |
| G.729 | CS-ACELP | 1998 | 8 kb/s | VoIP |
| G.4K | mai standardizzato (per motivi non tecnologici di brevetto) | mai standardizzato (per motivi non tecnologici di brevetto) | 4 kb/s | |
L'arrivo del 4G ha permesso di passare dalla voce in banda telefonica alla voce a larga banda (wideband):
| | voce in banda telefonica | voce a larga banda |
| frequenza di campionamento $F_{c}$ | 8000 Hz | 16000 Hz |
| larghezza di banda $B$ | 300-3400 Hz | 50-7000 Hz |
La ricerca si è progressivamente spenta.

### GSM-FR

Il GSM-FR fu il primo standard europeo per la telefonia cellulare digitale, quasi a toll quality, e venne pubblicato prima che lo sviluppo della tecnica CELP fosse stato portato a termine.
Un canale GSM full rate è ampio complessivamente 22,8 kb/s, ed è suddiviso in bit di voce e bit di correzione degli errori (FEC), usati dal decodificatore per rilevare e correggere gli errori causati dalla trasmissione su un canale radio (non è possibile reinviare il frame come nel TCP/IP).
L'ampiezza della suddivisione è stata stabilita prendendo come riferimento il canale tipico (C/I = 7 dB):
* FEC: 9,8 kb/s
* voce: 13 kb/s suddivisi in:
** bit molto importanti: sono protetti dalla FEC, e se è rilevato un errore residuo l'intero frame viene buttato (ripetendo il precedente);
** bit meno importanti: sono protetti dalla FEC, ma in caso di errori non butto il frame;
** bit poco importanti: non sono protetti dalla FEC.

### GSM-AMR

Il GSM-FR impone una suddivisione fissa tra voce e FEC, che è adatta al caso tipico ma non è adatta a situazioni particolari:
* nei pressi della cella telefonica: i bit di protezione degli errori non servono;
* al limite del raggio d'azione della cella telefonica: il codice di correzione degli errori esce dalla sua zona operativa e provoca ancora più errori in cascata.
Il GSM-AMR è un algoritmo a bit rate variabile di tipo network-driven, che permette di costruire un sistema voce/FEC adattativo alle condizioni istantanee del canale.
La suddivisione tra voce e FEC non è fissa, ma si può spostare per adattarsi alla potenza di ricezione del segnale come compromesso tra qualità della voce ed efficacia della FEC:
* quando il segnale è buono, il bit rate è più alto ma il segnale è meno protetto;
* quando il segnale è cattivo, il bit rate si abbassa ma il segnale è molto protetto.
Sono previsti 8 bit rate possibili:
* qualità minima: voce 4,8 kb/s, FEC 18 kb/s;
* qualità massima: voce 12,2 kb/s, FEC 9,8 kb/s (come il GSM-FR).
È meglio una voce codificata peggio ma ben protetta, o una voce codificata meglio ma soggetta a più errori?
* segnale buono: conviene migliorare la qualità di partenza del segnale vocale, anche se ci potrà essere qualche errore;
* segnale cattivo: conviene proteggere molto il segnale vocale e codificare una voce di minore qualità, piuttosto che avere una voce originariamente di alta qualità ma "bombardata" da errori.

## Note

* ↑ Un po' al di sotto della toll quality a causa di un piccolo fruscio tuttavia considerato all'epoca accettabile dagli utenti dei telefoni cellulari.