home page indice cap. precedente


2. MPEG audio


2.1. Sistemi di codifica audio

2.2. Codifica e decodifica di MPEG audio


2.1. Sistemi di codifica audio

Il bitstream di un segnale audio digitalizzato è dato dal numero di campioni al secondo per il numero di bit usati per quantizzare ogni campione. Nel caso ad esempio di un CD la frequenza di campionamento è di 44.1 kHz, e la risoluzione è a 16 bit per campione; in un segnale stereofonico si ha perciò un bitrate di 1.4 Mbit/s, che evidenzia la necessità di una compressione. Per ridurre le dimensioni del bitstream ci sono due possibilità: o si riduce la frequenza di campionamento, o il numero di bit di quantizzazione per ogni campione. Poiché la frequenza di campionamento non può essere ridotta senza perdere informazione, la sola strada praticabile resta quella della riduzione dei bit di quantizzazione, ed è quella che è stata intrapresa in MPEG. Naturalmente si tratta di ridurre i bit di quantizzazione senza perdere in qualità sul segnale. Trattando segnali audio la qualità del suono è definita da parametri diversi da quelli comunemente usati per caratterizzare un segnale, come il rapporto segnale/ rumore e la larghezza di banda, perché il gruppo di codifica e decodifica può introdurre rumore e distorsioni che tuttavia non alterano la "bontà" del suono percepito. Sono quindi necessari altri parametri, la cui definizione ha portato, nel caso di MPEG, a fare ricorso a costosi "test di ascolto". Il test consiste nell'ascoltare una sequenza di suoni, codificati e non, da parte di un gruppo di esperti, e nell'esprimere una valutazione da 1.0 a 5.0 secondo la tabella seguente:

MPEG audio esegue la compressione dei segnali audio usando schemi di codifica che garantiscono elevate prestazioni.


2.2. Codifica e decodifica di MPEG audio

La chiave della codifica di MPEG audio è il cosiddetto effetto di masking. Esso è dovuto alle caratteristiche dell'orecchio umano, per il quale un tono forte ad una determinata frequenza nasconde toni più deboli che si trovano nelle sue vicinanze, i quali, anche se effettivamente presenti, non vengono percepiti.

Consideriamo a titolo di esempio un tono ad una data frequenza che abbia un rapporto segnale/rumore di 60 dB. In un suo intorno di frequenze esiste una zona in cui si crea una soglia, poniamo di 36 dB, al di sotto della quale nessun altro tono viene percepito. Questa diventa il nuovo riferimento, per cui si può assumere che il tono iniziale in effetti sia di 60 - 36 = 24 dB. Poiché ad ogni bit di quantizzazione corrispondono 6 dB, ora sono sufficienti 4 bit in luogo dei 10 necessari senza considerare l'effetto di masking.

Il codificatore elabora il segnale audio digitale e fornisce un flusso di dati compressi. L'algoritmo non è standardizzato e può usare vari mezzi per la codifica, come la stima della soglia dell'effetto di masking, la normalizzazione (con un apposito fattore di scala si modificano i valori del segnale prima della quantizzazione), la quantizzazione. Tuttavia l'uscita del codificatore deve essere tale da poter essere interpretata dal decodificatore, cioè deve rispettare una ben precisa sintassi.

La figura illustra la struttura di base di un codificatore audio.

Fig. 3. Schema del codificatore audio di MPEG.

Il flusso di ingresso viene filtrato e sottocampionato in frequenza dal blocco di mapping. Qui viene eseguita una divisione dello spettro del segnale in sottobande, che saranno poi opportunamente trattate dal modello psicoacustico. I livelli 1 e 2 (vedi 2.2.1) usano un filtro a 32 sottobande, in ciascuna delle quali vengono presi 12 o 36 campioni per l'elaborazione. Il livello 3 usa un banco di filtri, che produce ancora 32 sottobande, con una risoluzione che dipende dal segnale, e può prendere 6 o 18 campioni per sottobanda. I campioni che escono dal filtraggio prendono il nome di campioni di sottobanda per i livelli 1 e 2, e di campioni di sottobanda modificata per il livello 3. Un modello psicoacustico crea una serie di dati che verranno utilizzati per il controllo della quantizzazione ed altri aspetti della codifica (ad esempio è qui che viene calcolata la soglia per l'effetto di masking); i dati differiscono a seconda dell'implementazione che si realizza per il codificatore. Il blocco di quantizzazione e codifica crea un set di simboli di codice dai campioni in uscita dai blocchi che lo precedono; anche questo blocco dipende dall'implementazione che si sceglie per il sistema. Il blocco di frame packing assembla il bitstream dei dati in uscita dagli altri blocchi e, se necessario, aggiunge altre informazioni (ad esempio dati ausiliari per il controllo degli errori).

Il decodificatore accetta un flusso di dati compressi nella sintassi specificata dallo standard e usa le informazioni per produrre in uscita i campioni del segnale audio.

