Nel riquadro a sin. si vede
            l'entità del mascheramento di una sinusoide di frequenza 800
            Hz a varie ampiezze. Quando questa frequenza è a 20 dB sopra
            la soglia della percezione (linea a 0 dB che segue la curva
            di Fletcher) maschera tutto ciò che sta sotto l'area gialla:
            una frequenza a 900 Hz e 10 dB, per esempio, verrà
            mascherata.
            L'effetto aumenta con l'aumentare dell'ampiezza della
            frequenza mascherante. A 60 dB (zona verde), la nostra
            frequenza di 800 Hz sarà in grado di mscherare una frequenza
            di 1000 Hz con ampiezza fino a poco meno di 40 dB, mentre
            una frequenza di 2000 Hz dovrà avere una ampiezza maggiore
            di 15 dB per essere percepita (sotto, verrà mascherata). A
            100 dB (zona azzurra), tutte le frequenze più alte subiranno
            mascheramenti di varia entità. I 2000 Hz, per es., dovranno
            superare i 70 dB per bucare il mascheramento.
            Il secondo riquadro illustra lo stesso effetto per una
            frequenza di 3500 Hz. Come si vede, nelle frequenze alte,
            l'effetto è minore.
            Il terzo riquadro, infine, mostra l'effetto di mascheramento
            di un rumore che copre l'intera banda (es.: rumore bianco,
            fruscio di una fontana). Tutte le frequenze sono
            notevolmente mascherate.
            Nella codifica MP3, le frequenze mascherate vengono
            inesorabilmente tolte in base al principio secondo il quale
            è inutile codificare ciò che non si sente.
            Notare che il mascheramento vale anche per frequenze non
            simultanee, purché la differenza temporale di entrata sia
            piccola (max circa 5 msec). Questo significa che una
            frequenza più forte è in grado anche di mascherarne una
            debole che inizia meno di 5 msec prima o dopo.
            
1.2.2   Eliminazione frequenze sotto la cuva
              di Fletcher
            In base al principio appena menzionato, anche le eventuali
            frequenze di ampiezza inferiore alla curva di Fletcher a 0
            dB (vedi Corso Acustica: dinamica) verranno brutalmente
            spazzate via, perché impercettibili. Notate che questo
            significa che, per es., anche una componente a 100 Hz e 20
            dB viene eliminata.
            
1.2.3   Joint Stereo
            Innanzitutto ricordiamo che l'applicazione del Joint Stereo
            è opzionale in fase di codifica e dovrebbe essere inserita
            solo in segnali con bassa separazione stereofonica. Alcuni
            coder, come LAME, sono in grado di valutare, per ogni frame,
            il grado di separazione e quindi lo attivano o meno. In
            questo caso lo si può inserire, ma senza forzarlo.
            Per capire come funziona lo "stereo congiunto", bisogna
            ricordare che nel segnale i due canali sono codificati
            separatamente e in effetti un segnale stereo ha il doppio
            dei campioni di uno mono della stessa durata. A volte, però,
            la cosa non si giustifica, in quanto i la differenza fra i
            due canali è minima o anche nulla.
            La prima modalità di applicazione del joint stereo è
            detta  M/S (middle/side) e cosiste nel creare un canale
            dato dalla somma dei 2 canali (middle = L+R) e uno dato
            dalla differenza (side = L-R). A questo punto, il flusso
            middle viene codificato con un numero di bit maggiore
            rispetto al side che è, generalmente, più esile.
            In parecchi frames, inoltre, la differenza fra i canali può
            benissimo essere zero, per cui il side non viene codificato
            affatto.
            Il segnale originale può essere ricostruito osservando che,
            conoscendo la somma e la differenza di due numeri, è sempre
            possibile ricalcolarli risolvendo il banale sistema
            
x + y = K1
            x - y = K2
            dove K1 è il valore del middle per quel campione e K2 quello
            del side. Notate che, operando in questo modo non si
            eliminano le differenze stereofoniche: semplicemente si
            riduce la ridondanza.
            
