la codifica MP3 - Peceptual Coding (Codifica Percettiva)

Ciò che rende la codifica MP3 efficace come metodo di compressione dei dati audio, è la sua differenza dal modello PCM. Come abbiamo visto a proposito della codifica PCM, il suo scopo è riprodurre digitalmente la forma d'onda di un segnale quanto più è possibile. Così, è intuitiva l'assunzione implicita del PCM: la riproduzione di suono richiede la riproduzione della forma d'onda. Tuttavia, questa idea, pur rigorosa, trascura il processo di percezione umana del suono.

Il punto cruciale della questione è che le nostre orecchie ed il nostro cervello si sono sviluppati in conseguenza di successivi adattamenti evolutivi, del tutto differenti dagli scopi legati alle apparecchiature di misura. Tuttavia, siamo influenzati proprio dagli strumenti di misura, in quanto tendiamo ad interpretare i fenomeni esterni in accordo ai pregiudizi che deduciamo dalle misurazioni. Per esempio, è provato che un raddoppio nell'ampiezza di un suono ondulatorio non corrisponde necessariamente ad un raddoppio del livello sonoro apparente del suono.

Poiché il nostro obiettivo è riprodurre un suono per la soddisfazione di un ascoltatore umano, potremmo perciò concordare che è piuttosto inutile riprodurre accuratamente ogni caratteristica della forma d'onda di quel suono. Invece, potremmo concentrarci su quelle determinate proprietà della forma d'onda che potrebbero essere molto importanti per l'ascoltatore, prediligendo la registrazione di queste proprietà. Questa è la teoria alla base della cosiddetta "perceptual coding" (codifica percettiva).
Esprimendoci in termini più semplici, ma di immediata comprensione, potremmo dire mentre la PCM tenta catturare una forma d'onda così com'è, MP3 tenta di catturare una forma d'onda per come potrebbe suonare (la scelta del verbo "potere" piuttosto che "dovere" non è indifferente: un'onda non deve suonare nel modo che pensiamo, un'onda può suonare come ci aspettiamo... ma può anche non farlo).

Per raggiungere questo obiettivo, è stato determinante un certo insieme di valutazioni circa ciò che è o non è significativo per un ascoltatore umano. Questo insieme di valutazioni è generalmente riassunto in un "modello psicoacustico". Per capire come lavora il modello psicoacustico, dobbiamo considerare due concetti importanti per l'audio digitale e la codificazione percettiva: la ridondanza e l'irrilevanza.

