# Codifica della voce e dell'audio/Codifica di sorgente

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
La voce umana naturale (fino a 12 kHz) dovrebbe essere rappresentata da un segnale digitale caratterizzato da un bit rate $R$ molto elevato:
    $R=N\times F_{c}=16\;{\text{bit/campione}}\times 24000\;{\text{Hz}}=384000\;{\text{b/s}}$
dove:
* la frequenza di campionamento $F_{c}$ è imposta dal teorema di Shannon:
    $F_{c}>2\times 12000=24000\;{\text{Hz}}$
* come numero di bit $N$ si può assumere quello adottato per i CD audio:
    $N=16\;{\text{bit/campione}}$
Un bit rate troppo elevato può essere un problema importante dal punto di vista di:
* capacità di trasmissione in rete:
** originariamente i modem potevano trasmettere centinaia/poche migliaia di bit al secondo;
** oggi è importante risparmiare banda sul backbone dove passano tante telefonate;
* potenza di elaborazione dei microprocessori.

## Bit rate tipici di segnali digitali non compressi

* musica non compressa (CD audio):
** mono:
    $R=16\;{\text{bit/campione}}\times 44100\;{\text{Hz}}\simeq 715\;{\text{kb/s}}$
** stereo:
    $R\simeq 1,4\;{\text{Mb/s}}$
* musica compressa (MP3):
    $R\leq 320\;{\text{kb/s}}$
* video a risoluzione 640×480:
    $R=640\;{\text{px}}\times 480\;{\text{px}}\times 25\;{\text{fps}}\times 24\;{\text{bpp}}\simeq 184\;{\text{Mb/s}}$
* voce in banda telefonica:
    $R=12\;{\text{bit/campione}}\times 8000\;{\text{Hz}}=96\;{\text{kb/s}}$

## Compressione

Il segnale digitale in uscita dal convertitore analogico/digitale, prima di essere trasmesso o archiviato, attraversa tipicamente due blocchi:
* codifica di sorgente: si occupa di codificare il segnale digitale in maniera compatta, al fine di ridurne il bit rate, tramite tecniche di compressione che conoscono il contenuto del segnale (ad es. MP3);
* codifica di canale: si occupa di codificare i bit da trasmettere in maniera robusta tramite tecniche di protezione (rilevamento e recupero) dagli errori che lavorano su sequenze di bit indipendentemente dal contenuto del segnale (ad es. codice di Hamming).

### Classificazione delle tecniche di compressione

* lossless (senza perdite) (es. RAW, FLAC, ZIP): il segnale decompresso $y\left[n\right]$ è identico al segnale originario $x\left[n\right]$ → i due segnali $y\left[n\right]$ e $x\left[n\right]$ sicuramente sono percettivamente indistinguibili indipendentemente dall'ascoltatore;
* lossy (con perdita) (es. MP3, JPEG, MPEG-2): il segnale decompresso $y\left[n\right]$ è diverso dal segnale originario $x\left[n\right]$ → i due segnali $y[n]$ e $x[n]$:
** devono essere almeno percettivamente simili secondo la statistica (cioè percepiti come simili dalla maggior parte delle persone);
** se il bit rate è sufficientemente elevato, possono essere percepiti come indistinguibili.
Confronto tra le tecniche di compressione lossless e lossy :
| | rapporto di compressione | formati comuni | applicazioni |
| lossless | da 2 a 3 volte | RAW, FLAC, ZIP | audiofili che desiderano la massima qualità immagazzinamento dei "master": si evitano compressioni in cascata applicazioni particolari: applicazioni legali, ambito medico, astronomia |
| lossy | da 10 a 100 volte | MP3, JPEG, MPEG-2 | memorizzazione su dischi piccoli trasmissione su canali con poca banda disponibile |

## Caratteristiche dei codificatori multimediali

* bit rate
* complessità
* ritardo
* robustezza
* qualità

### Bit rate

* constant bit rate (CBR): il bit rate è costante → la codifica è più semplice da implementare, ma meno efficiente;
* variable bit rate (VBR): il bit rate è variabile nel tempo:
** source-driven: il bit rate cambia in base alla variabilità del segnale (es. telefonata: voce/silenzio);
** network-driven: il bit rate cambia in base alla banda disponibile del canale (es. YouTube).

### Complessità

La complessità di un codificatore può essere quantificata in base a:
* numero di operazioni della CPU al secondo, espresso in Million Instructions Per Second (unità di misura indipendente dalla CPU);
* quantità di memoria RAM occupata durante l'esecuzione dell'algoritmo;
* quantità di memoria ROM richiesta per memorizzare il codice (ad es. tabelle di quantizzazione).