La figura illustra la struttura di base di un decodificatore audio.

Fig. 4. Schema del decodificatore audio di MPEG.

Il flusso di dati viene inviato al blocco di frame unpacking che li "spacchetta" per ricostruire i vari pezzi dell'informazione; il blocco esegue inoltre le operazioni legate al controllo degli errori (se il codificatore prevede un controllo d'errore mediante dati ausiliari). Il blocco di ricostruzione ripristina la forma quantizzata del set di campioni sottoposti a mapping nel codificatore, dopodiché il blocco di mapping inverso li trasforma in un flusso PCM.

2.2.1. I tre livelli di MPEG

Il gruppo MPEG ha proposto tre metodi di codifica, noti come Livello 1, Livello 2 e Livello 3, con complessità e prestazioni crescenti.

Per ciascun livello lo standard specifica il formato del bitstream e il decodificatore. Non specifica rigidamente il codificatore per permettere diverse implementazioni future, limitandosi a fornire un codificatore per ogni livello solo a titolo esemplificativo.

Il codificatore analizza le componenti spettrali del segnale audio, calcola l'effetto di masking, valuta la soglia di percezione, ottimizza le prestazioni in funzione della minore sensibilità dell'orecchio umano alle basse e alte frequenze: tutto questo per poter allocare il numero di bit che ha a disposizione, in modo da rispettare le specifiche imposte dal bitrate e dal masking.

Il decodificatore è molto meno complesso, dato che il suo unico obbiettivo è quello di sintetizzare un segnale audio a partire dalla codifica delle sue componenti spettrali.

Il bitstream contiene un header informativo che garantisce il rispetto della struttura gerarchica tra i livelli.

Livello 1

Contiene il mapping di base dell'ingresso audio digitale (in 32 sottobande, divisione stabilita per la formattazione dei dati), un modello psicoacustico che determina l'allocazione ottimale dei bit.

Il ritardo minimo teorico di codifica/decodifica è di circa 19 ms.

Fig. 5. Operazioni della fase di codifica.

Livello 2

Oltre alle caratteristiche fondamentali del livello precedente fornisce una codifica addizionale per l'allocazione dei bit, e una serie di fattori di scala per l'elaborazione dei campioni del segnale. La struttura del frame è diversa da quella del livello precedente e contiene un numero maggiore di campi.

Il ritardo minimo di codifica/decodifica è di circa 35 ms.

Fig. 6. Operazioni della fase di decodifica.

Livello 3

Ripete le parti fondamentali degli altri livelli e introduce una aumentata risoluzione in frequenza basata su un banco di filtri ibrido. Ha inoltre un quantizzatore non uniforme, esegue una segmentazione adattativa e una codifica entropica dei valori quantizzati.

Il ritardo minimo teorico è di circa 59 ms.

Le figure 5 e 6 riportano i diagrammi di flusso delle varie operazioni eseguite rispettivamente in fase di codifica e di decodifica. Queste, in generale, sono comuni a tutti e tre i livelli, però sono realizzate in modo via via più complesso dal livello 1 verso il livello 3. In particolare gli schemi proposti sono da considerarsi quelli tipici dei livelli 1 e 2, mentre risultano schemi solo indicativi per il livello 3.

Per quanto riguarda il ritardo di elaborazione per i vari livelli occorre una precisazione. Si hanno i seguenti valori tipici:

- livello 1: da 19 a 50 ms

- livello 2: da 35 a 100 ms

- livello 3: da 59 a 150 ms

Sono valori solo indicativi, le realizzazioni pratiche possono portare a valori significativamente più alti. Ci sono applicazioni che richiedono un ritardo massimo ammissibile di 10 ms (ad esempio la trasmissione vocale), per le quali può sembrare quindi che la codifica MPEG non sia appropriata, tuttavia esistono soluzioni diverse (una è per esempio l'uso di soppressori di eco) che consentono di risolvere questo problema. Nella maggior parte dei casi questi valori del ritardo non sono critici.

Tutti i livelli possono usare frequenze di campionamento di 32, 44.1 o 48 kHz, e lavorano con i seguenti bitrate:

- livello 1: da 32 a 448 kbit/s

- livello 2: da 32 a 384 kbit/s

- livello 3: da 32 a 320 kbit/s

Per il livello 1 il bitrate raccomandato dall'ISO è di 192 kbit/s per canale audio. Per il livello 2 è di 128 kbit/s per canale audio (questo livello è stato scelto per l'implementazione della futura rete di trasmissione audio digitale DAB - Digital Audio Broadcasting -). Il livello 3 ha un bitrate consigliato di 64 kbit/s per canale audio, essendo stato progettato per fornire le migliori prestazioni a bassi bitrate (intorno ai 64 kbit/s o più bassi); l'obbiettivo che si persegue è proprio quello di conservare la qualità del suono anche a bassi bitrate. Attualmente il livello 3 è usato nelle reti ISDN e nei collegamenti via satellite.

