Codifica della voce e dell'audio/Tecniche CELP
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
[modifica | modifica sorgente]Negli anni '70 viene teorizzata la quantizzazione vettoriale (VQ):
- il quantizzatore scalare di ordine N trasforma 1 numero reale in uno dei indici, ciascuno lungo bit;
- il quantizzatore vettoriale di ordine N trasforma un vettore di numeri reali in uno dei indici, ciascuno lungo bit.
- Quantizzatore vettoriale di ordine 3
- un vettore contiene le tre coordinate di un punto nello spazio
- ognuno dei 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 quantizzatori scalari di ordine N in parallelo;
- − complessità: cresce esponenzialmente con la dimensionalità , poiché occorre calcolare la distanza euclidea in ogni dimensione.
Analisi per sintesi
[modifica | modifica sorgente]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 di 40 campioni (5 ms) del segnale in ingresso:
- per ogni forma d'onda nel catalogo:
- si produce la voce sintetica attraverso il filtro di sintesi a partire dalla forma d'onda corrente;
- si calcola l'errore 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 e ai coefficienti di predizione lineare ).
- 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):
- + 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
[modifica | modifica sorgente]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.
Nome | Anno | Bit rate | Qualità | |
---|---|---|---|---|
GSM-FR | RPE-LTP | anni '80 | 13 kb/s | MOS ≈ 3,5[1] |
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 |
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) |
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 | 8000 Hz | 16000 Hz |
larghezza di banda | 300-3400 Hz | 50-7000 Hz |
La ricerca si è progressivamente spenta.
GSM-FR
[modifica | modifica sorgente]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
[modifica | modifica sorgente]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
[modifica | modifica sorgente]- ↑ Un po' al di sotto della toll quality a causa di un piccolo fruscio tuttavia considerato all'epoca accettabile dagli utenti dei telefoni cellulari.