Capitolo 12: Codifica di sorgente multimediale Su  Capitolo 12: Codifica di sorgente multimediale Sezione 12.2: Codifica di immagine 

12.1  Codifica audio

Al § 4.2.1.1↑ abbiamo svolto una valutazione approssimata della distorsione introdotta dal processo di quantizzazione di segnale audio, ricavando che l’utilizzo di M bit/campione si traduce in SNRq(M)|dB≃6⋅M dB. Quindi, al § 4.2.2↑ si è mostrato come adottando una caratteristica di quantizzazione logaritmica anziché lineare, ci si può adattare meglio alla effettiva densità di probabilità del segnale vocale, rendendo inoltre SNRq relativamente poco sensibile alla sua effettiva dinamica, dando luogo alla cosiddetta codifica pcm con legge A o legge μ, standardizzata nel 1988 da itu-t come G.711,[498] [498] http://www.itu.int/rec/T-REC-G.711/e. Mentre questa costituisce un formato universale di scambio permettendo la compatibilità tra dispositivi e tecnologie, nel seguito sono state sviluppate diverse tecniche alternative[499]  [499] Una raccolta di riferimenti a risorse relative a codec audio orientati alle applicazioni multimediali può essere trovata presso http://labtel.ing.uniroma1.it/codecs, capaci di offrire la stessa (o migliore) qualità di ascolto con velocità di trasmissione contenute, non solo per segnali vocali in banda telefonica, ma anche per segnali a banda larga, musicali, e multicanale, di cui tentiamo ora una sommaria rassegna.
Codec audio Differential PCM o dpcm
Figura 12.1 Codec audio Differential PCM o dpcm

12.1.1  Codifica di forma d’onda

Questa classe di codificatori opera esclusivamente nel dominio del tempo, agendo campione per campione, e ottiene una qualità comparabile o superiore a quella del pcm sfruttando le caratteristiche di memoria presenti nel segnale, e/o adattando alcuni parametri di funzionamento alle caratteristiche tempo varianti del segnale.

12.1.1.1  DPCM o PCM Differenziale

La prima variazione rispetto al pcm è stata quella di applicare il principio della codifica predittiva (pag. 1↑), semplicemente adottando il precedente campione di ingresso come predizione di quello successivo. Il corrispondente schema di elaborazione è mostrato in fig. 12.1↑, ed il suo funzionamento è suddiviso in due fas come rappresentato a lato: nella
figure ae-1-dpcm-b.png
prima (T0) il codificatore sottrae il campione precedente (all’inizio nullo) all’attuale, e nella seconda (T1) questa differenza è risommata al valore di differenza precedente (all’inizio nullo) in modo da ri-calcolare il valore attuale, e salvarlo nel registro di memoria. Il segnale differenza è caratterizzato da valori di ampiezza ridotti rispetto all’originale, e può essere codificato con 7 bit/campione, producendo ora una velocità per la qualità telefonica di 56 kbps. Il decodificatore si limita quindi a sommare alla differenza ricevuta il valore ricostruito del campione precedente, ed effettuare l’operazione di restituzione analogica. Osserviamo che il codificatore calcola il valore precedente mediante un circuito identico a quello presente al decodificatore, e per questo l’operazione è perfettamente invertibile.

12.1.1.2  ADPCM o DPCM Adattivo

Questo metodo differisce dal precedente per due aspetti: da un lato il processo di predizione tiene conto di più di un campione passato e non di uno solo come nel dpcm, come descritto in fig. 12.3↓
Codec dpcm con predittore a tre coefficienti costanti
Figura 12.3 Codec dpcm con predittore a tre coefficienti costanti
in cui è mostrato un predittore del terzo ordine che in pratica consiste in un filtro trasversale i cui coefficienti sono fissati in base alle caratteristiche statistiche medie del segnale vocale. Il secondo aspetto è che ora il quantizzatore modifica nel tempo la propria dinamica di azione (da cui il termine adattativo, o adattivo) in base ad una stima della dinamica del segnale.
Nel lato sinistro della fig. 12.4↑ è mostrata una caratteristica di quantizzazione uniforme operante su di una dinamica di ingresso φxσ̂x, con φx > 1 scelto in modo da rendere trascurabile la probabilità che un valore di ingresso troppo elevato determini la saturazione del quantizzatore.
figure dpcm-q(x).jpg Dinamica di quantizzazione e sua stima diretta o backward