### Ritardo

Il ritardo di un codificatore è dato dalla somma di due componenti:
* ritardo computazionale: dipende dalle prestazioni della tecnologia (ad es. potenza della CPU) in uso, e può essere ridotto con hardware più potente;
* ritardo algoritmico: dipende dall'algoritmo per come è stato progettato, e non può essere ridotto se non modificando l'algoritmo (ad es. ritardo di bufferizzazione per algoritmi che lavorano su segmenti di campioni).

### Robustezza

La robustezza può essere intesa in due modi:
* robustezza ai segnali di ingresso: quanto un codificatore tarato per una specifica categoria di segnale è sensibile a un segnale diverso da quello atteso, ad esempio:
** musica invece di voce a un codificatore vocale;
** voce + rumore di fondo (es. finestrino aperto);
* robustezza agli errori di trasmissione: anche la codifica di sorgente si preoccupa di proteggere il bitstream compresso dagli errori comprimendo in modo robusto:
** robustezza agli errori su singoli bit;
** robustezza alle perdite di pacchetti (frame): ad esempio il codificatore ILBC di Skype fu progettato per Internet (rete IP con perdite).

### Qualità

L'elaborazione dei segnali multimediali guarda non tanto al rapporto segnale/rumore SNR, quanto alla percezione del segnale multimediale da parte dell'essere umano.
Definizione

#### percezione

    l'effetto di un segnale tenuto conto di tutto il processo di elaborazione umana (cervello incluso)

#### psico-acustica

    in ambito acustico, la disciplina che studia la percezione uditiva
La valutazione delle prestazioni di un algoritmo di compressione si basa principalmente sulla valutazione percettiva: si chiede a un numero statisticamente significativo di persone di valutare il risultato della decodifica.

#### Voce

La voce decodificata deve essere caratterizzata da:
* l'intelligibilità (indispensabile): capire la sequenza di fonemi che viene pronunciata dall'interlocutore;
* una sufficiente qualità (naturalezza): capire informazioni sul parlatore (come identità, sesso, età...).
Come misurare la naturalezza?
* ad ogni ascoltatore viene fatta ascoltare la voce decodificata e viene chiesto di esprimere un giudizio soggettivo da 1 (pessimo) a 5 (eccellente);
* si calcola il MOS che è la media di tutti i voti.
Il valore 4 del MOS corrisponde alla toll (= pedaggio) quality, ovvero alla qualità percepita come uguale a quella della telefonia analogica tradizionale e che la telefonia digitale deve avere come minimo perché la gente sia disposta ad acquistare il servizio. Esempi di codificatori che raggiungono la toll quality sono: PCM lineare, G.711, ADPCM G.726.
Per ottenere un risultato significativo dal punto di vista statistico, cioè affetto da un margine di errore sufficientemente piccolo ($\approx 0,1\;{\text{MOS}}$), occorre che:
* il campione di ascoltatori sia il più possibile rappresentativo del pubblico degli utenti di telefonia:
** il numero di ascoltatori deve essere significativo ($\approx 40\div 50$);
** il campione di ascoltatori deve essere il più possibile eterogeneo (ad es. età, sesso...);
* il campione di stimoli sia il più possibile rappresentativo del segnale:
** gli ascoltatori devono essere sottoposti a un insieme statisticamente rappresentativo di tutti gli stimoli possibili (ad es. voce maschile/femminile, lingue diverse...) (≈ centinaia).

#### Audio

Il campione di ascoltatori è composto da esperti (golden ears) in grado di compiere un'analisi critica.
L'obiettivo è raggiungere la trasparenza (indistinguibilità) percettiva: l'ascoltatore non riesce a distinguere l'originale dal risultato della decodifica → il campione di ascoltatori dà un voto statisticamente casuale (50%).

#### Misure oggettive

I test soggettivi:
* sono costosi e lenti perché coinvolgono un gran numero di persone;
* non sono completamente affidabili: sono basati sulla statistica.
Recentemente sono nate delle misure oggettive:
* SNR e derivati: sono tecniche rudimentali e poco utili, in quanto due segnali diversi possono suonare simili;
* tecniche oggettive di tipo percettivo (derivate dalla psico-acustica): sono in grado di simulare come il segnale verrà percepito dall'orecchio umano, ma sono usati solo per misure relative (cioè per confronti tra due algoritmi):
** voce: ITU PESQ;
** audio: ITU PEAQ.