Appunti sulla codifica audio

Materie:Appunti
Categoria:Informatica
Download:57
Data:05.04.2001
Numero di pagine:7
Formato di file:.doc (Microsoft Word)
Download   Anteprima
appunti-codifica-audio_1.zip (Dimensione: 57.61 Kb)
trucheck.it_appunti-sulla-codifica-audio.doc     387.5 Kb
readme.txt     59 Bytes


Testo

Appunti sulla codifica audio
1. Introduzione
La codifica audio rappresenta un insostituibile mezzo per la trasmissione e l’elaborazione di un qualunque segnale audio, a partire da un semplice segnale vocale fino al più complesso brano musicale.
La conversione di una qualsiasi forma audio (suoni, musica,…) in dati memorizzabili e utilizzabili da un sistema digitale consente di modificare a piacimento i dati stessi e di scambiarli anche tra utenti a grande distanza.
Grazie allo sviluppo dell’audio digitale si può contare su una qualità costante dell’audio archiviato e sulla costanza nel tempo dei codificatori numerici. Si preferisce studiare codificatori a basso bit rate per garantire un aumento dell’efficienza a bassi costi, mantenendo comunque alta la qualità del segnale ricostruito. Infine, dalla parte del decodificatore, si richiede bassa complessità e basso consumo di energia.
Si ricordi che la qualità di un segnale audio presente su un supporto digitale è proporzionale alla memoria occupata. Con un semplice esempio numerico si dimostra quanto detto e
si mostrano facilmente anche gli ordini di grandezza: un brano musicale contenuto su di un cd contiene frequenze non superiori ai 22 kHz. Sarà dunque sufficiente campionare al doppio della frequenza massima, basta campionare a 44.1 kHz, usando ad esempio 16 bit per la quantizzazione delle ampiezze. Ciò vuol dire prendere 1 campione ogni 22.6 micro secondi. Se si sceglie di campionare 1 minuto di musica, in 1 secondo si prendono 44100 campioni, in 1 minuto 2646000 campioni. Per memorizzare su di un supporto digitale 1 minuto di musica in qualità cd occorrono 423336000 bit (2646000*16), cioè circa 5 Mbytes di memoria. Essendo poi i brani stereo, cioè formati da 2 canali indipendenti, si moltiplica per due ottenendo 10 Mbytes. Al fine di ridurre i costi in termini di memoria si studiano quindi speciali codifiche per comprimere i dati senza perdere la qualità del segnale.
2. Prima classificazione di codificatori
Una prima classificazione puo' essere fatta basandosi solo sulla larghezza di banda del sistema e sulla qualità del segnale decodificato. Questi schemi, infatti, non tengono conto del fatto che il segnale vocale ha una sua struttura tipica e sfruttando ciò si può ridurre la velocità di trasmissione e migliorare quindi la qualità del sistema.
• Un'importante codifica audio dove il parlato è rappresentato da un numero fisso di campionamenti al secondo è PCM (Pulse Code Modulation). E’ molto utilizzata nelle reti telefoniche con 8000 campionamenti a 8 bit al secondo, così da trasmettere 64000 bit al secondo. Il segnale dapprima viene filtrato per eliminare eventuali errori di aliasing e poi campionato; in seguito, a ciascun campione del segnale viene sostituita l’ indicazione dell’intervallo di appartenenza i[k]. Se M è il numero di dei possibili intervalli, ciascun termine i può assumere M determinazioni ed è quindi rappresentato da un vettore binario a log2 M componenti. A lato ricezione la sequenza ricevuta viene dapprima segmentata in successioni di log2 M bit e ad ogni successione viene associato l’ intervallo i corrispondente e a quest’ultimo il suo valore centrale qi. La sequenza dei valori quantizzati così ricostruita viene trasformata in un segnale campionato che passa infine attraverso un filtro ricostruttore passa-basso.
Lo schema di quantizzazione PCM non dà buone compressioni, non tiene infatti conto della variabilità a breve termine delle caratteristiche del segnale. I sistemi che tengono conto di questa variabilità e in funzione di questo operano una scelta della trasformazione da operare localmente vengono detti sistemi adattativi.
• Una versione più efficiente del PCM è l’ ADPCM (Adaptive Differential Pulse Code Modulation), che invece di trasmettere i campionamenti PCM trasmette le differenze tra due campionamenti successivi, così da ottenere una maggiore compressione.
• A-Law: e' un metodo utilizzato, particolarmente in Europa ed in Asia, per diminuire la dinamica audio passando da campioni a 12 bit a campioni a 8 bit utilizzando una trasformazione non lineare dei valori campionati.
• -Law: simile al metodo A-Law, viene utilizzato negli Stati Uniti. Come il precedente, presenta un rapporto SNR di 38 dB e consente un bit-rate di 64 Kbit/s.
Questi ultimi due metodi riducono le prestazioni di picco a vantaggio di una migliore uniformità di comportamento al variare della potenza del segnale.
3. Altro schema di classificazione
Si possono distinguere due categorie di sistemi che invece tengono conto della struttura tipica della voce. I sistemi che appartengono alla prima categoria sono chiamati sistemi a codifica di forma d’onda e cercano di creare uno schema di quantizzazione più evoluto (in genere adattativo), migliorato attraverso l’uso di pesature, che tengono conto delle proprietà uditive dell’orecchio.
Una seconda categoria di sistemi utilizza le conoscenze della struttura del segnale vocale per generare in ricezione un segnale , attraverso un modello di generazione locale, grazie ai parametri estratti dal segnale vocale originario e trasmessi in sostituzione di quest’ultimo. Al lato di emissione infatti, avviene un’estrazione e codifica di opportuni parametri del segnale originario, che una volta trasmessi consentono al lato ricezione di generare un segnale sintetico dotato di caratteristiche le più simili possibili a quelle del segnale originario.Questi sono chiamati sistemi a codifica di parametri. Rappresentanti di queste due categorie sono la codifica MP3 (MPEG 1, layer III) per la codifica a forma d’onda, e il CELP (Code-Excited Linear Prediction) per la codifica di parametri, che è, fra l’altro, usato nei sistemi GSM di telefonia mobile.
4. Modello del segnale vocale
4.1 LPC (Linear Predictive Coding)
4.2 Codificatori ‘Analysis- by- synthesis’
• Predittore a breve termine
• Metodo dell’autoccorrelazione
• Predittore a lungo termine
Prima di passare a una più accurata descrizione di alcuni sistemi a codifica di parametri e a codifica di forma d’onda è utile fare un cenno al modello di generazione del segnale vocale.
Gli organi di fonazione comprendono i polmoni, le corde vocali e il tratto vocale; a seconda della loro posizione vengono prodotti diversi tipi di suoni. Brevemente si può dire che, se le corde vocali non sono tese e vi è un’improvvisa apertura lungo il tratto vocale vengono emessi suoni sordi; se le corde vocali sono invece tese l’aria non riesce a fuoriuscire se non quando l’accresciuta pressione prodotta dai polmoni non riesca a vincere l’azione di chiusura dei muscoli che tendono le corde vocali. L’aria fuoriesce a sbuffi, la pressione acustica a valle delle corde vocali ha un andamento periodico, con forma d’onda triangolare. La frequenza fondamentale, che varia in genere tra gli 80 e i 300 Hz in funzione del parlatore è detta frequenza di pitch Fo, intendendo con la parola pitch il tono della voce. I suoni emessi in questo caso vengono detti sonori.
In questo modello figurano due diverse sorgenti di eccitazione, entrambe a distribuzione (stazionaria), uniforme ed a potenza unitaria; la prima, che schematizza i suoni sonori, emette una sequenza periodica di impulsi di frequenza Fo; la seconda, che invece schematizza i suoni sordi, o non vocalizzati, emette una sequenza puramente casuale.