Figura 12.4 Dinamica di quantizzazione e sua stima diretta o backward - tratto da http://cnx.org/content/m32074/latest/
Utilizzando una stima a breve termine della varianza σ̂2x calcolata sugli ultimi campioni di segnale (a media nulla), ossia ad es. calcolando σ̂2x(n) = (1)/(N)Ni  = 1x2(n − i), si possono rendere gli intervalli di decisione Δ piccoli nelle fasi di segnale piccolo, in modo da mantenere l’SNR costante anche per segnali con ampiezze molto variabili. Inoltre, è possibile omettere la trasmissione della stima di varianza se quest’ultima è calcolata in modalità backward, ossia a partire dai valori y(n) = Q[x(n)], dato che la stessa operazione è eseguibile in modo indipendente anche dal lato del decodificatore. La stima della varianza è ulteriormente semplificata se realizzata mediante una formula ricursiva, ossia
σ̂2x(n) = ασ̂2x(n − 1) +  (1 − α)y2(n)
il cui risultato è mostrato in fig. 12.5↓, dove la linea tratteggiata rappresenta il valore istantaneo di y2(n), mentre quella continua mostra i valori di σ̂2x(n) ottenuti in modo ricursivo.
Stima ricursiva backward della varianza,
Figura 12.5 Stima ricursiva backward della varianza, confrontata con i valori di y2(n), per α  = 0.9
Infine, la fig. 12.6↓ mostra i due estremi del codec adpcm, che rimangono sincronizzati anche nel caso di saturazione del quantizzatore adattativo.
Architettura di un codec adpcm
Figura 12.6 Architettura di un codec adpcm
Il miglioramento della qualità ottenibile ha determinato la possibilità di ridurre il numero di bit (e di conseguenza di livelli) del quantizzatore a 5, 4, 3, 2 bit/campione, a cui corrispondono rispettivamente velocità di codifica di 40, 32, 24, 16 kbps. Questi sono i valori a cui si riferisce lo standard itu-t G.721, successivamente confluito nel G.726.

12.1.1.3  Codifica per sottobande

Anche la raccomandazione G.722 è basata sulla codifica adpcm, ma applicata ad un segnale con una banda audio più larga, riproducendo correttamente frequenze fino a 7 KHz. Ciò avviene dopo aver suddiviso le componenti frequenziali del segnale in due sottobande, come mostrato in fig. 12.7↓, mediante una coppia di filtri passa-basso e passa-alto con comune frequenza di taglio di 3.5 KHz. Il canale relativo alla semi banda superiore è quindi campionato a frequenza di 16 kHz, mentre l’altro è praticamente equivalente al segnale in banda telefonica preso in esame fino ad ora. Per entrambi i canali è applicata la codifica adpcm, ma le velocità dei due sono impostate in modo differente, dando più importanza alla componente di bassa frequenza, percettivamente più rilevante: ad esempio, si può scegliere di assegnare 16 kbps alle alte frequenze e 48 alle basse, ottenendo un totale di 64 kbps per una qualità risultante migliore del G.711, in quanto ora si opera su di un segnale a larga banda, con risultati idonei ad applicazioni come la videoconferenza.
Architettura di un codec adpcm a sottobande
Figura 12.7 Architettura di un codec adpcm a sottobande
Lo stesso schema di codifica per sottobande più adpcm è proposto anche dallo standard G.726, ma applicato ad un segnale a qualità telefonica, offrendo le velocità di 40, 32, 24 e 16 kbps.

12.1.2  Codifica basata su modello

I metodi fin qui discussi non tengono particolarmente conto della natura del segnale da codificare. Restringendo viceversa il campo al solo caso di segnale vocale, le conoscenze relative alla sua particolare modalità di produzione possono essere usate per ridurre le informazioni da trasmettere, costituite ora dai parametri che caratterizzano un suo modello di generazione. Essendo questo il dominio delle scienze linguistiche e fonetiche, svolgiamo una piccola digressione in tal senso.

12.1.2.1  Produzione del segnale vocale

L’apparato fonatorio viene idealizzato per mezzo del cosiddetto modello a tubi (vedi fig. 12.8↓),
Rappresentazione schematica del tratto vocale modello a tubi del tratto vocale

Figura 12.8 Rappresentazione schematica del tratto vocale e relativo modello a tubi
in cui sia il tratto vocale (compreso tra le corde vocali e le labbra) che il tratto nasale (dal velo alle narici) sono pensati come una concatenazione di tubi di diversa sezione. Nei suoni vocalici la muscolatura della laringe determina la chiusura periodica delle corde vocali, interrompendo il flusso d’aria che le attraversa, e dando origine ad un segnale di eccitazione anch’esso periodico detto onda glottale, la cui frequenza è detta pitch[500] [500] http://en.wikipedia.org/wiki/Pitch_accent_(intonation); la differenza di area delle diverse sezioni del tratto vocale provoca un disadattamento di impedenza acustica[501] [501] Si applica in pratica la stessa teoria valida per le linee elettriche, in cui al posto di tensione e corrente, ora si considerano rispettivamente pressione p e velocità u e la conseguente formazione di onde riflesse (vedi fig. 12.9↓)
Natura delle risonanze del tratto vocale effetto filtrante sull’onda glottale

