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
↓,.
Mentre questa costituisce un formato universale di scambio permettendo
la compatibilità tra dispositivi e tecnologie, nel seguito sono state
sviluppate diverse tecniche alternative,
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.
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
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↓
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.
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.
Infine, la fig. 12.6↓
mostra i due estremi del codec adpcm,
che rimangono sincronizzati anche nel caso di saturazione del
quantizzatore adattativo.
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.
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↓),
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↓;
la differenza di area delle diverse sezioni del tratto vocale provoca un
disadattamento di impedenza acustica
e la conseguente formazione di onde riflesse (vedi fig.
12.9↓)
, che per lunghezze d’onda in relazione intera con la lunghezza del
tratto vocale, determinano fenomeni di
onde stazionarie, ovvero
di
risonanze↓, 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. 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,
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.
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↓
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.
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, e su
tali finestre condurre una analisi (o stima) dei parametri del
modello, che sono
- il tipo di eccitazione (periodica o caotica), la sua frequenza
fondamentale (o pitch) se periodica, e la sua intensità;
- i parametri che caratterizzano l’effetto filtrante del tratto
vocale
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↓.
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
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
− p⎲⎳i = 1aiyn
− i)2}
= 2E{(yn
− p⎲⎳i = 1aiyn
− i)yn
− j} = 0
da cui si ottiene
Il valore atteso E{ynyn
− j} è quindi stimato a partire dai campioni
temporali presenti nella finestra di analisi, ovvero
dove l’estremo superiore della sommatoria varia in modo da includere
solo i campioni effettivamente presenti nella finestra di analisi.
La (12.36↑)
permette di riscrivere (12.35↑)
come
Ryy(j) = p⎲⎳i
= 1aiRyy(|i − j|)
che valutata per j = 1, ⋯, p
individua un sistema di p
equazioni
in p incognite
che può essere risolto nei termini dei coefficienti ai
mediante metodi particolarmente efficienti; 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
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
G⋅un
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)).
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.
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. 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, per un
suono vocalico (sopra) e fricativo
(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: 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 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.
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
(vedi fig.
12.16↑),
in modo da attenuare la rilevanza dell’errore di predizione nelle
regioni dove c’è più segnale 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↓).
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,
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↓
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 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.
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.
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.
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:
- Federal Standard 1016
(4800-16000 bit/s) celp
- ITU-T 8-kbit/s G.729 cs-acelp (conjugate-structure
algebraic celp);
- dual-rate multimedia
ITU-T G.723.1 a 5.3 kbit/s con acelp
e 6.3 kbit/s con mp-mlq (multi-pulse
maximum likelihood quantization);
- ITU-T low-delay celp
16-kbit/s G.728 - usa finestre di analisi multo brevi e una
predizione lineare all’indietro per conseguire un ritardo di 2
msec;
- ETSI enhanced full-rate efr-gsm e half-rate hr-gsm,
con velocità di 12.2 e 5.6 kbps, così come i codec amr
(adaptive multirate) e wb-amr,
con velocità da 7.95 a 4.75 kbps;
- Speex - un insieme di codecs open
source esenti da brevetti e liberamente utilizzabili, con
velocità (a banda stretta) da 5,95 a 24,6 kbps, e da 5.75 a 42,4
kbps per segnali con banda di 16 kHz
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.
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).
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.
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 in 32
sottobande di eguale ampiezza, le cui uscite sono campionate a frequenza
1⁄32 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.
Il modello psicoacustico riceve le informazioni
prodotte da un banco di filtri di analisi realizzati mediante una mdct,
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.
Si citano dei riferimenti essenziali sulla
codifica audio, da cui sono anche tratte alcune illustrazioni