Fig.1 Schema generale del modello del segnale vocale
Il segnale di eccitazione x[k] emula la pressione acustica all’ingresso del tratto vocale, schematizzato con Ho[z] sia nel caso sonoro (bo=1) che nel caso sordo (bo=0).
Inoltre il filtro Ho[z] tiene conto della forma effettiva del segnale di eccitazione entro il periodo, quando vengono emessi suoni sonori.
Lo spettro complessivo è pari al prodotto di una componente periodica in frequenza di ampiezza diversa da zero solo in un intorno dei multipli di Fo, dovuta all’eccitazione, per una componente lentamente variabile in frequenza, che descrive il comportamento del tratto vocale.
La descrizione sopra riportata ci permette di introdurre un primo sistema a codifica di parametri indicato con il nome di Vocoder LPC. Il sistema si basa sull’osservazione che se si eccita il filtro di ricezione HR[z] con una sequenza a spettro uniforme, la sequenza in uscita presenta uno spettro a breve termine simile a quello del segnale originario. In questo modo non c’è bisogno di trasmettere il segnale di eccitazione, ma lo si sostituisce al lato ricezione, con una sequenza a spettro generata localmente. Affinchè tutto ciò funzioni il generatore locale deve essere realizzato come suggerisce il il modello di generazione del segnale vocale.
In un tratto temporale di 15-30 ms,al lato di emissione vengono calcolati e quantizzati i coefficienti di predizione, viene classificato il suono e, se sonoro, viene individuata la frequenza fondamentale.
Tutti questi parametri vengono quantizzati e inviati . Al lato ricezione, i parametri vengono dequantizzati e si ricostruisce il segnale sintetico x’[k].
Questi sistemi presentano il vantaggio di una bassa velocità di trasmissione, sebbene non presenti un’elevata qualità . Si riescono a realizzare sistemi a velocità compresa tra 1200 e 2400 bit/sec guadagnando in velocità da 50:1 a 25:1 rispetto al sistema PCM.
Come già detto, l’obiettivo fondamentale di una buona codifica audio è la riduzione della ridondanza del segnale vocale. Nelle codifiche di tipo predittivo usualmente ci si basa su quello che già si è precedentemente trasmesso, inviando solo la parte innovativa; ciò che si riesce a fare per la voce però, non si applica con lo stesso risultato a tutti i segnali audio.
I codificatori vocali LPC operano a un bit –rate inferiore ai 2 kbit/sec, ma la qualità del segnale sintetico diventa scadente, ad esempio, per applicazioni telefoniche commerciali.
Il bisogno di ottenere una buona qualità del discorso a un bit-rate minore di 10 kbit/sec per applicazioni su canali con larghezza di banda limitata ha sviluppato l’interesse nel ricercare algoritmi più efficienti per la codifica LPC. La limitazione maggiore della codifica LPC è nell’assumere che i segnali parlati sono o sordi o sonori, percui la sorgente d’eccitazione è o un treno di impulsi o un rumore. In verità il tratto vocale può essere eccitato da entrambi i tipi di suoni.
Dal 1982 cominciarono i primi studi verso un nuovo modello di eccitazione:’multi-pulse excitation’, in cui non c’e’ il bisogno di conoscere a priori la natura del suono.
L’eccitazione è modellata da un numero di impulsi (in genere 4 per ogni 5 ms) le cui ampiezze e posizioni sono determinate minimizzando l’errore pesato tra il segnale vocale originario e quello sintetizzato.
Da queste ipotesi nascono una serie di codificatori sempre migliori capaci di mantenere la qualità del discorso a bassi bit-rate (

Esempio