2.2.2. Compatibilità tra versioni MPEG

La compatibilità è stata mantenuta tra le varie versioni di MPEG, e proprio per questo sia MPEG-1 che MPEG-2 presentano un'organizzazione a livelli. Questi a loro volta sono strutturati in modo gerarchico, nel senso che il decodificatore di un dato livello è capace di interpretare il bitstream di quelli sottostanti.

Rispetto a MPEG-1, lo standard MPEG-2 introduce alcune innovazioni.

  1. "Low sample rate extension", per applicazioni a basso bitrate e a limitata larghezza di banda. Le nuove frequenze sono: 16, 22.5, 24 kHz mentre il bitrate scende sotto gli 8 kbit/s.
  2. "Multichannel extension", che ha fino a 5 canali audio (left, center, right, left surround, right surround), e opzionalmente un canale extra LFE (Low Frequency Enhancement) per i segnali di subwoofer. Inoltre una "multilingual extension" permette l'aggiunta di altri 7 canali audio.

Queste estensioni hanno portato problemi di compatibilità che sono stati affrontati nella fase di definizione di MPEG-2. L'idea fondamentale è di usare lo stesso formato di base del bitstream come definito in MPEG-1, con i campi principali che riportano due segnali audio (L0 e R0), e i campi secondari che riportano le informazioni della multichannel extension. Si possono individuare tre situazioni.

Il decodificatore di MPEG-2 deve accettare qualsiasi bitstream audio in formato MPEG-1 (che è relativo a 1 o 2 canali audio).

Il decodificatore di MPEG-1 dovrebbe essere capace di interpretare i segnali nei campi principali (L0 e R0) del bitstream di MPEG-2.

E' una tecnica che consente di miscelare i 5 canali audio della "multichannel extension" nei segnali L0 e R0 (su L0 vanno left, left surround e center, mentre su R0 vanno right, right surround e center). Questo consente al decodificatore di MPEG-1 di riprodurre, anche se non perfettamente tuttavia in maniera apprezzabile, l'informazione contenuta nei 5 canali audio, che invece viene sfruttata appieno nella decodifica di MPEG-2.

Di questi problemi la compatibilità all'indietro è quella che presenta le maggiori difficoltà. Infatti è stato necessario creare uno specifico gruppo di lavoro, del quale fanno parte AT&T, Dolby, Fraunhofer, IRT, Philips e Sony, che cerca di migliorare le prestazioni del gruppo codificatore/decodificatore non compatibile multichannel, che presenta ancora un significativo livello di rumore di quantizzazione. Il lavoro di questo gruppo (NBC Working Group, dove NBC sta per Non-Backwards Compatible) porterà alla ridefinizione di questo ambito nello standard MPEG.

2.2.3. MPEG audio: gli standard 1 e 2 a confronto

Un aspetto importante è quello delle applicazioni a basso bitrate dei due standard.

I tre livelli di MPEG-1 sono stati concepiti per fornire prestazioni via via crescenti in modo da compensare la riduzione del bitrate e mantenere la qualità audio CD. MPEG-2 presenta invece la "low sample rate extension", una novità introdotta per applicazioni a basso bitrate. Questa però non entra in competizione con il livello 3 di MPEG-1 perché diretta ad applicazioni con banda limitata (10 kHz). Infatti, per applicazioni in banda totale, le implementazioni del livello 3 di MPEG-1, sia a 64 che a 56 kbit/s per canale audio, di qualsiasi gruppo codificatore/decodificatore ISO, riescono a fornire la migliore qualità sonora. Invece la "low sample rate extension" del livello 3 di MPEG-2 fornisce, nelle sue implementazioni, una eccellente qualità sonora per la riproduzione della voce in monofonia a 56 kbit/s, e ancora una buona qualità per la musica in stereofonia ad un bitrate totale di 64 kbit/s per una larghezza di banda di circa 10 kHz.

Attualmente in MPEG-1 e MPEG-2 il livello 3 fornisce di gran lunga la migliore qualità sonora a basso bitrate rispetto al livello 2. A titolo di esempio, con un bitrate di 60-64 kbit/s per canale audio, il livello 2 ha ottenuto nei test di ascolto un punteggio medio tra 2.1 e 2.6, mentre il livello 3 ha raggiunto valori compresi tra 3.6 e 3.8.

In futuro entrambi i livelli potranno essere migliorati: il livello 2, progettato per ottenere un certo compromesso tra qualità e complessità, è tuttavia dotato di un formato del bitstream che permetterà soltanto innovazioni limitate; al contrario il livello 3 possiede un formato del bitstream tale che il gruppo codificatore/decodificatore attuale non riesce ancora a sfruttarne appieno le potenzialità, per cui è quello che meglio si presta per sviluppi futuri.

Ultimo aggiornamento: 21-Mar-1996


imageTelematic lab's home page