Figura 12.9 Natura delle risonanze del tratto vocale e loro effetto filtrante sull’onda glottale
, che per lunghezze d’onda in relazione intera con la lunghezza del tratto vocale, determinano fenomeni di onde stazionarie, ovvero di risonanze[502] [502] Si tratta di un fenomeno in qualche modo simile a quello che si verifica soffiando in una bottiglia, e producendo un suono che dipende dalla dimensione della stessa., le cui frequenze sono indicate in fonetica come formanti. La sussistenza di tali risonanze produce un effetto filtrante che modifica lo spettro dell’onda glottale, producendo così il timbro corrispondente ai diversi suoni della lingua[503]  [503] I diversi suoni vocalici e/o consonantici (detti fonemi) sono prodotti mediante diverse posture articolatorie (la posizione di lingua, mascella e labbra), ovvero diversi profili d’area del tratto vocale, nonché l’attivazione o meno del tratto nasale. Pertanto ai diversi fonemi corrispondono differenti frequenze formanti, e dunque una diversa risposta in frequenza.. Il tratto vocale termina quindi con l’apertura delle labbra, che nel modello a tubi corrisponde ad una impedenza di radiazione che produce un effetto di derivata, e dunque un’enfasi delle alte frequenze per lo spettro complessivo del parlato. Infine, il modello si assume valido anche per i suoni fricativi, prodotti anziché mediante le corde vocali, mediante una occlusione che causa una turbolenza nel flusso d’aria.
Caratteristiche tempo-frequenza del segnale vocale
La parte sinistra di fig. 12.10↓ mostra la forma d’onda relativa alla frase inglese “should we chase” (dovremmo inseguire?) assieme alla relativa trascrizione fonetica[504]  [504] I simboli usati sono noti come arphabet, vedi http://en.wikipedia.org/wiki/Arpabet, e la pronuncia dovrebbe essere qualcosa del tipo sciuduiceis., mettendone in luce il carattere quasi periodico in corrispondenza delle vocali e quello tipo rumore per le consonanti, nonché la diversa durata dei vari suoni, l’assenza di confini temporali precisi tra gli stessi, e la diminuzione del periodo di pitch a fine frase, corrispondente all’intonazione crescente tipica di una frase interrogativa. In particolare, notiamo come per i suoni vocalici i singoli periodi di pitch siano caratterizzati da una brusca discontinuità prodotta dall’onda glottale, seguita da oscillazioni smorzate legate alle risonanze del tratto vocale.
segnale vocale spettrogramma di segnale vocale

Figura 12.10 Forma d’onda e spettrogramma per la frase should we chase
Il segnale viene quindi campionato a 10 KHz e suddiviso in finestre di analisi, per le quali vengono calcolate delle dft, la cui densità di energia in dB è riprodotta in verticale mediante una scala cromatica come mostrato nei sonogrammi[505]  [505] Tratti da https://books.google.it/books?id=Z6Otr8Hj1WsC presenti al lato destro di fig. 12.10↑, che permettono di valutarne la variabilità temporale delle caratteristiche spettrali. Il differente aspetto dei due diagrammi è dovuto alla diversa lunghezza di finestra, pari rispettivamente a 10 e 40 msec per il grafico superiore ed inferiore[506] [506] Una finestra di 10 msec ha durata comparabile con il periodo di pitch, e ciò produce l’effetto a striature verticali del primo diagramma, meno pronunciato verso la fine, dove il pitch è più elevato. Una finestra di 40 msec si estende su più periodi di pitch, e determina una migliore risoluzione in frequenza, cosicché nel diagramma inferiore si possono notare delle striature orizzontali che corrispondono alle armoniche della frequenza di pitch.. In entrambe le rappresentazioni sono ben evidenti le traiettorie delle formanti, che evolvono in modo continuo, coerentemente con la velocità di articolazione del parlante.

12.1.2.2  Codifica a predizione lineare - LPC

