Codifica della voce e dell'audio/Codifica di sorgente

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Codifica della voce e dell'audio

Schema a blocchi di un sistema di conversione A/D e D/A con compressore.

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×Fc=16bit/campione×24000Hz=384000b/s

dove:

  • la frequenza di campionamento Fc è imposta dal teorema di Shannon:
    Fc>2×12000=24000Hz
  • come numero di bit N si può assumere quello adottato per i CD audio:
    N=16bit/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=16bit/campione×44100Hz715kb/s
    • stereo:
      R1,4Mb/s
  • musica compressa (MP3):
    R320kb/s
  • video a risoluzione 640×480:
    R=640px×480px×25fps×24bpp184Mb/s
  • voce in banda telefonica:
    R=12bit/campione×8000Hz=96kb/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[n] è identico al segnale originario x[n] → i due segnali y[n] e x[n] sicuramente sono percettivamente indistinguibili indipendentemente dall'ascoltatore;
  • lossy (con perdita) (es. MP3, JPEG, MPEG-2): il segnale decompresso y[n] è diverso dal segnale originario x[n] → 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

  • 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 Template:Tooltip (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.

Template:Definizione

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?

  1. ad ogni ascoltatore viene fatta ascoltare la voce decodificata e viene chiesto di esprimere un giudizio soggettivo da 1 (pessimo) a 5 (eccellente);
  2. si calcola il Template:Tooltip 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 (0,1MOS), occorre che:

  • il campione di ascoltatori sia il più possibile rappresentativo del pubblico degli utenti di telefonia:
    • il numero di ascoltatori deve essere significativo (40÷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):