Vai al contenuto

Codifica della voce e dell'audio/Codifica di sorgente

Wikibooks, manuali e libri di testo liberi.
Indice del libro
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 molto elevato:

dove:

  • la frequenza di campionamento è imposta dal teorema di Shannon:
  • come numero di bit si può assumere quello adottato per i CD audio:

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:
    • stereo:
  • musica compressa (MP3):
  • video a risoluzione 640×480:
  • voce in banda telefonica:

Compressione

[modifica | modifica sorgente]

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

[modifica | modifica sorgente]
  • lossless (senza perdite) (es. RAW, FLAC, ZIP): il segnale decompresso è identico al segnale originario → i due segnali e sicuramente sono percettivamente indistinguibili indipendentemente dall'ascoltatore;
  • lossy (con perdita) (es. MP3, JPEG, MPEG-2): il segnale decompresso è diverso dal segnale originario → i due segnali e :
    • 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

[modifica | modifica sorgente]
  • 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à

[modifica | modifica sorgente]

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).

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).

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).

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.

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 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 (), occorre che:

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

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

[modifica | modifica sorgente]

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.