Vai al contenuto

Codifica della voce e dell'audio/Tecniche CELP

Wikibooks, manuali e libri di testo liberi.
Indice del libro

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]
Algoritmo ad anello chiuso dell'analisi per sintesi delle tecniche CELP.

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:

  1. per ogni forma d'onda nel catalogo:
    1. si produce la voce sintetica attraverso il filtro di sintesi a partire dalla forma d'onda corrente;
    2. si calcola l'errore tra la voce sintetica e la sequenza in ingresso;
  2. 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;
  3. 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.
Standard 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
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)
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.

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.

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.
  1. Un po' al di sotto della toll quality a causa di un piccolo fruscio tuttavia considerato all'epoca accettabile dagli utenti dei telefoni cellulari.