Il modello di produzione e le caratteristiche illustrate portano a formulare un processo di codifica basato sulla suddivisione del segnale vocale in intervalli (o finestre di analisi) di estensione tra i 10 ed i 30 msec, durante i quali il segnale può essere considerato praticamente stazionario[507] [507] La durata di una sillaba può estendersi da 10-15 msec per le vocali ridotte, fino a più di 100 msec per quelle accentate., e su tali finestre condurre una analisi (o stima) dei parametri del modello, che sono
e quindi trasmettere questi valori, in modo che in ricezione sia possibile riprodurre un segnale simile all’originale mediante un decodificatore del tipo illustrato in fig. 12.11↓.
Schema di codificatore e decodificatore lpc
Figura 12.11 Schema di codificatore e decodificatore lpc
In particolare, il modello a tubi (e quindi basato sulle risonanze) del tratto vocale si presta a considerare un filtro di sintesi di tipo numerico e ricursivo, ossia che calcola il valore dei campioni di uscita yn a partire da una combinazione lineare di p campioni passati n = pi = 1aiyn  − i, più un errore di predizione en che rappresenta il processo di eccitazione, ovvero
(12.34) yn  = n + en  = pi = 1aiyn  − i + en
Per ogni finestra di analisi, i coefficienti ai (o coefficienti lpc del predittore di ordine p) si ottengono come quelli che rendono minimo il valore atteso dell’errore quadratico E{e2n}  = E{(yn  − pi = 1aiyn  − i)2 (ovvero, l’energia dell’errore), e sono individuati eguagliando a zero l’espressione delle sue derivate parziali rispetto ai coefficienti aj: scriviamo dunque
()/(aj)E{(yn  − pi = 1aiyn  − i)2}  = 2E{(yn  − pi = 1aiyn  − i)yn  − j} = 0
da cui si ottiene
(12.35) E{ynyn  − j} = pi = 1aiE{yn − iyn  − j}
Il valore atteso E{ynyn  − j} è quindi stimato[508] [508] Sottintendendo una ipotesi di stazionarietà ed ergodicità non vera, ma molto comoda per arrivare ad un risultato. a partire dai campioni temporali presenti nella finestra di analisi, ovvero
(12.36) E{yn − iyn  − j} Ryy(|i  − j|) e   ponendok = |i  − j|  =  Ryy(k) = N − kn = 1ynyn  + k
dove l’estremo superiore della sommatoria varia in modo da includere solo i campioni effettivamente presenti nella finestra di analisi[509]  [509] La (12.36↑) è effettivamente una stima della autocorrelazione del segnale a durata limitata che ricade nella finestra di segnale, mentre l’inclusione nella sommatoria di un numero di termini pari al numero di campioni disponibili porta ad un diverso tipo di risultato, detto metodo della covarianza, ed un diverso modo di risolvere il sistema (12.37↓).. La (12.36↑) permette di riscrivere (12.35↑) come
Ryy(j) = pi  = 1aiRyy(|i − j|)
che valutata per j = 1, ⋯, p individua un sistema di p equazioni[510] [510] dette di Yule-Walker. in p incognite
(12.37) R(1) R(2) R(p)  =  R(0) R(1) R(p − 1) R(1) R(0) R(1) R(p  − 2) R(p  − 1) R(p − 2) R(0) a1 a2 ap
che può essere risolto nei termini dei coefficienti ai mediante metodi particolarmente efficienti[511]  [511]  In base alle assunzioni adottate, Ryy(j) risulta una funzione pari dell’indice j, e la corrispondente matrice dei coefficienti viene detta di Toeplix, consentendone l’inversione mediante il metodo di Levinson-Durbin (vedi http://en.wikipedia.org/wiki/Levinson_recursion), che presenta una complessità O(n2) anziché O(n3), come sarebbe necessario per invertire la matrice dei coefficienti.; ed i coefficienti utilizzati dal decodificatore per applicare la (12.34↑).
Il filtro trasversale che esegue il calcolo n  = pi = 1aiyn  − i è indicato come predittore, ed associato ad un polinomio[512] [512] Una breve analisi della relazione tra dft e trasformata zeta è svolta al § 4.4.1↑. P(z) = pi  = 1aiz  − i; viceversa il filtro fir che valuta l’errore di predizione (o residuo) en  = yn − pi  = 1aiyn −  i è indicato come filtro inverso o sbiancante, viene associato al polinomio A(z) = 1 −  P(z), ed è mostrato nel lato sinistro della fig. 12.12↑. Indicando ora con Gun una codifica del residuo en, il segnale di partenza può essere (quasi) ri-ottenuto come mostrato nella parte destra della fig. 12.12↑, ossia facendo passare un attraverso il filtro iir H(z) = (1)/(A(z)) = (1)/(1 − P(z)).
Filtro predittore, filtro inverso associato, e filtro di sintesi lpc
Figura 12.12 Filtro predittore, filtro inverso associato, e filtro di sintesi lpc
Dato che, in base a considerazioni che non svolgiamo, en risulta possedere una densità spettrale bianca, |H(z)|2 (calcolato per z = eiω) rappresenta una vera e propria stima spettrale del segnale di partenza, come mostrato in fig. 12.13↓ per diversi valori di p, verificando che per suoni vocalici si ottengono risultati accettabili già per valori di p tra 8 e 14, mentre per le fricative l’ordine può essere ancora inferiore.
Approssimazione spettrale LPC per diversi ordini di predizione
Figura 12.13 Approssimazione spettrale LPC per diversi ordini di predizione
Stima del periodo di pitch
Resta ora da illustrare il modo di decidere se la finestra di analisi contenga un suono sordo o sonoro, e nel secondo caso, il suo periodo. Osserviamo che in media la frequenza di pitch risulta pari a circa 120 e 210 Hz nel caso rispettivamente di voci maschili e femminili, con una estensione che varia approssimativamente da metà al doppio del pitch medio[513] [513] Il pitch varia durante la pronuncia di una frase in accordo alla sua semantica, alla lingua, ed all’enfasi emotiva impressa dal parlatore. Da un punto di vista musicale, la dinamica dei valori (da metà al doppio) si estende quindi su di un intervallo di due ottave. L’intera gamma dei registri dell’opera si differenzia per 22 semitoni, dal Mi2 del basso al Do4 del soprano, ovvero un rapporto di frequenze pari a 3,6.. La stima del periodo di pitch può essere realizzata a partire dalla funzione di autocorrelazione a breve termine (12.36↑), mostrata nella colonna di destra della figura seguente, a fianco delle finestre di segnale su cui è stata calcolata[514]  [514] In realtà prima del calcolo della autocorrelazione, il segmento di segnale è stato moltiplicato per una finestra di Hamming, che provoca lo smussamento visibile ai bordi., per un suono vocalico (sopra) e fricativo
stima del pitch
(sotto). Come evidente, nel caso del suono vocalico l’autocorrelazione presenta un primo picco a 9 msec ed un secondo a 18 msec, corrispondenti al periodo di pitch ed al suo doppio; viceversa nel caso del suono simile al rumore, non sono visibili picchi, come da aspettarsi nel caso di una segnale incorrelato. Pertanto, l’autocorrelazione può essere usata per indicare la presenza o meno di un suono vocalico, e nel caso affermativo, stimare il suo pitch.
Nella pratica per i suoni sordi si ottengono buoni risultati di sintesi usando come eccitazione un vero e proprio rumore bianco; d’altra parte, per i suoni sonori l’uso di forme d’onda impulsive con periodo pari al pitch stimato, sebbene capaci di produrre un bit rate riducibile fino a 2.4 kbps, non fornisce risultati particolarmente utilizzabili, producendo un voce piuttosto robotica. Per questo motivo, si sono sviluppate le tecniche seguenti.

12.1.2.3  Predizione lineare ad eccitazione residuale - RELP

Per ovviare alla sovra-semplificazione dello schema di sintesi riportato in fig. 12.11↑, dopo aver svolto l’analisi spettrale lpc, il residuo di predizione relativo alla finestra di analisi viene effettivamente calcolato, e applicata una tecnica di codifica di forma d’onda[515] [515] In questo modo si evita anche di dover operare una esplicita decisione sonoro/sordo, visto che in realtà le due fonti di eccitazione posso essere presenti contemporaneamente, come per i cosiddetti suoni affricati.: questo modo di operare è indicato come codifica relp (Residual Excited LP).
Analysis by synthesis - ABS
Anziché calcolare il residuo di predizione, codificarlo, e trasmetterlo in tale forma, la tecnica di analisi via sintesi adotta una tecnica ad anello chiuso, cercando di trovare quale segnale di eccitazione[516] [516] Generato per tentativi, oppure da scegliere in un dizionario di sequenze di eccitazione già codificate. fornire al filtro di sintesi in modo che il risultato sia quanto più possibile simile al segnale originale (vedi fig. 12.15↑); quindi, i parametri del filtro di sintesi e della eccitazione sono trasmessi al decoder. La funzione di minimizzazione opera dunque una vera e propria ricerca tra i possibili segnali di eccitazione.
Schema di codifica vocale abs - Analysis by Synthesis
Figura 12.15 Schema di codifica vocale abs - Analysis by Synthesis
Filtraggio percettivo
pesatura percettiva dell’errore di predizione
Figura 12.16 Spettro LPC vocalico e relativo filtro di pesatura percettiva dell’errore di predizione
Sempre in fig. 12.15↑ si mostra come il processo di minimizzazione prende in considerazione un segnale di errore ottenuto filtrando l’errore effettivo mediante un filtro di pesatura percettiva, il cui andamento frequenziale è sostanzialmente reciproco rispetto a quello stimato del segnale[517] [517] Il filtro di pesatura percettiva si ottiene a partire dagli stessi coefficienti di predizione ai che descrivono l’andamento spettrale della finestra di segnale, definendo la sua trasformata zeta come W(z) =  (A(zα1))/(A(zα2))  = (H(zα2))/(H(zα1)) in cui, se α1, 2 sono numeri reali, i poli di W(z) si trovano alle stesse frequenze di quelli di H(z) ma con raggio α2 volte maggiore, così come gli zeri di W(z) hanno modulo α1 volte maggiore. Scegliendo 0 < α1,  2 < 1 e α1  > α2 per la W(z) si ottiene l’effetto desiderato, e mostrato in fig. 12.16↑ (vedi fig. 12.16↑), in modo da attenuare la rilevanza dell’errore di predizione nelle regioni dove c’è più segnale[518]  [518] La procedura di minimizzazione determina una eccitazione tale da rendere bianco il residuo al suo ingresso; dato però che questo ha subito il filtraggio da parte di W(z), significa che le frequenze da questo depresse sono in realtà enfatizzate per il segnale di errore reale. ed esaltarla invece nelle regioni con meno segnale, sfruttando così il fenomeno percettivo noto come mascheramento uditivo (vedi pag. 1↓). Anche se per questa via l’energia totale del rumore è maggiore, l’effetto soggettivo è migliore.
Multi pulse linear prediction - MPLP
Lo schema operativo suggerito dalla tecnica abs è stato inizialmente realizzato cercando di costruire la sequenza di eccitazione ottima (ossia in grado di minimizzare l’errore pesato percettivamente) come una sequenza di pochi impulsi sparsi, decidendone uno alla volta: pertanto viene inizialmente trovata l’ampiezza e la posizione ottime per un primo impulso, poi per un secondo (con il primo fisso), e così via, fino al numero di impulsi desiderati, tipicamente 4-5 ogni 5 msec, ottenuti suddividendo una finestra di 20 msec in quattro sotto-trame, ognuna con 40 campioni, se fc  = 8000 Hz.
Regular pulse excitation with long-term prediction - RPE-LTP o GSM 6.10
Il metodo mplp presentava una complessità proibitiva, ma ha dato luogo alla versione semplificata rpe-ltp usata inizialmente nella telefonia gsm per fornire una velocità di 13 kbps. In questo caso dopo aver determinato la posizione del primo impulso nella sottofinestra, ne sono piazzati altri 9 ad intervalli regolari (un campione si e tre no), e quindi l’ottimizzazione riguarda solo i valori delle ampiezze.
Rispetto allo schema di fig. 12.15↑ viene aggiunto un predittore a lungo termine o ltp, utilizzato per rimuovere dal segnale di eccitazione l’eventuale periodicità caratteristica dei suoni vocalici, e stimato a partire da sotto-finestre consecutive (vedi fig. 12.17↓).
Codifica e decodifica GSM 6.10 full rate o rpe-ltp Codifica e decodifica GSM 6.10 full rate o rpe-ltp

Figura 12.17 Codifica e decodifica GSM 6.10 full rate o rpe-ltp
Il filtro ltp in essenza consiste in un semplice ritardo pari al periodo di pitch (e dunque p), ed il predittore ltp relativo (vedi lo schema di decodifica) ripropone in uscita una copia ritardata ed attenuata dell’uscita stessa. Il codificatore gsm pertanto determina ritardo e attenuazione dell’ltp in base all’analisi del residuo di predizione lpc[519] [519] In effetti, mentre i coefficienti spettrali (denominati parcor in questo caso) sono determinati a partire dall’analisi dell’intera finestra di 20 msec, l’eccitazione rpe ed i parametri ltp sono ottenuti a partire da sottofinestre di 40 campioni, pari a 5 msec., e lo usa per reintrodurre la componente periodica nella sequenza rpe di cui si sta valutando l’idoneità. Una volta che al residuo lpc viene sottrattala componente predicibile per tramite del ltp, ciò che rimane risulta effettivamente assimilabile ad un rumore, ed è indicato anche come processo di innovazione.

12.1.2.4  Quantizzazione vettoriale

Quantizzazione vettoriale
Figura 12.18 Regioni di decisione e centroidi per un quantizzatore vettoriale bidimensionale
Dato che la codifica del segnale di eccitazione è la parte che impegna più bit da trasmettere, l’evoluzione successiva della codifica vocale adotta la quantizzazione vettoriale per evitare la trasmissione di tutti i parametri dell’eccitazione, che sono invece visti come un vettore e quindi rappresentati per mezzo di una unica codeword che identifica un elemento scelto in un codebook tale da rappresentare l’eccitazione con un errore minimo.
La costruzione del codebook è realizzata partizionando la distribuzione dei vettori in più regioni di decisione come quelle mostrate nell’esempio di fig. 12.18↑, in modo che un nuovo vettore possa essere classificato[520] [520] Per questa classificazione, così come per poter definire l’insieme dei centroidi, occorre che sia definita una funzione di distanza tra vettori. come contenuto in una di esse, e venire quindi rappresentato dal centroide (i punti rossi) associato alla regione. I centroidi ed i confini di decisione sono determinati mediante un procedimento iterativo tale da minimizzare l’errore quadratico medio di rappresentazione[521] [521] Vedi http://www.data-compression.com/vq.html, ma anche la nota 65↑ a pag. 1↑..
I coefficienti dei vettori associati ai centroidi sono quindi memorizzati in un dizionario (o codebook) noto sia al codificatore che al decodificatore, in modo che ogni vettore può essere rappresentato, anziché da tutti i suoi coefficienti, dal solo indice della codeword del centroide più vicino: al solito, utilizzando M bit per rappresentare l’indice, il codebook sarà formato da 2M diverse codeword. Oltre al codebook utilizzato per rappresentare i possibili vettori di innovazione, la codifica del segnale vocale si può avvantaggiare anche di un secondo codebook, usato per approssimare il vettore dei possibili coefficienti spettrali.

12.1.2.5  Predizione lineare ad eccitazione codificata - CELP

La fig. 12.19↑ mostra lo schema realizzativo di un codificatore celp, in cui sono evidenziati il filtro di predizione a lungo termine ed il filtro lpc, stimati in modalità ad anello aperto, ed il filtro percettivo che fa in modo che la densità spettrale dell’errore di predizione sia concentrata nelle regioni dove è presente segnale. Per ogni codeword di eccitazione selezionata dal codebook, ed il guadagno associato, viene calcolata l’energia dell’errore ottenuto, ed il risultato confrontato con quello ottenibile mediante le altre codeword, finché non si trova la codeword che minimizza l’errore. Ovviamente questo modo di procedere è estremamente oneroso, ma si sono trovati metodi di ricerca più efficienti adottando tecniche di costruzione del codebook come combinazione di sequenze elementari, dando luogo alla famiglia dei codificatori algebrici o acelp.
Codificatore e decodificatore CELP Codificatore e decodificatore CELP
Figura 12.19 Codificatore e decodificatore CELP
D’altra parte, anche l’identificazione del ltp può essere ricondotta ad una ricerca ad anello chiuso, svolta ora nell’ambito di un codebook adattivo, costruito a partire dalla precedente sequenza di eccitazione ottima, replicata in forma traslata di un campione alla volta, come illustrato in fig. 12.20↓, che mostra appunto l’uso della eccitazione per la trama precedente per popolare il codebook adattativo: da questo viene quindi individuata la codeword Ia ed il guadagno Ga ottimi, e quindi individuata la codeword di innovazione Is e Gs ottimi, riferiti ad un codebook detto stocastico perché costituito da sequenze pseudo casuali.
Codificatore celp con codebook adattivo
Figura 12.20 Codificatore celp con codebook adattivo per la predizione a lungo termine
Infine, viene mostrato come anche i coefficienti spettrali lpc sono trasmessi mediante una codeword derivata da un processo di quantizzazione vettoriale. Possiamo elencare i seguenti standard che adottano una tecnica di questo tipo:

12.1.3  Codifica psicoacustica

Mentre la codifica di forma d’onda (§ 12.1.1↑) non fa assunzioni a riguardo della natura del segnale, i metodi esposti al § 12.1.2↑ sono tutti fortemente orientati a rappresentare segnali vocali. Viceversa, il gruppo di lavoro mpeg di iso si è dedicato ad individuare metodi di codifica idonei alla trasmissione di segnali multimediali di natura qualsiasi, come ad esempio brani musicali. Inoltre, i vincoli relativi al basso ritardo necessario ad assicurare un buon grado di interattività vengono meno, e si possono dunque intraprendere elaborazioni più complesse, e che richiedono un tempo maggiore. Infine, vengono trascurati rigidi vincoli sulla velocità risultante, accettando invece che questa vari nel tempo in funzione del tipo di segnale da rappresentare.
Come vedremo tra breve, per queste tecniche si fa di nuovo uso di una codifica per sottobande, introdotta nella discussione dell’adpcm, tenendo però anche conto di caratteristiche molto importanti della percezione sonora, il cui sfruttamento è già stato illustrato nella discussione del filtro di pesatura percettiva, ma che ora hanno un impatto ancora maggiore sulla realizzazione del codificatore. I codificatori che fanno uso di queste caratteristiche sono l’mpeg layer 3 o mp3, il Dolby ac, e l’advanced audio coding o aac.
Sensibilità uditiva e mascheramento in frequenza
La fig. 12.21↑a mostra la curva di sensibilità del sistema uditivo, ovvero il livello di intensità minimo perché possa essere percepito un suono: come si vede, questo è molto variabile con la frequenza, per cui anche se il suono B (sinusoide o tono puro) ha la stessa intensità di A non può essere udito, mentre invece A si. Ma ad una analisi più approfondita, si scopre che la presenza di un suono in una determinata regione di frequenza ha l’effetto di modificare la curva di sensibilità per le frequenze vicine, di fatto mascherando suoni a frequenze vicini che altrimenti avrebbero superato la soglia di sensibilità, come mostrato in fig. 12.21↑b: la presenza del suono B rende A non più udibile.
sensibilità uditiva alle diverse frequenze e mascheramento uditivo
Figura 12.21 a) sensibilità uditiva alle diverse frequenze; b) mascheramento uditivo
bande critiche
Figura 12.22 Variazione della banda critica in funzione della frequenza
In realtà, l’estensione in frequenza per cui si verifica l’effetto di mascheramento dipende sia dalla frequenza del tono mascherante (come mostrato dalle curve in fig. 12.22↓ ottenute con toni a1, 4 ed 8 kHz) che dalla sua intensità. In particolare, la banda delle frequenze mascherate viene detta banda critica ed ha una estensione differente alle diverse frequenze: si trova che sotto i 500 Hz la banda critica ha una estensione di circa 100 Hz, mentre a frequenze superiori aumenta (circa) linearmente per multipli di 100 Hz. Ad esempio, un segnale ad 1 KHz (2x500) produce una banda critica di 200 Hz (2x100), mentre a 5 kHz (10x500) questa vale circa 1 kHz (10x100).
Mascheramento temporale
Mascheramento temporale
Figura 12.23 Mascheramento temporale
Il secondo effetto percettivo riguarda ancora una modifica alle curve di sensibilità, stavolta in modo non selettivo in frequenza, ma che coinvolge tutte le frequenze: si verifica infatti che dopo aver udito un suono forte, per il tempo necessario all’estinzione del suono e che tipicamente dura qualche decina di millisecondi (vedi fig. 12.23↑), l’orecchio non è più in grado di percepire suoni con intensità minore a quello che si sta estinguendo.
MPEG layer 3
Il gruppo di lavoro mpeg di iso ha definito uno standard di codifica audio basato su tre livelli di complessità (e potere di compressione) crescente, ed il terzo (o mp3) è quello di gran lunga più popolare, anche grazie alla diffusione che ha avuto via Internet.
Lo schema di funzionamento di principio è mostrato in fig. 12.24↑: il segnale campionato in ingresso (a 32, 44.1 o 48 kHz) transita attraverso un pcm encoder che esegue un filtraggio[523] [523] Eseguito mediante un banco di filtri polifase, vedi ad es. http://en.wikipedia.org/wiki/Polyphase_quadrature_filter o http://cnx.org/content/m32148/latest/. Le uscite dei filtri polifase, anche se campionate a frequenza inferiore a quella di Nyquist, sono esenti da aliasing, che viene cancellato dall’effetto delle altre sottobande. in 32 sottobande di eguale ampiezza, le cui uscite sono campionate a frequenza 132 di quella di ingresso. Ogni 384 campioni di ingresso (pari a 12 msec se fc  = 32 kHz) sono quindi prodotti 384 ⁄ 32  = 12 campioni per ogni sotto-banda, e per ognuna di esse è individuato il valore del campione più grande, che contribuisce sia ad impostare la dinamica del quantizzatore per quella banda, sia come parametro per il modello psicoacustico.
Codec percettivo mpeg
Figura 12.24 Codec percettivo mpeg
Il modello psicoacustico riceve le informazioni prodotte da un banco di filtri di analisi realizzati mediante una mdct,[524] [524] Vedi http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform che produce una stima spettrale con risoluzione maggiore di quella del primo banco di filtri, su cui basare le valutazioni di mascheramento uditivo, che a loro volta determinano per ogni sottobanda l’indicazione di un signal to mask ratio (SMR), che a sua volta determina quanti bit utilizzare (e quindi quanti livelli) per la quantizzazione Q dei campioni relativi alle singole sottobande. Quelle contraddistinte da una maggiore sensibilità (ovvero nelle quali si percepiscono anche suoni deboli) saranno quantizzate con più accuratezza, e quindi con più bit e meno rumore; mentre le sottobande caratterizzate da una sensibilità inferiore possono essere quantizzate con meno bit, almeno finché l’SNR di quantizzazione si mantiene superiore all’SMR, dato che in tal caso il rumore è mascherato, e dunque non viene udito. Quindi, i 12 campioni delle 32 sottobande sono quantizzati tenendo conto sia della dinamica effettiva, che del numero di livelli in cui suddividere la dinamica. Infine, viene prodotta una struttura di trama che contiene, oltre ai campioni, anche le informazioni sulla effettiva allocazione dei bit.
Ad una futura edizione, una trattazione più approfondita.
Riferimenti
Si citano dei riferimenti essenziali sulla codifica audio, da cui sono anche tratte alcune illustrazioni
  Capitolo 12: Codifica di sorgente multimediale Su  Capitolo 12: Codifica di sorgente multimediale Sezione 12.2: Codifica di immagine 
x Logo

Trasmissione dei Segnali e Sistemi di Telecomunicazione

http://infocom.uniroma1.it/alef/libro/

Un esperimento divenuto nel tempo un riferimento culturale. Scopri come effettuare il download, ricevere gli aggiornamenti, e contribuire!