lunedì 20 febbraio 2012

4. Compressione

E l'arte di minimizzare le risorse per i dati audio.
Gli obbedivi sono: ridurre la memoria occupata e i costi di trasmissione.
Attualmente l'audio compresso fornisce una buona qualità in confronto all'audio non compresso.
Se l'obbiettivo include la qualità del segnale, occorre individuare qual'è il numero minimo di bit per rappresentare il segnale in modo che la riproduzione sia trasparente (anche orecchie sensibili non riescano a distinguere dall'originale).

Motivazioni per la compressione

Il successo dei CD(metà anni 80) porta alla luce i vantaggi dell'audio digitale:
- alta fedeltà del segnale rappresentato;
- l'estesa gamma dinamica offerta;
- la robustezza rispetto a eventuali danneggiamenti del supporto;
Svantaggi:
- alti tassi di trasferimento dati che sono richiesti.

CD-Audio
Tasso di campionamento:  44.100 hz
Quantizzazione: PCM lineare a 16 bit
Tasso di trasferimento dati (bit-rate): 705,6 Kbps MONO e 1,411 Mbps STEREO

L'audio digitale non compresso occupa:
- molto spazio sull'hardisk per la memorizzazione;
- una banda ampia sul canale di trasmissione;

Esempio: brano di 1 min con Qualità CD
Parametri:
Tasso di campionamento: 44.100 c/s
Quantizzazione: 16 bit (2 Byte)
Canali = 2 (Stereo)
Tempo = 1 minuto(60 secondi);

Memoria che risulta occupata è di circa 10 Megabyte:
44.100 c/s x 2 canali x 2 byte/campione x 60 = 10.584.000 byte
10 Mb equivalgono a 80 Megabit (circa 80.000 Kb), il tempo di scaricamento con un modem a 56,6 Kbps è di oltre 20 minuti:
80.000 kb/ 56,6 kbps = 1413.4276/60 sec= 23 min e 33 sec

Nonostante l'accesso e il trasferimento dei dati da CD e DVD e dalla rete siano sempre più veloci non è ancora pensabile attualmente poter trasferire immagini, video, testo  e audio di alta qualità sincronizzati tutti insieme.
L'obiettivo è la riduzione del bit-rate senza compromettere la qualità della riproduzione
A partire dagli anni 80 è stata prodotta una mole di lavoro intorno a schemi di compressione che potessero soddisfare le esigenze presenti, in vari tipi di applicazioni:
Bassa qualità: telefonia;
Alta qualità: colonne sonore videogiochi su CD-ROM, memorie flash per riproduttori portatili, audio su internet, Web radio e Web Tv.

Durante la fase di compressione(Codifica - Encoding), i dati audio digitali vengono prelevati da un file e trasformati in una sequenza di bit in modalità compressa rispetto all'originale.
Durante la fase di decompressione, si ricostruisce il segnale di partenza o si ricostruisce un segnale che suona come l'originale.
La compressione con perdita di informazione(lossy) è in generale più efficace , anche se la qualità non è sempre eccellente.
Notiamo che il flusso di bit (bitstream) non necessariamente rappresenta una sequenza di campioni come nel file originale. La codifica usata dipende dallo schema di compressione e potrebbe richiedere operazioni di ricostruzione dal segnale anche molto complesse.
Gli schemi di compressione vengono implementati in Codec, librerie software istallate su un calcolatore consentono ad applicativi di alto livello di comprimere e decomprimere nella modalità corrispondente.
Descriviamo  alcuni schemi di compressione lossy: semplici e complessi.  La differenza si basa sulla complessità degli algoritmi  di codifica/decodifica (tempo di computazione), efficacia di compressione.

Le Codifiche u-law A-low

Realizzano specifiche contenute nelle raccomandazioni G.711, comitato internazionale per gli standard delle telecomunicazioni.
Codifica u-law: Nord America e Giappone per sevizi di telefonia digitale ISDN.
Codifica a-law: Europa e sul traffico internazionale telefonia ISDN.
Il segnale audio deve essere sufficientemente compresso per poter essere inviato su una linea ISDN che consente un traffico di 64 Kbps ed essere decodificato in tempo reale.
Tasso di campionamento: 8000 c/s;
funziona bene sulle frequenze fino a 3000-4000 hz.
Quantizzazione: è di natura logaritmica, poiché rappresenta con livelli di quantizzazione don uniformi le ampiezza forti e deboli e prevede 8 bit a campione.
Bit-rate: 64 Kbps (8000c/s x 8 bit/c).
Non limitando la frequenza di campionamento, la compressione offerta dalla quantizzazione logaritmica è di bit-per-campione/8:1; se i campioni originali sono di 16 bit, il fattore di compressione è di 2:1.
La quantizzazione logaritmica con 8 bit consente di raggiungere una gamma dinamica pari a quella ottenuta con una quantizzazione lineare a 13-14 bit.(I campioni di ampiezza debole quantizzasti con maggior accuratezza= Rapporto segnale/rumore per il segnale codificato è più uniforme su tutta la gamma delle ampiezze del segnale in input).
u-law
Si comprimono i campioni a 16 bit in modo non lineare su campioni da 8 bit (0-255). Non linearità in cui i campioni di forte intensità vengono compressi in pochi valori di codifica. I valori ottenuti dalla decompressione non sono esattamente quelli codificati, ma delle loro approssimazioni a volte grossolane(esempio: -200 a 16 bit diventa 106 a 8 bit e con la formula inversa -193 a 16 bit).

La compressione ADPCM (PCM differenziale adattiva)

Metodo diffuso e raggiunge un buon compromesso tra velocità di elaborazione, qualità del segnale decodificato e rapporto di compressione.
Due idee alla base dello schema ADPCM:
- la codifica delle differenze tra i campioni;
- l'adattamento delle differenze allo specifico segnale in input;

Nella codifica delle differenze tra campioni(differencing):
ogni elemento della sequenza da comprimere viene sostituito da un bit che indica il segno della differenza (un campione ha un'ampiezza < o > del precedente)  e da alcuni bit che rappresentano il valore assoluto della differenza.
Le differenze hanno una valore ridotto rispetto ai campioni quindi serviranno un numero inferiore di bit (mantengono pero lo stesso segnale/rumore).

Nella decodifica, la ricostruzione del segnale originale si ottiene sommando o sottraendo la differenza dal campione precedentemente decodificato.

L'adattamento delle differenze allo specifico segnale in input.
In genere l'andamento del segnale non subisce segnali drastici, può capitare che quando prevalgono le frequenze vicine alla frequenza di Nyquist, la differenza tra un campione e il successivo assume valori inconsueti --> per evitare un degrado eccessivo del rapporto segnale/rumore occorre adattare la codifica delle differenze ai valori che prevalgono in una certa finestra del segnale.

Lavorare con le differenze ha il vantaggio di ridurre i valori rispetto ai campioni PCM originali.
Le differenze sono sempre di dimensioni ridotte e tendono a ricorrere. Tali carrateristiche suggeriscono l'uso di tabelle di look-up, dove si memorizza un numero finito di valori ricorrenti in un segnale.
I valori di differenza si riducono introducendo una nuova operazione sul campione precedente: la predizione.
Il campione precedente viene usato come base di partenza per predire il campione attuale , sfruttando la conoscenza del segnale precedente, cioè la successione dei campioni fino a questo punto. Il risultato è che si assegna un numero di N di bit che permettono di rappresentare  2 alla N possibili valori di differenza.
 
La predizione basata su una certa differenza a un certo punto può rivelarsi inefficace (aumentare invece che diminuire). Il problema è evidente in uno spettro ricco di alte frequenze e il segnale varia in modo repentino, non concedendo il tempo di stabilizzare le differenze con una certa regolarità.
Differenze elevate (alte frequenze) non si possono rappresentare con un numero piccolo di bit, gli errori introdotti porterebbero a distorsioni sulle alte frequenze.
Considerando il numero di bit fissato per le differenze(N) occorre introdurre una certa adattabilità sul segnale in modo da ampliare o restringere i passi di quantizzazione  a seconda del contenuto  di alte frequenze. Quindi, lasciando inalterato il numero di regioni di quantizzazione per le differenze, le regioni si ampliano o restringono a seconda se c'è da coprire una differenza maggiore o minore.
Le differenze si dicono quindi quantizzate  e a seconda della variazione più o meno repentina del segnale occorre una riquantizzazione nel caso quella corrente sia inadatta a rappresentare l differenze in gioco in un certo frammento del segnale.
Esendo le differenze quantizzate, la compressione ADPCM è lossy.   

Schema Generale ADPCM


Lo schema di codifica ADPCM usa come suo componente lo schema di decodifica per calcolare i valori predetti.
Segnale in input = X[n] n= numero di campione (X[1],X[2]…)
Campioni ricostruiti o predetti = Xp[n]
Differenze = D[n]
Differrenze quantizzate = Dq[n]

Codifica passo passo
X[n] --> campione con segno= +X[n]
+X[n] viene sottratto il campione predetto= Xp[n-1], calcolato a partire dal campione precedente.
+X[n] - Xp[n-1] = differenza = D[n], positiva o negativa.
Quantizer(adattivo) che darà in output una codifica della differenza D[n] in livelli di quantizzazione(
bit) in numero inferiore al segnale di input(compressione).
Quantizer darà anche l'output della codifica = C[n], sequenza compressa composta di differenze quantizzate.
C[n] differenza quantizzata  è ripresa per calcolare il valore predetto che sarà sottratto dal successivo campione.
Requantizer traduce la differenza quantizzata(C[n]) in una nuova quantizzazione richiesta dal Predictor.
Il valore riquantizzato = Dq[n] viene addizionato al campione predetto al passo precedente ricostruendo il campione Xp[n].
Xp[n] viene utilizzato dal Predictor per costruire il valore predetto per il prossimo campione,
valore definito= Xp[n-1].

Decodifica
Il segnale in ingresso = C[n], differenze quantizzate
C[n] viene riquantizzato in Dq[n] con il Requantizer e addizionate a Xp[n-1] prodotto dal Predictor.
Risultato= Xp[n], sequenza ricostruita che suona come X[n].

Per comprendere l'adattatività al segnale in input: l'algoritmo IMA ADPCM.

La compressione IMA ADPCM


IMA consorzio produttori hardware e software per lo sviluppo di standard per dati multimdediali su computer.
L'obbiettivo: algoritmo di compressione in grado di produrre un rapporto discreto di compressione semplice da permettere una decodifica software in tempo reale di un segnale audio stereo a 44.100 c/s  su un 386 a 2 mHz di clock. E semplice da permettere anche la codifica in tempo reale sullo stesso PC.
La semplicità dipende dal Predictor: il valore predetto è il valore decodificato del campione audio precedente(una copia del flusso di input ritardata di un campione).
Il Predictor IMA non è adattivo, è un semplice registro.

I campioni in input sono a 16 bit mentre le differenze sono di 4 bit, riduce 1/4 i dati del segnale.
Predictor ricostruisce il campione predetto a partire dalla predizione precedente e dalla differenza ri-quantizzata.
Viene inserito un modulo, Adattatore ampiezza del passo, che implementa l'adattabilità al segnale in input --> variando l'ampiezza del passo di quantizzazione in modo logaritmico a seconda della differenza rilevata con l'ultimo campione: modulo che influenza Quantizer e Requantizer.
L'algoritmo si adatta al segnale in input variando la dimensione del passo di quantizzazione(regioni di quantizzazione) nel Quantizer delle differenze.
Differenze è piccola = assottigliato passo di quantizzazione
Differenze aumentano = passo viene ampliato per coprire maggiori distanze.

I possibili passi di quantizzazione sono contenuti in una tabella di 89 voci. Ciascun Passo è associato a un indice della tabella.

Funzionamento Quantizer unito adattatore delle ampiezze del passo.

Quantizzazione= differenza trovata viene confrontata con l'ampiezza del passo corrente= 8 possibili regioni rispetto al passo.
Output del Quantizer = espresso in 3 bit(4 segno), indica la codifica della regione selezionata sulla base del confronto.
Prodotto tra il passo e il Moltiplicatore rende il passo più vicino alla differenza effettiva.
La variazione dell'indice determina un nuovo indice sulla tabella dei passi di quantizzazione.

L'algoritmo IMA mantiene un indice sulla tabella dei passi di quantizzazione.
Ampiezza passo < differenza = indice decrementato
Ampiezza passo > differenza = indice aumentato

L'output tabella dei passi usato come dimensione del passo di quantizzazione per il Quantizer.

La codifica è lossy. Produce un fattore di compressione di bit per campione / 4 a 1, Se campioni originali sono a 16 bit fattore di compressione è 4:1 , bit rate a 400 kbps.

Schemi di compressione di tipo percettivo

Operano perlopiù rimuovendo le parti irrilevanti del segnale audio.
La soglia assoluta di udibilità è caratterizzata dalla quantità minima di energia che deve trasportare un suono puro perché un ascoltatore riesca a percepirlo.
Non si conosce a priori i livelli di riproduzione che saranno usati:
I progettisti degli algoritmi di compressione si riferiscono a una curva SPL ottenuta identificando il punto minimo della curva a 4.000 hz con l'energia rappresentata da 1 bit(6dB).

Le bande critiche e mascheramento simultaneo

Orecchio interno è un analizzatore dello spettro del segnale, lavora in modo tonotopico: assegna un suono puro a un'area specifica della membrana basilare.
Regioni distinte della membrana sono "accordate" su differenti bande di frequenza.
L'analisi spettrale non segue una scala lineare sulle frequenze: si possono identificare delle bande di frequenza , bande critiche, al passaggio tra le quali si può osservare un cambiamento repentino della percezione uditiva; se la banda del rumore si estende oltre i confini della banda critica si percepisce un aumento del volume.
Sistema uditivo si può descrive come un banco di filtri passa-banda: bande sono le bande critiche con una larghezza compresa tra 100 e 500 hz e che può arrivare oltre i 5000 hz nelle alte frequenze per un totale di 25 bande critiche.

Mascheramento simultaneo fenomeno per cui un segnale a debole intensità non viene percepito a causa della presenta simultanea di un segnale a intensità superiore.
Condizioni per il mascheramento è che la frequenza dei 2 segnali sia abbastanza vicina, ed è molto efficace se i segnali sono nella stessa banda critica.
Il comportamento di un segnale mascheratore viene descritto da una soglia di mascheramento per cui tutti i segnali che sono sotto questa soglia non si possono udire, ci sono sia parti del segnale dello spettro, sia artifici introdotti con la digitalizzazione.
Le soglie di mascheramento che dipendono da toni mascheratori (mascheramento tonale):
forma: campana;
basse frequenze: curva di ascesa rapida;
alte frequenze: curva di discesa più dolce; vengono mascherate più facilmente.

Rumore, segnale a banda larga, è un mascheratore più efficace dei toni singoli, in quanto la distanza tra mascheratore e mascherato in termini di intensità è inferiore(cioè il mascherato deve avere un'intensità forte) in esperimenti in cui il rumore maschera il tono che viceversa.

Quando nel segnale originale sono presenti più segnali mascheratori, che non si mascherano a vicenda, è possibile costruire una soglia di mascheramento globale a partire dalle singole soglie di mascheramento.

Diagramma  - Bande critiche e mascheramento simultaneo, singolo tono di mascheramento all'interno di una banda critica.
Ascissa: frequenza;
Ordinata: intensità in dB, logaritmica;
Tono genera una soglia di mascheramento, di cui il minimo si trova all'estremo sinistro della banda critica.
Per lavorare senza l'introduzione di distorsioni occorre basarsi su tale soglia minima.
3 possibilità di SNR (rapporto segnale/rumore) per m-1, m, m+1 bit.
1 bit = 6db SNR, per cui man mano che i bit aumentano anche SNR aumenta.
Rapporto SNR su scala logaritmica si può calcolare :
SNR log = log(max_ampiezza) - log(rumore-medio)
max_ampiezza= livello del tono mascheratore, asse delle ordinate.
SNR è la differenza tra il livello del tono mascheratore e il livello del rumore.

SMR: rapporto segnale/maschera, distanza tra il livello del tono mascherature la minima soglia di mascheramento.

NMR; rapporto rumore/maschera, distanza tra il livello del rumore e la minima soglia di mascheramento.

SNR = SMR + NMR

Rapporto SMR è usato dagli algoritmi di compressione nell'allocazione dei bit necessari per la codifica del segnale:
rumore ha intensità < all minima soglia di mascheramento non è percepibile a causa del tono mascheratore basterà allocare il numero di bit necessari per raggiungere il livello SMR, producendo la stessa qualità prodotta dall'SNR.

Mascheramento temporale: segnali transitori repentini (attacchi suoni percussivi) creano delle regioni di mascheramento che precedono e seguono il segnale.
Pre-mascheramento tende a durare : 5msec
Post-Mascheramento: si può estendere tra 50 e 300 msec.

Standard MPEG

Gruppo di  lavoro per lo sviluppo di standard per compressione, decompressione, elaborazione e rappresentazione codificata di video e audio. Più versioni susseguite cronologicamente.

MPEG  1 : memorizzazione/recupero video e audio ('92)
MPEG 2: standard per TV originale, bit-rate 6 Mbps e sourround('94)
MPEG 4: immagini e audio visti come composti da diversi oggetti, per permettere lo sviluppo di applicazioni multimediali.('98)
MPEG 7: rappresentazione del contenuto per la ricerca, filtraggio, gestione di info multimediale('01)
MPEG 21: sicurezza contenuti multimediali ('09)

Una delle caratteristiche è il principio di minimizzare gli elementi normativi all'interno dello standard. Unici elementi imposti sono il formato dell'audio compresso e l'algoritmo di decodifica.
I moduli dell'algoritmo di compressione audio sono lasciati quasi interamente alla creatività degli sviluppatori.
Le specifiche ufficiali rilasciate includono anche una descrizione completa di un encoder.

Standard MPEG 1, universale in molti settori.
codifica del segnale audiovisivo combinato a un bit-rate di circa 1,5 Mbps(1,2 Mbps video e 0,3 Mbps audio, cioè 300 kbps, per l'audio stereo) con qualità inferiore alla TV.
Specifiche audio permesse per il segnale in input sono:
frequenze di campionamento: 32, 44,1 , 48 Khz
numero canali: 1 o 2
modo di funcionamiento: mono, dual mono, stereo, joint-stero
bit-rate segnale output: da 32 a 224 kbps per canale, buona qualità: 192 kbps.
Tre livelli di compressione(layer)
lager I è l'algoritmo di base , II e III migliorano i moduli dello schema producendo migliori compressioni al costo di incrementare la complessità sia del'encoder che del decoder
Layer 1 : più semplice, bit-rate superiore a 128 kbpss
Layer 2: più complesso esattamente di 128 kbps
Layer 3: il più complesso di 64 kbps, molta compressione    

Struttura di base di MPEG 1 ricalca lo schema generale e implementa in modo differente i vari moduli a seconda dei layer.

Analisi-tempo frequenza
[codifica per blocchi, segnali audio reali non variano molto tra un campione e il successivo, si può assumere che lo stesso esponente valga per un buon numero di campioni. Un risparmio consistente si ottiene mantenendo lo stesso esponente per tutto un blocco di campioni, in modo a memorizzarlo una sola volta: all'interno del blocco si sceglie il campione che necessita del maggior numero di bit di esponente, e determinato il numero viene mantenuto per tutto il blocco]

Segnale audio viene segmentato in frame(blocchi), la porzione di segnale all'interno di ciascun blocco viene analizzata nel dominio della frequenza e convertito nelle sue componenti spettrali mediante un banco di filtri. Il banco di filtri che suddivide il segnale audio in 32 sottobande di frequenza della medesima larghezza.(0 a 31, sub-band coding).
[La codifica per sotto-bande divide lo spettro audio in molte bande di frequenza, le singole bande vengono elaborate individualmente. Il vantaggio di questa codifica è che i suoni non distribuiscono l'energia in modo uniforme lungo tutto lo spettro. Le sotto-bande con gamma dinamica ristretta possono essere codificate con un numero minore di bit; il risultato è che i campioni nelle diverse sotto-bande saranno codificati con un numero variabile di bit  e si avrà una riduzione dovuta alla diminuzione dei bit per alcune bande.]
I campioni in ingresso al banco di filtri nel dominio del tempo e i campioni in uscita nel dominio della frequenza sono gli stessi.
La larghezza uniforme delle bande risulta troppo ampia per le basse frequenze  e troppo stretta per le alte frequenze.

Analisi psicoaucustica
[valuta quanta distorsione si può introdurre in un segnale senza causare un'alterazione della percezione, producendo le soglie di mascheramento che permettono di determinare il massimo ammontare di distorsione armonica che si può introdurre nel segnale durante la fase di ri-quantizzazione, senza provocare delle alterazioni udibili nel segnale ricostruito. Calcola il rapporto SMR, rapporto tra l'ampiezza del segnale e la soglia di mascheramento. I rapporti SMR, calcolati per blocco di frequenze, sono utilizzati per decidere quanti bit vengono allocati per la ri-quantizzazione del segnale in ogni banda, in modo da minimizzare il rumore di quantizzazione ]
I banchi di filtri possono introdurre errori di minima entità, per compensare la mancanza di accuratezza del banco di filtri, il segnale viene analizzato mediante una FFT(Trasformata di Fourier veloce) layer 1 = 512 punti, layer 3= 1024 punti. L'output di questa trasformazione è usato dal modello psicoacustico che determina le soglie di  mascheramento e le sovraimpone alle frequenze contenute in ciascuna sotto-banda in modo da fissare il livello di distorsione permesso[Modello psicoacustico controlla l'allocazione dei bit. Calcola i rapporti SMR prendendo in considerazione lo spettro del segnale limitato a un blocco di campioni audio e la conoscenza sul mascheramento del rumore. Modello presente solo nell'encoder.]
I campioni di frequenza vengono raggruppati in blocchi.
Si usano blocchi di dimensione costante, 384 campioni, che corrispondo a blocchi per sotto-banda di 12 campioni ciascuno(12x32), nel layer II e III 1152 campioni, tre blocchi consecutivi del Layer I (384 x 3, 36 x 32= 1152).
Finestra temporale che corrisponde ad un blocco dipende dal tasso di campionamento:
a 48.000 hz, 384 campioni = 8 msec
a 44.100 hz, 384 campioni = 8,7 msec
Blocchi troppo lunghi per permettere di eviatare il pre-mascheramento temporale.

Layer I
I 384 blocchi subiscono una compansion(capitolo 2).
A tutti i campioni di frequenza del blocco viene attribuito un fattore di scala determinato a partire dal valore di picco del blocco.
Si usa un unico fattore di scala  di 6 bit per ciascuna sotto-banda, quindi lo stesso esponente per tutti i 12 campioni nella quantizzazione non uniforme in virgola mobile.
Si considera un passo di quantizzazione di 2 dB sui fattori di scala, con 6 bit si hanno 2 alla6= 64 configurazioni, con una gamma dinamica di oltre 120 dB.
Bit-rate in uscita è fissato a priori e anche le dimensioni della codifica in uscita da un  blocco sono fissate.
[I bit determinano il numero di regioni di quantizzazione. La somma dei bit allocati per ciascuna sottobanda non deve eccedere il massimo bit-rate fissato a priori]
La lunghezza della codifica per ciascuna sotto-banda deve essere tale per cui la somma totale delle codifiche non supera il bit-rate totale per il blocco.
Alcune sotto-bande avranno codifiche più lunghe e altre più corte.

Layer III
Dopo banco di filtri con 32 sottobande viene posto un modulo addizionale basato su una Trasformata discreta del coseno modificata(MDCT): permette una più elevata risoluzione frequentiate, producendo una partizione dello spettro più simile  a quella delle bande critiche nelle basse frequenze.
2 tipi di finestre: lunghe 36 campioni, corte di 12 campioni.
Opera sovrapponendo le finestre, per cui i campioni effettivi per finestra sono meno di quelli indicati.
La sovrapposizione dimezza i campioni: 18 per le finestre lunghe e 6 per le finestre corte.
Risoluzione totale = 576 frequenze per le finestre lunghe(0-575) e 192 frequenze per le finestre corte.
La dimensione delle finestre è utile per differenziare il trattamento del segnalein presenza di materiale stazionario rispetto alla presenza di transitori. In generale lavora la  MDCT a 18 punti.
Nell'analisi psicoacustica l'altissima risoluzione fornita dalla MDCT permette una sagomatura  del rumore più accurata.

Allocazione dei bit, Fase di quantizzazioneo e codifica
[usa i bit allocati per stabilire le dimensioni delle regioni di quantizzazione e codificare il segnale]
assegna alloca bit  e fattore di scala a ogni sotto-banda.

Nel layer I
le sotto-bande sono trattate allo stesso modo, si usano 14 classi di ri-quantizzazione(4 bit).

Layer III
4 elementi nuovi, quantizzazione non uniforme, bande relative a fattori di scala, codifica di Huffman, riserva di bit.
- Quantizzazione non uniforme  che garantisce un miglior rapporto segnale/rumore.
- layer I si può usare un differente fattore di scala per ciascuna sotto-banda, con la MDCT abbiamo una ploliferazione di sotto-bande, quindi si possono raggruppare delle sotto-bande per fattore di scala, raggruppamenti larghi all'incirca come le bande critiche. Fattori di scala distorcono il rumore di quantizzazione per adattarsi alle curve determinate dalle soglie di mascheramento.
- usa i codici di Huffman a lunghezza variabile per codificare i campioni quantizzati e ottenere una maggiore compressione. Dopo la quantizzazione  l'encoder ordina i 576 coefficienti delle sotto-bande per frequenza di occorrenza crescente. Coefficienti grandi alle basse frequenze, alte frequenze coefficienti bassi o addirittura nulli. Codifica i coefficienti attraverso codici di lunghezza variabile, codici brevi a valori frequenti e codici lunghi a coefficienti infrequenti, minimizzando la lunghezza media della codifica.
- bit-stream progettato in modo da soddisfare le richieste variabili di bit per le varie sotto-bande. Finestre sono di 1152 campioni ma i dati codificati non è detto che assumo sempre la stessa lunghezza. Quando il frame presenta un eccesso di bit rispetto bit-rate fissato, quelli extra possono essere messi in serbatoio , da dove possono esse prelevati quando la necessità per la codifica di un frame eccedono la lunghezza media.

L'algoritmo di allocazione dei bit seleziona un passo di quantizzazione che soddisfi il bit-rate e il rapporto SMR.
L'algoritmo inizia con il calcolo del rapporto rumore/maschera NMR, in db:
NMR = SNR - SMR per sottobanda.
SNR = segnale/rumore (1 bit = 6dB)
SMR è il rapporto segnale/maschera calcolato dal modello psicoaucustico.   
Prendendo in considerazione tutti i valori NMR  calcolati per sotto-banda si ricerca la sottobanco con il più basso rapporto NMR e si allocano i bit per quella sotto-banda.
Quando i bit totali del blocco superano i limiti imposti dal bit-rate, l'unità di allocazione dei bit computa una nuova stima del SNR, e il rapporto NMR per le sotto-bande viene ri-calcolato. Processo si ripete finchè non si possono allocare più bit. (Esempio 154, 4.16)

Layer III -  allocazione dei bit.
Sistema di 2 loop di iterazione annidati, che prendono in considerazione codifica Huffman e la riserva di bit.

Loop interno:
controlla il bit-rate, se numero di bit che risultano da una codifica di una dato blocco > del numero di bit a disposizione --> occorre una companding più efficace con un passo di quantizzazione più grande; operazione ripetuta più volte con differenti passi di quantizzazione finchè la richiesta di bit per la codifica Huffman è piccola abbastanza.

Loop esterno:
controlla la presenza di rumore, per fare in modo che il rumore di quantizzazione stia sotto la soglia di mascheramento,
si applicano i fattori a ogni banda, si parte da un fattore default di 1;
se il rumore di quantizzazione in una banda eccede la soglia di mascheramento , si corregge il fattore di scala per ridurre il rumore;
riduzione del rumore =  aumento allocazione bit --> occorre inviare al loop interno se si sta superando il bit-rate.
Continua finchè il rumore non scende sotto la soglia di mascheramento per ogni banda.

Terminazione:    
- rumore scende sotto la soglia di mascheramento;
- non è più possibile applicare il companding all'interno di una banda oltre il massimo consentito;
- l'applicazione riguarderebbe tutte le bande,
- alcuni includono limiti di tempo.

Layer I
A questo punto il blocco in output è composto da 384 campioni nel layer I che hanno codifica di lunghezza diversa a seconda dell'allocazione dei bit che sia ha per una certa sottobanda;
i blocchi vengono inviati/memorizzati in maniera seriale e non si comprende più la divisione interna della codifica.

Layer III
I blocchi codificati possono essere di lunghezza variabile, l'impacchettamento dei dati nel bitstream prevede un intervallo regolare sui pattern di sincronizzazione , ogni tot bit appare il pattern di sincronizzazione. Dopo il pattern si hanno le info aggiuntive.

Per il decider bisogna inserire delle informazioni che permettono la ricostruzione dei campioni all'interno dei blocchi.
Pacchetto(frame):
pattern predefinito di bit che annuncia l'arriva di un nuovo pacchetto;
Header info di sincronizzazione(descrive il tasso di campionamento);
Codici di controllo degli errori, 16 bit per il CRC;
32 allocazioni di 4 bit per ciascuna sottobanda;
Fattori di scala(32 codici di 6 bit ) che dicono come ciascuna banda è trattata dalla compansion.
Campioni divisi in 32 insieme di 12 campioni ciascuno, con variazione dei bit da 0 a 15 per insieme.
Pacchetto viene chiuso da eventuali info aggiuntive.

Decoder
ricostruisce le sequenze per sotto-banda sulla base dei blocchi di 12 campioni prendendo in considerazione l'allocazione dei bit e il fattore di scala.
Se una sottobanco non ha bit allocati , i corrispondenti campioni della sotto-banda sono messi a 0.
Una volta che l'intera sequenza di campioni di ciascuna delle 32 sottobanco è stata recuperata, si applica il banco di filtri in modalità di sintesi, e si calcolano 32 campioni audio in codifica PCM.


Elementi pratici della compressione MPEG


Successo MP3 è la sua versatilità nelle applicazioni,.

Modalità operative
MPEG I lavora con quattro modalità possibili:
segnali mono;
canali duali(due canali indipendenti, stesso parlato in lingue differenti);
segnali stereo;
joint stereo(combinazione dei segnali sinistro e destro in modo efficente);

Più Tassi di campionamento
MPEG I consente la compressione audio di segnali:
32, 44.1, 48 Khz
MPEG II estende alla loro metà
16, 22.05, 24 Khz
Bit-rate
[numero medio di bit consumati da un secondo di dati audio, kbps]
La selezione del bit-rate è lasciato quasi interamente all'implementatore.
Standard definisce una gamma di bit-rate che va da
32 a 320 kbps MPEG.
layer III permette anche la variazione di bit-rate tra i frame, che però deve essere supportata dal decoder.

La qualità del segnale ottenuto dalla decompressione dipende dal valore di bit-rate, cioè dalla forza della compressione.
bit-rate CD Audio è 1411.2 kbps
bit-rate con compressione MP3 per ottenere un segnale di qualità CD per musica pop/rock è 128 kbps.
Fattore di compressione 10-12.
La compressione a 128 kbps occupa all'incirca 1 mb/minuto: buon compromesso tra spazio occupato, velocità di codifica, e qualità del suono.
Musica acustica conviene salire a 192 o 256 kbps, molte armoniche
bit-rate dipende dalle esigenze del singolo progetto, non solo dalla qualità del suono decompresso.

Prestazioni MP3:
- qualità telefonica: compressione 96:1 (larghezza banda 2.5 kHz / mono / bit-rate 8 kbps)
- meglio di AM radio: 24:1 (7.5 kHz / mono / 32 kbps)
- simile a FM radio: 24:1 (11 kHz / stereo /64 kbps)
- quasi-CD: 16:1 (15 kHz / stereo / 96 kbps)
- CD: 12:1 (>15 kHz / stereo / 128kbps)

Programmi che eseguono codifiche: MP3 encoder, decomprimono: MP3 player o decoder.
Alla base vi sono librerie di funzioni che permettono di effettuare codifiche e decodifiche: Codec.

Scelta encoder dipende dalle esigenze.
Genere, più encoder è veloce più si perde in fedeltà audio.
Se necessario creare MP3 con basso bit-rate è opportuno utilizzare encoder lenti, in qualto altrimenti si rischia di perdere ancora qualità(essendo il bit-rate già basso).

Autore: Fabrizio Garis

Licenza Creative Commons
Compressione by Fabrizio Garis is licensed under a Creative Commons Attribuzione - Non commerciale 3.0 Italia License.

mercoledì 8 febbraio 2012

3.La Percezione Uditiva

Fisica e Cognizione
I suoni sono vibrazioni in un mezzo , che possono essere descritte mediante parametri fisici: ampiezza, frequenza, forma dell'onda.
Noi ci esprimiamo a proposito del suono con aggettivi:
- forte, debole (volume)
- alto, basso, acuto, grave (altezza)
- vuoto, pieno (timbro)
Due compiti principali per il sistema uditivo:
- Comprensione del messaggio sonoro: linguaggio, fruizione della musica, riconoscimento della  sorgente.
- Ricostruzione della mappa spaziale delle sorgenti sonore: localizzazione degli oggetti a partire dai suoni emessi in cui l'udito opera in tutte le direzioni.

Fisiologia dell'udito
I sistemi percettivi possono essere analizzati come delle funzioni di input/output.
Nel sistema uditivo l'input è il segnale acustico, le vibrazioni dell'aria che partono dalle sorgenti sonore e arrivano al nostro orecchio;
l'output è la comprensione del messaggio sonoro  e la ricostruzione della mappa spaziale delle sorgenti intorno a noi.

Orecchio, con componenti ridotte protette dalle ossee temporali. Converte le fluttuazioni di pressioni dell'aria in impulsi nervosi elettrochimici elaborati dal cervello.
Il segnale in ingresso mette in vibrazione la membrana del timpano, che trasmette il movimento meccanico agli ossicini e al liquido della coclea, che stimola il nervo uditivo.
La tromba di eustachio connette l'orecchio con la cavità orale , garantendo la stessa pressione sui due lati della membrana permettendo alla membrana di tornare in posizione dopo la vibrazione.
Il segnale propagato dal timpano verso l'interno viene elaborato dalla coclea, dove avviene la trasduzione da segnale acustico a segnale elettrochimico.
Il segnale elettrochimico viaggia lungo le vie nervose uditive, e viene elaborato in stazioni dette nuclei, raggruppamenti di cellule  nervose con specifiche proprietà , dove arrivano e partono i fasci che costituiscono i segmenti delle vie uditive. 
In tali stazioni  il segnale viene anche miscelato con il segnale proveniente dall'altro orecchio(bi-auricolare). La destinazione è la corteccia uditiva, che risiede nel lobo temporale, dove avvengono le elaborazioni di alto livello,  cioè le funzioni superiori  di interpretazione del segnale.

L'orecchio
Tre sezioni: orecchio esterno(padiglione, meato, timpano) medio (ossicini) interno (coclea).
Il segnale entra nel padiglione e percorre il meato. La forma del padiglione è complessa, offre un imbuto per la cattura di segnali ad alta frequenza (superiori a 3 Khz) in quanto la loro lunghezza d'onda è paragonabile alle dimensioni delle pieghe del padiglione.
Frequenze diverse vengono amplificate in modo diverso, a seconda della direzione del suono.
Il meato è il canale che connette il padiglione con il timpano, la sua frequenza naturale di vibrazione è intorno ai 2 khz, le frequenze in quella regione vengono amplificate è arrivano in modo più efficiente al timpano (comprensione del parlato).
L'orecchio medio propaga le vibrazioni dalla membrana del timpano alla coclea.
Propagazione avviene attraverso 3 ossicini, martello, incudine e staffa.
Martello è connesso al timpano, la staffa alla coclea e l'incudine propaga il movimento tra i due.
La staffa è inserita nella coclea attraverso la finestra ovale, che ha una superficie di vibrazione inferiore al timpano.
L'orecchio medio assolve due compiti: risolve i problemi della differente resistenza tra aria e perilinfa, fluido molto denso per cui le vibrazioni minori non avrebbero effetto sulla coclea, gli ossicini permettono di trasformare una vibrazione su un'ampia superficie in una vibrazione della stessa energia  ma distribuita su una piccola superficie. Secondo il principio della leva la forza che agisce sulla finestra ovale viene amplificata permettendo la percezione anche di segnali deboli.
Il secondo scopo è la protezione della coclea da suoni forti a bassa frequenza, che potrebbero danneggiarla.
I due elementi principali dell'orecchio interno sono i canali semicircolari(compiti di equilibrio) e la coclea, tubo avvolto a forma di chiocciola, il cuore della percezione uditiva.
La membrana fondamentale per l'elaborazione del segnale acustico è la membrana basilare su cui è appoggiato l'organo di Corti, che con oltre 20.000 cellule cigliate si occupa della trasduzione dal segnale acustico al segnale elettrochimico, che viene inviato al cervello. Le connessioni nervose delle cellule cigliate sono incanalate nel nervo uditivo.
La membrana basilare occupa la parte centrale della coclea per tutta la sua lunghezza. Stretta e leggera vicino agli ossicini e aumenta lo spessore verso l'altra estremità dove si trova un orifizio circolare detto elicotrema.
La staffa fa vibrare la perlina attraverso la finestra ovale. La vibrazione percorre tutta la coclea: rampa vestibolare, elicotrema e rampa timpanica, dove la finestra rotonda smorza le vibrazioni che altrimenti rimarrebbero in circolo nella coclea. Nelle vibrazioni ad alte frequenze il passaggio avviene in modo diretto attraverso la membrana basilare, quando le cellule cigliate si flettono si stimola la generazione di impulsi elettrochimici verso il cervello.
La membrana basilare distingue tra le frequenze presenti in un suono complesso rispondendo in modo differente a seconda della posizione lungo la membrana. Il diverso spessore e rigidità dalla base all'apice determinano la posizione sulla membrana per ogni frequenza dell'udibile.
Le alte frequenze alla base, le basse frequenze all'apice.
Dato un punto della membrana, la frequenza che presenta il picco in quel punto è detta frequenza caratteristica.
Funzionamento tonotopico della coclea: frequenze diverse stimolano regioni diverse della membrana basilare e dell'organo di Corti.
La regione che vibra in modo più vigoroso stimola un alto numero di cellule cigliate in una determinata area dell'organo di Corti, e quest'area manderà il più alto numero di impulsi al cervello.
Dal sito di provenienza sulla membrana si riesce a riconoscere la frequenza del segnale e quindi la sua altezza.
Per frequenze fino a 3khz: frequenza dello stimolo e posto di provenienza sono indicatori dell'altezza. Nervo uditivo trasporterà informazioni temporali e spaziali. Per alte frequenze solo la localizzazione sulla membrana sembra essere determinante.
L'intensità dei suoni viene determinata a livello della coclea a partire dall'ampiezza della vibrazione  della membrana basilare, cioè quando questa si sposta dalla posizione di riposo, che aumenta con  l'intensità. Più ampia è la vibrazione , più cellule cigliate si flettono  > impulsi nervosi.  

Trasduzione delle vibrazioni acustiche
Le cellule cigliate dell'organo di Corti trasducono le vibrazioni meccaniche in impulsi nervosi elettrochimici. Le cellule cigliate vengono stimolate dalle vibrazioni della membrana basilare.
Quando le ciglia si flettono, i canali degli ioni si aprono, e il voltaggio all'interno varia abbastanza da causare il rilascio di neurotrasmettitori che verranno assorbiti dalle fibre nervose uditive, stimolando l'invio di un segnale elettrico lungo il nervo coclearie. Dopo l'impulso fibre hanno un periodo di stasi. Ogni cellula cigliata ha circa 10 fibre del nervo uditivo connesse ad essa, con soglie di attivazione differenti.
Il cervello rileva le differenze tra il tasso di impulsi spontanei  e il tasso di impulsi dovuti alle vibrazioni.
Le cellule scaricano con tassi più elevati per vibrazioni  più intense, fino a un livello di saturazione:
fibre con tasso spontaneo alto e saturazione rapida: cambi di intensità livelli bassi;
fibre con tasso spontaneo basso e saturazione lenta: cambi di intensità livelli elevati;
Ciascuna fibra ha una sua frequenza caratteristica, che riesce a stimolarla con minima energia.
Temporizzazione degli impulsi:
Per i suoni <3Khz tenderà a seguire la fase  e gli intervalli tra gli impulsi tenderanno a essere multipli del periodo del tono, la membrana funge da discriminatore di frequenza e e rilevatore di fase;
Toni ad alta frequenza diviene debole l'associazione impulso-fase, la membrana non riesce a essere più un rilevatore di fase ma discrimina ancora le frequenze.
Codifica della Frequenza e Intensità di un tono.
La Frequenza in 2 modi: Il posto di eccitazione massima corrisponde a quelle fibre nervose la cui frequenza caratteristica è vicina alla frequenza del tono, che scaricheranno a un tasso superiore rispetto alle altre fibre, quindi la frequenza del tono sarà determinata dal posto sulla membrana da cui partono le fibre che presentano il più alto tasso di attivazione.
L'informazione di temporizzazione  vale per i toni con frequenza < 3Khz  in cui gli impulsi saranno associati al periodo e gli intervalli tra gli impulsi in un fascio di fibre indicheranno direttamente la frequenza del tono.
L'intensità vine codificata in modi diversi a seconda del livelo:
La gamma dinamica coperta dalla maggior parte delle fibre nervose uditive ad ALTO TASSO SPONTANEO  non supera i 100 db codificando i livelli a bassa intensità.
Le fibre con bassi tassi spontanei hanno una gamma più ampia  e codificano i livelli di alta intensità.
In entrambi i casi un gran numero di cellule cigliate controlla una ristretta banda di frequenze o gamma di intensità. Soldati in batteria: mentre alcuni sparano altri si ricaricano.

La Psicologia dell'udito
Il suono è un segnale a livello acustico, sensazione a livello percettivo , interpretato come musica  e parole a livello cognitivo.
L'ampiezza è percepita come volume interpretata come dinamica del suono;
La frequenza percepita come altezza e determina la classificazione del suono in classe di toni;
Lo spettro percepito come timbro e interpretato come identificazione della sorgente;
Le caratteristiche della propagazione del suono percepite come direzionalità  e usate per costruire una mappa spaziale soggettiva delle sorgenti intorno a noi.
Vedremo come la nostra percezione di una grandezza percettiva risulti dalla combinazione di più grandezze fisiche , con contributi differenti.

Volume
L'ampiezza del segnale viene misurata in termini di intensità sonora(SIL) sulla scala logaritmica dei decibel. SIL in db è data da 10xlog I/I0, dove I è l'intensità misurata in watt/m2 e I0 = 10alla-12 watt/m2 che è l'intensità minima alla quale si può udire un suono di 1000hz.
Dalla modalità di identificare I0 si comprende che la nostra percezione dell'ampiezza sia influenzata dalla frequenza del segnale stesso.
La grandezza percettiva del volume deve tener conto della frequenza: l'unità di misura del volume percepito sono i foni.
Un suono ha un volume di x foni, se un suono di 1000 hz che viene percepito con lo stesso volume ha un'intensità di x dB.
Driagramma di Fletcher e Munson(Anni 40, risultato indagine empirica cittadini americani).
Ascissa: frequenze dell'udibile, 20 - 20.000 hz.
Ordinata: intensità sonora, 0 - 140 dB.
Le curve rappresentate , isofone, punti che fanno parte della stessa curva vengono percepite con lo stesso volume.
La nostra sensibilità è massima per suoni compresi tra 2000 e 5000 hz, in questo intervallo le curve raggiungono il loro minimo.
I suono all'estremità dell'udibile hanno bisogno di energia elevata per essere uditi(50 hz: 40dB).
Il diagramma viene utilizzato nelle tecniche di compressione in cui la curva più importante è quella dei 0 foni, suoni al di sotto saranno eliminati senza introdurre distorsione.

Altezza
Il parametro fisico a cui è correlata più da vicino è la frequenza. Frequenze udibili: 20 a 20.00hz.
Sotto i 30 hz suoni difficili da udire: servono intensità elevate e condizioni di isolamento.
In natura abbiamo suoni complessi con molte armoniche.
Il parametro percettivo dell'altezza corrisponde in generale alla nozione di frequenza fondamentale, anche se non sempre è presente nello spettro, ma viene inferita dalle parziali presenti.
Per differenziare tra le altezze in modo percettivo in musica è stato studiato il problema attraverso la nozione di intervallo, cioè la distanza tra due note di differente altezza. Alla base del nostro sistema musicale l'intervallo è quello di ottava, una nota distante un 'ottava da un'altra ha frequenza doppia o dimezzata. Ogni ottava segna un incremento di frequenza di un fattore 2, è una scala logaritmica in base 2.

Timbro
Descrive la qualità di un suono, parametro che permette di distinguere due suoni con stessa altezza e volume.
Il parametro fisico è la forma d'onda, cioè il contenuto armonico del suono, ma anche le caratteristiche dinamiche come l'inviluppo dell'ampiezza sopratutto nella fase di attacco, e i fenomeni di vibrato.
Il contenuto armonico è dato dal numero e dall'intensità relativa delle armoniche superiori presenti.
L'analisi di Fourier eseguita dal nostro apparato uditivo è in grado di determinare il contenuto armonico di un suono, codificato in un timbro.
Importanti fasi di attacco e decadimento. 
forte tromba lontana VS debole tromba vicina: siamo in grado di riconoscere quale dei due sta suonando più forte grazie al timbro derivato dal contenuto armonico delle fasi di attacco e decadimento.
Riconoscimento del timbro poche decine di millisecondi.
Necessari 4db nelle medie e alte armoniche per percepire cambio di timbro,
10 dB nelle basse armoniche.

Risoluzione in frequenza e mascheramento
Il nostro apparato uditivo si comporta come un analizzatore di Fourier, percepisce le componenti individuali di un suono distribuendole lungo la membrana basilare della coclea.
E un dispositivo meccanico di traduzione tra la frequenza del segnale e la posizione del picco di vibrazione sulla membrana(funzionamento tonotopico).
Il picco di vibrazione interessa una regione che ha una dimensione e se più frequenze ravvicinate ricadono in una stessa regione possono causare imprecisioni nella percezione delle singole componenti.
Fenomeno psicoacustico che ci consente di rilevare l'ampiezza di banda dei filtri uditivi  lungo la membrana è detto mascheramento. Fenomeno per cui un segnale forte maschera uno debole.
Sono stati condotti studi con esperimenti di mascheramento: l'ampiezza di banda con cui lavorano i filtri uditivi ha assunto il nome di banda critica (Fletcher).
La banda critica rappresenta la gamma di frequenze all'interno della quale si verificano i fenomeni di mascheramento.
Suoni discriminati perfettamente solo quando ricadono in differenti bande critiche.
Suono complesso, le componenti parziali udite tutte senza problemi se sono in bande critiche differenti.
Nel caso due parziali sono nella stessa banda una potrebbe mascherare l'altra.
La presenza di rumore con un'ampiezza di banda che copre una banda critica contribuisce al mascheramento dei toni presenti in quella banda.
Le bande critiche permettono di misurare la frequenza in modo uniforme dal punto di vista percettivo. L'unità è la larghezza delle bande critiche  Lunghezza costante fino a 500 hz  e oltre  le bande critiche diventano più larghe.
Comportamento dovuto all'inviluppo della vibrazione sulla membrana che assume forme complicate. Inoltre l'estensione della zona della membrana influenzata da una vibrazione cambia con l'intensità.
Soglia di mascheramento di un tono è il livello di intensità al quale esso si riesce ad ascoltare anche in presenza di un altro tono.
Mascheramento tonale: è possibile individuare un tono. Non tonale: no tono specifico(rumore).

La Segregazione del suono
Localizzazione delle sorgenti.
Le onde sonore si combinano per arrivare al nostro orecchio in un'unica forma d'onda complessa che viene analizzata nelle sue parziali che dovranno essere ricombinate in modo opportuno dal nostro apparato.
Occorre re-identificare le sorgenti, cioè assegnare le parziali alle sorgenti sonore di provenienza.
Le parziali sono segregate dalla sorgente che le ha emesse.
Si conoscono alcuni fattori che influenzano la segregazione:
- coerenza/incoerenza  degli attacchi: stessa sorgente parziali coerenti, sorgenti diverse parziali incoerenti.
- condivisione/non condivisione della locazione spaziale: parziali della stessa sorgente condivideranno la direzionalità del movimento.
- differenze nella struttura armonica: parziali in relazione armonica più facilmente appartengono alla stessa sorgente.

Autore: Fabrizio Garis
Licenza Creative Commons
La percezione uditiva by http://lucciolaonline.blogspot.com/2012/02/3la-percezione-uditiva.html is licensed under a Creative Commons Attribuzione - Non commerciale 3.0 Italia License.