Entrambi i termini descrivono le ragioni per cui una certa quantità di dati audio è ritenuta non necessaria, in modo da considerare ragionevolmente ininfluente ciò che può essere scartato o ignorato senza una degradazione inaccettabile nella qualità del suono.
Già abbiamo visto un esempio di ridondanza nella discussione di codificazione delle forme d'onda in PCM. Il PCM audio "CD-quality", scarta frequenze più alte di 22.05 kHz. Così, la frequenza di campionamento di 44.1 kHz è stata scelta perchè frequenze di 22.05 kHz sono state ritenute oltre la soglia dell'udito umano, e perciò ridondanti. Naturalmente, se dovessimo decidere (come alcuni audiofili con orecchio particolarmente esercitato) che le frequenze sopra i 22.05 kHz restituiscono comunque (all'interno della banda udibile) importanti informazioni sul timbro e tono di suoni e musica, potremmo scegliere di usare una frequenza di campionamento maggiore. Con ciò cattureremmo alcune delle frequenze che un sistema "CD-quality" avrebbe trattato come ridondante. D'altra parte, così facendo, avremmo semplicemente spostato gli obiettivi (o, più precisamente, il "Limite di Nyquist"), in modo che la ridondanza si presentati a frequenze più alte di prima. La ridondanza, in altre parole, è una presenza inevitabile dell'informazione digitale.

L'irrilevanza, invece, è un concetto più radicale. La teoria alla base della codificazione psicoacustica ammette che, date le particolarità della percezione umana, certe proprietà di una data forma d'onda saranno effettivamenti insignificanti per un ascoltatore umano: non sarà percepito tutto il segnale. D'altra parte, un sistema PCM, a motivo della sua caratteristica volta a catturare l'intera forma d'onda, richiederà la registrazione e la memorizzazione di una grande quantità di dati irrilevanti, a dispetto di un vantaggio impercepibile sull'ascolto successivo.

La codificazione percettiva prevede - in riferimento ad un modello psicoacustico - di memorizzare solo quei dati percepibili dall'orecchio umano. In questo modo, è possibile ottenere drastiche riduzioni delle dimensioni dei file, semplicemente scartando l'impercepibile, ossia i dati irrilevanti catturati in una registrazione PCM.

principio di funzionamento della codifica percettiva

La codifica percettiva, come abbiamo detto, elimina dai file audio determinate informazioni che non sono necessarie. Per far questo si basa sui risultati del "modello psicoacustico", i cui studi hanno dimostrato che l'orecchio umano non è in grado di percepire frequenze deboli adiacenti a frequenze forti, in quanto queste ultime coprono le prime. In termini tecnici si tratta di effetto mascheramento.
Durante la fase di compressione, le informazioni che riguardano le frequenze più deboli vengono eliminate dal codificatore Mpeg (v. più avanti) dato che non sarebbero in ogni caso percepibili dall'orecchio umano. Lo spazio fisico occupato dal nuovo file risulta così ridotto di molto, e apparentemente senza perdita di fedeltà.

illustrazione del concetto di mascheramentoIl mascheramento può essere descritto come la tendenza di un ascoltatore a privilegiare certi suoni piuttosto che altri, a seconda del contesto nel quale si presentano. Il mascheramento si verifica perché l'udito umano è capace di adattarsi ai livelli di suono e rumore di un dato contesto. Per esempio, un applauso improvviso in una stanza silenziosa, potrebbe apparire come un rumore. D'altra parte, se lo stesso applauso è immediatamente preceduto da uno sparo di arma da fuoco, potrebbe sembrare meno forte. Analogamente, nella sala di registrazione di un gruppo rock, il suono di una chitarra elettrica potrebbe risultare dominante nell'insieme, fino al sopraggiunge del suono dei piatti: in quel momento, la chitarra sembra offucata. Questi sono rispettivamente esempi di mascheramento nel "dominio del tempo" e nel "dominio della frequenza". Quando due suoni si presentano simultaneamente o quasi, uno può essere parzialmente mascherato dall'altro, in funzione di fattori quali: la loro contemporanea presenza, i loro livelli acustici relativi ed il contenuto di frequenze.

Il mascheramento permette quindi alla codifica percettiva di eliminare una buona parte dei dati che richiederebbe la convenzionale codifica PCM della forma d'onda. Questo non comporta che vengano scartati tutti i dati descriventi gli elementi mascherati in una registrazione del suono: così probabilmente si otterrebbe un suono artefatto e sgradevole. Invece, la codifica percettiva lavora per assegnare meno bit di dati agli elementi mascherati di una registrazione piuttosto che agli altri. Questo ha l'effetto di introdurre alcuni distorsioni delle immagini sonore, ma poiché questa distorsione è presumibilmente confinato all'interno degli elementi mascherati, è presumibilmente impercepibile all'ascolto. Usare meno bit per rappresentare gli elementi mascherati in una registrazione, comporta che nell'insieme siano richiesti meno bit. Questa è la ragione per cui la codifica MP3 riesce a ridurre file audio intorno a 1/10 della loro dimensione originale, con piccola o nessuna degradazione evidente nella qualità del suono.

il processo di codifica Mp3

La prima richiesta per creare un flusso di dati MP3 è un audio PCM. Infatti, MP3 non è un metodo di registrazione digitale, bensì un processo per rimuovere dati irrilevanti da una registrazione esistente. L'audio sarà tipicamente codificato a 16-bit, e le frequenze di campionamento supportate sono a 32kHz, 44.1kHz e 48kHz.
La prima fase del processo coinvolge le sezioni corte del flusso originale di dati PCM, e li elabora con quello che è conosciuto come un "filtro analizzatore". Lo standard MPEG 1 non specifica esattamente come dovrebbe essere costruito questo filtro, ma solo quello che dovrebbe fare. Tipicamente la codifica MP3 impiega una variazione di un algoritmo matematico come la FFT (Fast Fourier Transformation) o la DCT (Discrete Coseno Transformation) per effettuare questo processo. Per la comprensione della codifica percettiva, non è necessario discutere come lavorano questi algoritmi, ma solo i loro effetto sull'audio in ingresso.

Una sezione casuale di una registrazione PCM contiene una miscela di suoni molto diversi. Potrebbe contenere prevalentemente suoni di bassa-frequenza come un tamburo, suoni prevalentemente di alta-frequenza come un flauto, e a volte un suono vocale tra loro, tutto insieme. Come abbiamo accennato, MP3 ha bisogno di separare suoni irrelevanti da suoni rilevanti, trattandoli in modo differente. Per far quuesto, il suono in ingresso, viene diviso in 32 sottobande uguali. Dividendo l'insieme di segnali in sottobande, è possibile per la codifica MP3 ordinare generi diversi di suoni secondo la frequenza in esse contenuta e così dare la precedenza ad alcuni suoni rispetto ad altri, secondo le specifiche del modello psicoacustico. Se, nell'esempio precedente, alcuni suoni a bassa-frequenza del tamburo sono ritenuti irrilevanti, la codifica potrebbe usare meno bit di dati per codificare le sottobande che contengono quelle frequenze, con ciò lasciando più bit disponibili per codificare le sottobande che portano alcune delle frequenze vocali che potrebbe essere più rilevanti per un ascoltatore, e così riducendo la distorsione ed il rumore degli elementi con codificazione maggiore.

Il passo successivo del processo comporta che le sottobande siano raggruppate in sezioni (frames). Il codificatore esamina i contenuti di queste sezioni, e cerca di determinare dove il mascheramento si presenterà in entrambi i domini del tempo e delle frequenze, e così per quali sezioni possono essere permessi le distorsioni. Il codificatore calcola quello che è conosciuto come come un rapporto Mascheramento/Disturbo (Mask/Noise) per ciascuna sezione, ed usa questa informazione nella fase finale del processo: assegnazione dei bit.

Durante l'assegnazione dei bit, il codificatore decide quanti bit di dati dovranno essere usati per codificare ciascuna sezione. Maggiore è il numero di bit richiesti, più complessa sarà la codificazione. Il codificatore, perciò necessita di assegnare più bit a sezioni dove il possibile mascheramento è piccolo o nullo, ma può permettere l'assegnazione di meno bit a sezioni dove è più probabile il verificarsi del mascheramento. Il numero totale di bit disponibili varia secondo il flusso di bit per la trasmissione (via modem), che è impostato prima della codificazione, a seconda delle necessità dell'utente. Dove la qualità del suono ha una priorità alta, è tipicamente usato un tasso di 128 kilobits per secondo (kbps).

Quando la codificazione è finita, tutte le sezioni sono organizzate ciascuna con alcune byte di dati d'intestazione, e l'insieme può essere meorizzato come file MP3. Il file che risulta può essere letto da un decodificatore MP3, e suonato come audio. Un decodificatore MP3 compie un semplice processo inverso alla codificazione. Le sottobande contenute nelle sezioni sono risintetizzate nel dominio del tempo (usando una forma inversa del filtro analizzatore), e unite in modo da ricreare il flusso audio. D'altra parte, mentre il codificatore gestisce l'assegnazione di allocazione dei bit nelle sezioni da trattare, il decodificatore non deve farlo, e di conseguenza ha molto meno lavoro da compiere. Sebbene un decodificatore possa essere implementato in un programma comprendente un codificatore, ciò spiega perché c'è molta maggior disponibilità di software per la sola decodificazione. E spiega anche perché il passaggio da PCM a MP3, e di nuovo a PCM, restituisca file con dimensioni essenzialmente uguali all'originale (la codifica PCM comporta un numero di bit costante per ciascun segnale).

riassumendo, il processo di codifica MP3, si articola in 4 fasi, riassunte nel diagramma a blocchi qui sotto (si faccia attenzione alla fase di filtaggio, che ha due uscite):

schema a blocchi per la codifica MP3

Analogo procedimento si verifica per i filmati compressi con uguale standard: vengono in sostanza eliminati i fotogrammi che il nostro occhio non è in grado di cogliere, per la velocità con cui verrebbero visualizzati in sequenza, troppo elevata per le nostre capacità visive.

definizioni e richieste hardware

Secondo la definizione ufficiale, la sigla "MP3", è un'abbreviazione di MPEG1 livello dell'audio 3. "MPEG" è a sua volta l'acronimo di "Moving Picture Esperts Group", un Comitato formato sotto gli auspìci dell'International Standard Organisation (ISO) ed International Electrotechnical Commission (IEC), allo scopo di sviluppare uno standard internazionale per la codificazione efficiente di immagini video in movimento ed audio di alta-qualità. L'obiettivo era trovare un metodo per comprimere flussi di dati audio e video in modo da memorizzarli e successivamente recuperarli da un'apparecchiatura in grado di trattare circa 1.5 milioni bit per secondo, tipici di un CD-ROM convenzionale. Nel 1993, il comitato MPEG ha pubblicato i risultati del suo lavoro nel modulo del documento ISO/ IEC 11172. Questo inizia con uno standard - comunemente noto come MPEG 1 - per codificare immagini in movimento con audio associato e per memorizzarli in supporti digitali fino a i 1.5 Mbit/s

La richiesta che il video e l'audio codificati fossero ricuperabili da un mezzo in grado di trasferire solo 1.5 bit per secondo, ha imposto che uno dei punti principali di questo documento fosse la compressione dei dati, giacché la trasmissione di flussi dati audio e video non compressi richiederebbe molti più bit per secondo. Ciò che rende interessante la codifica MP3, è il particolare criterio seguìto per la compressione dei dati.

Il MPEG 1 standard era interessato alla compressione di video ed audio. Quello che ora chiamiamo MP3 è in effetti la parte audio dello standard MPEG 1, proposto in un uso nuovo: specificamente, è "layer 3" di MPEG 1 audio. Sono stati definiti tre "layers" di MPEG 1 codifica audio, ciascuno più complesso del suo predecessore, e ciascuno capace di produrre risultati migliori. I tre strati (sotto specificati) hanno retrocompatibilità: qualunque software o hardware capace di decodificare il livello 3 audio dovrebbe anche decodificare i livelli 1 e 2.

Su piattaforma Pc, la compressione MP3 potrebbe essere effettuata anche con un 386, però il tutto si riduce ad una questione accademica in quanto su un tale sistema difficilmente è installato Windows 95. Inoltre, è bene tener conto che utilizzando un Pentium 166Mhz (il minimo necessario per l'editing video domestico senza perdere molti fotogrammi), il tempo necessario ad elaborare la codifica di un brano musicale di 1 minuto richiede circa 1.5 minuti.
Per l'ascolto, la decodifica in tempo reale richiede almeno un processore 486, altresì sono possibili frequenti interruzioni con possibile blocco del sistema.
I Pc attualmente in commercio, non presentano problemi di velocità né in fase di codifica né di decodifica, e permettono di ascoltare musica anche mentre si utilizzano altri programmi.

attenzione: i link seguenti comportano l'apertura di una nuova finestra

Potete scaricare il programma Freerip MP3 (in tecnologia Adware), collegandovi al sito: www.mgshareware.com. Il programma permette la codifica in formato MP3. Tuttavia, se volete provare algoritmi di compressione più raffinati, potete orientarvi sui più recenti codificatori come AudioCatalyst o Xing (entrambi scaricabili al sito www.xingtech.com), di comprimere le informazioni del suono con un nuovo metodo di analisi e riduzione: il Variable Bit Rate, che regola in tempo reale il bitstream, seguendo le caratteristiche specifiche del brano musicale, ottenendo compressioni anche di 1/14.

nemesi

Questo articolo può essere liberamente pubblicato su qualsiasi rivista interamente o in estratto, purché sia citata la fonte e l'indirizzo di questo sito. Copyright Marcello Guidotti, 2001