Come esercizio, per rendervi
              conto di cosa significa, caricate in Cool-Edit un file
              stereo (possibilmente preso da un CD), poi fate la somma
              (attenzione a non oltrepassare l'ampiezza massima) e la
              differenza (somma con inversione di fase) dei due canali e
              ascoltate il risultato.
              Provate con vari file per rendervi conto della separazione
              stereo.
            
            Esiste una seconda modalità di Joint Stereo, detta IS
            (Intensity Stereo) più distruttiva e usata molto di rado,
            che si basa sul fatto che il nostro sistema percettivo ha
            difficoltà nel localizzare la posizione di frequenze molto
            basse e molto alte. Infatti, se ci pensate, negli impianti
            surround esiste un solo sub-woofer, non due casse come per i
            medi e gli alti.
            Di conseguenza, è in teoria possibile sommare le frequenze
            bassissime e altissime di entrambi i canali e codificarle
            come un solo canale, risparmiando il 50% su certe bande. Il
            modo IS consiste appunto nell'applicare questo sistema di
            riduzione, ma solo alla banda più alta. Questo sistema,
            però, non è per niente neutro (si sente) per cui non viene
            usato quasi mai.
            
            È interessante notare che esiste anche una modalità a stereo
            totalmente disgiunto, in cui i 2 canali sono trattati come
            del tutto indipendenti. Questo sistema è usato quando i 2
            canali contengono audio non correlato (es.: commento in
            lingua originale e traduzione oppure musica e commento).
            
2.   Codifica numerica
            
            Qui termina la parte psicoacustica di riduzione del segnale
            e inizia la parte di codifica numerica del risultato nella
            quale non ci addentreremo più di tanto. Alcuni passi,
            inoltre, vengono eseguiti solo se il bitrate non è definito
            come costante (CBR), ma come variabile (VBR).
            Le azioni principali che si eseguono in questa fase per ogni
            frame sono
            
              - se VBR, determinazione del bitrate
 
              - eventuale riduzione della frequenza di campionamento
                con relativo taglio degli alti: in realtà questo passo
                non si esegue praticamente mai, ma solo nel caso in cui
                venga richiesto un bitrate costante (CBR) così basso da
                risultare impossibile da raggiungere con i precedenti
                artifici, pena la produzione di artifatti audio (vedi
                esempio più avanti).
 
              - codifica del segnale con controllo del rumore di
                quantizzazione
 
              - il layer III applica una compressione con codifica
                Huffman (loseless)
 
              - calcolo di un CRC, cioè un codice inserito nel frame
                che in caso di trasmissione permette a un ricevente di
                assicurarsi che il frame sia stato ricevuto
                correttamente
 
            
            Il tutto viene poi scritto su disco o trasmesso sotto forma
            di un flusso che contiene tutte le bande in parallelo
            (bitstream multiplex).
            Occorre, infine, tener presente che le specifiche MP3
            indicano 
cosa fare,
            non 
come farlo. Per
            questa ragione la qualità di realizzazione del programma di
            encoding è critica. Un ottimo coder è 
LAME.
            Non è critica, invece, la qualità del decoder perché
            l'algoritmo di decodifica non porta particolari problemi
            (basta eseguire, pari pari, le istruzioni delle specifiche).
            
3.   Test
            3.1   Confronto CBR - VBR
            Lo stesso frammento in CBR 128 Kbps e VBR medio di 96 e 128
            Kbps. Il numero su cui si clicca indica la dimensione del
            file.
            Ascoltandolo in ambiente silenzioso con buone casse o cuffia
            si nota come il VBR con media 96 sia equivalente al CBR 128
            con risparmio della dimensione di oltre il 20%.
            
            
            
            3.2   Effetto della compressione in varie
              modalità
            Il fine del test è didattico. Serve a farsi una idea delle
            possibilità e dei problemi dell'MP3 a vari livelli di
            compressione e a sentire l'incidenza della riduzione dei
            dati a vari livelli. Proprio per questo è stato scelto un
            brano piuttosto pulito e non molto complesso (l'aria "...la
            ci darem la mano...").
            Il test si compone dei seguenti files:
            
              - originale qualità CD: stereo, 16 bit, SR 44100.
                Purtroppo per ora non ho potuto metterlo in linea per la
                sua dimensione. Potete comunque ascoltare le differenze
                fra i vari livelli di compressione. In ogni caso r_320
                può essere utilizzato come file di riferimento per
                l'ascolto.
                
               
              - file denominati k_bitrate: tutti i file con nome
                k_numero sono MP3 con codifica CBR senza riduzione di
                SR. Il valore del numero è il bitrate.
                Non potendo abbassare l'SR per raggiungere il bitrate
                richiesto, si producono distorsioni (artifatti) a
                bitrate bassi (da 64 in giù). La cosa si sente
                chiaramente in k_032 quando il cantante pronuncia il
                'sì'.
                
               
              - file denominati r_bitrate: tutti i file con nome
                r_numero sono MP3 con codifica CBR e riduzione di SR, se
                necessaria (da bitrate 64 in giù).
                Come già accennato, infatti, ad alti livelli di
                compressione i coder riducono l'SR tagliando gli alti
                per ottenere il bitrate richiesto. Se non si fa, si
                producono delle distorsioni (artifatti) che potete
                sentire negli esempi a bitrate inferiore (ascoltate
                k_032). Notate che questo comportamento è il default
                perché si preferisce un brano con meno frequenze alte a
                uno con distorsioni.
                Anche qui il valore del numero è il bitrate.
                A partire dal bitrate 96, la riduzione dell'SR non è più
                necessaria per cui le versioni k_ e r_ coincidono.
                
               
              - file denominati vbr_numero: questi file sono
                codificati con bitrate variabile. Essendo variabile non
                può essere espresso con un numero fisso perché cambia da
                un frame all'altro. Il parametro di controllo è un
                valore indicativo di compressione che va da 0 a 9 e
                indica il livello medio della compressione (0 minima, 9
                massima).
                Nella codifica di questo brano con compressione a
                livello 0 (minima), LAME codifica quasi tutti i frame
                con bitrate intorno a 192 con punte da 256 a 128. Con
                compressione massima, invece, il bitrate medio è 112 con
                punte da 64 a 160.
               
            
            Confrontate files di dimensioni simili per valutare la resa
            dei vari metodi. Dividete le dimensioni dell'originale
            (34.104.044) per la dimensione del file per avere il
            rapporto di compressione. Tutti il file sono codificati con
            LAME 3.92 MMX su linux. In tutti i file si usa il Joint
            Stereo.
            
            
              
                
                  Dimensioni 
                   | 
                  File 
                   | 
                  Note 
                   | 
                
                
                  | 34104044 | 
                  Originale 
                   | 
                  Originale in wav (non
                    compresso) a qualità CD: stereo, 16 bit, SR 44100. 
                   | 
                
                
                  | 773538 | 
                  k_032 | 
                  Tutti i file con nome
                    k_numero sono MP3 con codifica CBR senza riduzione
                    di SR. Il valore del numero è il bitrate. 
                    Non potendo abbassare l'SR per raggiungere il
                    bitrate richiesto, si producono distorsioni
                    (artifatti) a bitrate bassi (da 64 in giù) | 
                
                
                  | 1160307 | 
                  k_048 | 
                   
                   | 
                
                
                  | 1547283 | 
                  k_064 | 
                   
                   | 
                
                
                  | 2320927 | 
                  k_096 | 
                  Da qui in poi le
                    versioni k_ e r_ sono identiche per cui teniamo solo
                    la versione r_ 
                   | 
                
                
                  | 773424 | 
                  r_032 | 
                  Tutti i file con nome
                    r_numero sono MP3 con codifica CBR e riduzione di
                    SR, se necessaria (da bitrate 64 in giù). Il valore
                    del numero è il bitrate. 
                    In questo esempio il coder ha dovuto ridurre l'SR
                    fino a 16000 per ottenere un bitrate di 32 senza
                    distorsioni 
                   | 
                
                
                  | 1160307 | 
                  r_048 | 
                  Qui l'SR è stato
                    ridotto a 22050 per la stessa ragione. 
                   | 
                
                
                  | 1547136 | 
                  r_064 | 
                  Qui l'SR è stato
                    ridotto a 24000 per la stessa ragione.  | 
                
                
                  | 2320927 | 
                  r_096 | 
                  A partire da qui non
                    c'è più riduzione di SR. Da qui in poi le versioni
                    k_ e r_ sono identiche per cui teniamo solo la
                    versione r_  | 
                
                
                  | 2707748 | 
                  r_112 | 
                   
                   | 
                
                
                  | 3094568 | 
                  r_128 | 
                   
                   | 
                
                
                  | 3868212 | 
                  r_160 | 
                   
                   | 
                
                
                  | 4641853 | 
                  r_192 | 
                   
                   | 
                
                
                  | 5415497 | 
                  r_224 | 
                   
                   | 
                
                
                  | 6189138 | 
                  r_256 | 
                   
                   | 
                
                
                  | 7736423 | 
                  r_320 | 
                   
                   | 
                
                
                  | 4490135 | 
                  vbr_00 | 
                  MP3 a bitrate
                    variabile (VBR). Il bitrate variabile non può essere
                    espresso con un numero fisso. Il parametro di
                    controllo è un valore indicativo di compressione che
                    va da 0 a 9 e indica il livello medio della
                    compressione (0 minima, 9 massima) | 
                
                
                  | 4155996 | 
                  vbr_01 | 
                   
                   | 
                
                
                  | 3999820 | 
                  vbr_02 | 
                   
                   | 
                
                
                  | 3707989 | 
                  vbr_03 | 
                   
                   | 
                
                
                  | 3595327 | 
                  vbr_04 | 
                   
                   | 
                
                
                  | 3489822 | 
                  vbr_05 | 
                   
                   | 
                
                
                  | 3238105 | 
                  vbr_06 | 
                   
                   | 
                
                
                  | 3026466 | 
                  vbr_07 | 
                   
                   | 
                
                
                  | 2823177 | 
                  vbr_08 | 
                   
                   | 
                
                
                  | 2666879 | 
                  vbr_09 | 
                   
                   |