Top Banner
MPEG Audio "Tecniche di manipolazione dell'informazione sonora compressa mediante codifica MUSICAM" Davide Cilano
287

Mpeg Audio Codifiche Percettive - Compressione Audio

Jul 05, 2015

Download

Education

Davide Cilano

La richiesta di alta qualità a basso costo ha indotto numerosi enti di ricerca allo studio di codifiche
ottimizzate che permettano di ridurre le dimensioni della rappresentazione digitale.
Tali ricerche, hanno individuato una possibile soluzione al problema applicando i risultati degli studi
sul comportamento dell'apparato uditivo ed ottenendo la compressione sfruttando le capacità fisicopercettive
dell'orecchio.
Tra tutte le codifiche proposte si è distinta, per la sua flessibilità e qualità, il sistema MUSICAM
(Masking pattern Universal Subband Integrated Coding And Multiplexing, 1992).
La codifica MUSICAM ottiene, tramite una analisi psicoacustica del suono, la compressione delle
informazioni necessarie per rappresentare segnali audio eliminando le componenti percettivamente
irrilevanti e codificando quelle numericamente ridondanti.
Tale operazione permette di conservare la qualità originaria del suono pur riducendo la quantità di dati
di un fattore tipico di 1:8.
La soppressione delle informazioni psicoacusticamente irrilevanti è possibile grazie alle recenti
scoperte sul funzionamento dell'apparato uditivo umano, che hanno permesso la costruzione di
modelli matematici implementabili in tempo reale, che approssimano le capacità acustico-percettive
umane.
Il modello percettivo partendo da una rappresentazione temporale del segnale audio, studia l'influenza
tra toni mascheranti e toni mascherati nel dominio frequenziale, individuando le componenti del
segnale percepibili, che sono le uniche informazioni essenziali da codificare.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mpeg Audio Codifiche Percettive - Compressione Audio

MPEG Audio

"Tecniche di manipolazione dell'informazione

sonora compressa mediante codifica MUSICAM"

Davide Cilano

Page 2: Mpeg Audio Codifiche Percettive - Compressione Audio

INTRODUZIONE

Negli ultimi anni, con la diffusione dell'audio digitale (soprattutto grazie al Compact Disc), sonoaumentate le esigenze degli ascoltatori in termini di fedeltà di riproduzione del suono.La percezione dei suoni è un fenomeno molto complesso in cui vengono coinvolti organi fisici edaspetti psicologici.Proprio la dipendenza da fattori psicologici permette l'affinarsi delle capacità percettive degliascoltatori e quindi l'aumentare della richiesta di qualità del suono.

In campo digitale la qualità di un suono può essere mantenuta con una accurata rappresentazione che,se fatta con metodi tradizionali, porta inevitabilmente a grandi quantità di dati da memorizzare otrasmettere.Queste grandi quantità di dati possono essere gestite solo con apparecchiature altamente affidabili edai costi proibitivi per la distribuzione su larga scala.Per fare un esempio basti pensare alla richiesta di 768 KBit/sec. per sequenze monofoniche dellacodifica PCM (Pulse Code Modulation) che, per essere distribuite su larga scala, hanno richiesto losviluppo del Compact Disc.

La richiesta di alta qualità a basso costo ha indotto numerosi enti di ricerca allo studio di codificheottimizzate che permettano di ridurre le dimensioni della rappresentazione digitale.Tali ricerche, hanno individuato una possibile soluzione al problema applicando i risultati degli studisul comportamento dell'apparato uditivo ed ottenendo la compressione sfruttando le capacità fisico-percettive dell'orecchio.

Tra tutte le codifiche proposte si è distinta, per la sua flessibilità e qualità, il sistema MUSICAM(Masking pattern Universal Subband Integrated Coding And Multiplexing, 1992).La codifica MUSICAM ottiene, tramite una analisi psicoacustica del suono, la compressione delleinformazioni necessarie per rappresentare segnali audio eliminando le componenti percettivamenteirrilevanti e codificando quelle numericamente ridondanti.Tale operazione permette di conservare la qualità originaria del suono pur riducendo la quantità di datidi un fattore tipico di 1:8.La soppressione delle informazioni psicoacusticamente irrilevanti è possibile grazie alle recentiscoperte sul funzionamento dell'apparato uditivo umano, che hanno permesso la costruzione dimodelli matematici implementabili in tempo reale, che approssimano le capacità acustico-percettiveumane.Il modello percettivo partendo da una rappresentazione temporale del segnale audio, studia l'influenzatra toni mascheranti e toni mascherati nel dominio frequenziale, individuando le componenti delsegnale percepibili, che sono le uniche informazioni essenziali da codificare.

Il sistema MUSICAM è stato inizialmente progettato per il DAB (Digital Audio Broadcasting), unarete di distribuzione radiofonica via etere che dovrà sostituire le attuali trasmissioni FM.In seguito il MUSICAM è stato standardizzato a livello mondiale dall' ISO-IEC/ JCT1/ SC29/ WG11/MPEG-Audio ed adottato per la distribuzione su supporti magnetici (DCC - Digital CompactCassette - Philips) e televisiva (HDTV - Televisione ad alta definizione-).

L'uso della codifica per la distribuzione radiofonica e televisiva ha fatto sorgere la richiesta dielaborare i segnali audio in tempo reale.Adottando la codifica MPEG le elaborazioni del segnale possono essere eseguite sui decodificatiPCM oppure direttamente nella forma codificata, che è l'argomento trattato nei capitoli seguenti.L'elaborazione in forma PCM permette l'uso di tecniche e strumentazioni già disponibili sul mercatoma richiede l'operazione di decodifica che introduce il ritardo dei filtri ed una certa indeterminazionesui campioni ricostruiti.

Page 3: Mpeg Audio Codifiche Percettive - Compressione Audio

L'elaborazione direttamente nella forma compressa non richiede i processi di codifica e decodifica,riducendo la complessità computazionale dell'operazione e non introduce il ritardo intrinseco dei filtri.

La richiesta di limitare il ritardo è indispensabile in molte applicazioni, ad esempio per l'aggiunta dicontributi in tempo reale come il commento degli inviati di un telegiornale: il ritardo sul commentoaudio può comportare la mancata sincronizzazione con le immagini con effetti disturbantinell'ascoltatore, anche da queste richieste è nato lo stimolo al lavoro di tesi.

Lo studio di tecniche di elaborazione di segnali compressi viene esposto dopo aver richiamato iconcetti alla base dei segnali audio sia fisici: capitolo 1.1 "Il fenomeno suono"; che psicoacustici:capitolo 1.2 "La percezione del suono".Si riportano le definizioni delle unità di misura fisiche e psicoacustiche ed i risultati di alcuni studisulla percezione dei segnali audio da parte dell'apparato uditivo umano.

Nel capitolo 1.3 "L'audio digitale" vengono riassunti i principi base della codifica digitale persegnali audio e si indica dove si collocano i sistemi di compressione nelle catene di registrazione eriproduzione.

Dopo la parte introduttiva di richiami, i capitoli 2 "La codifica MPEG_Audio" e capitolo 3"Sintassi della codifica MPEG_Audio" espongono dettagliatamente il principio di funzionamento ele specifiche sintattiche della codifica MUSICAM (alias MPEG layer II), tale capitolo è stato trattodalle specifiche 11172 rev.3 di MPEG ma riorganizzato ed arricchito da spiegazioni per unaesposizione più immediata.Il sistema di codifica come già detto si basa sui risultati del modello percettivo che calcola il valore (indB) della soglia di mascheramento di porzioni del segnale.I modelli percettivi proposti da MPEG sono descritti al capitolo 4 "Modelli percettivi" esponendonedettagliatamente (data la loro importanza) le specifiche ed il funzionamento.

Dal capitolo 5 "Introduzione alle Elaborazioni" comincia l'esposizione del lavoro di tesi vero eproprio, sfruttando definizioni, risultati e concetti esposti nei capitoli precedenti.Le tecniche di elaborazione dei segnali compressi vengono introdotte con alcune osservazioni sullasintassi di codifica e affrontando il problema della valutazione dei risultati.La mancanza di modelli oggettivi affidabili, di valutazione della qualità audio codificatapercettivamente, ha reso necessario lo studio di criteri per valutare i risultati delle elaborazioni.

Nel capitolo 6 "Elaborazioni numeriche ", sono riportate le prime tecniche per l'elaborazione disegnali MUSICAM in modo numerico, con questi metodi anche se non si ottengono risultatisoddisfacenti, si conferma la possibilità di elaborare i segnali compressi, ottenendo interessantiinformazioni sui vincoli da imporre per ottenere elaborazioni sufficientemente accurate e quale è ilcomportamento della codifica.Comportamento che è stato studiato ed osservato sperimentalmente nel capitolo 7 "Comportamentocodifica".

Nel capitolo 8 "Elaborazioni psicoacustiche" si espongono le tecniche definite psicoacustiche cheutilizzano i risultati del modello percettivo per elaborare una o più sequenze cercando di mantenereinalterata la qualità.Tali tecniche sono quelle che hanno dato i migliori risultati ma necessitano delle informazionipsicoacustiche che possono essere trasmesse in un canale separato oppure nella trama codificata,argomento affrontato nel capitolo 9 "Trasmissione MNR".

Il capitolo 10 "Appunti sulla codifica" riporta una analisi delle regole sintattiche dello standardMUSICAM e si propone una possibile modifica della sintassi che permette una ulteriore compressionedel segnale.

Per la complessità della codifica (il cui sviluppo ha richiesto 360 anni-uomo) il lavoro di tesi potrebbeessere ulteriormente ampliato, studiando e raffinando i criteri di elaborazione individuati,approfondendo lo studio alla codifica multicanale (usata in HDTV), trovando una implementazioneefficiente delle tecniche definite.

Page 4: Mpeg Audio Codifiche Percettive - Compressione Audio

INDICE

Capitolo 1.1IL FENOMENO "SUONO"

1.1.1. NATURA E DIFFUSIONE DEL SUONO ......................................................................................11.1.2. LE CARATTERISTICHE DEL SUONO .........................................................................................3

1.1.2.1. Ampiezza..........................................................................................................................31.1.2.1.1. DeciBel........................................................................................................4

1.1.2.2. Frequenza e Timbro .......................................................................................................51.1.3. LA DIVISIONE IN OTTAVE ..........................................................................................................71.1.4. IL RUMORE...................................................................................................................................81.1.5. COMPONENTI TONALI................................................................................................................9

Capitolo 1.2LA PERCEZIONE

DEL SUONO1.2.1. ORECCHIO UMANO E SENSIBILITÀ IN FREQUENZA .............................................................11.2.2. LA PERCEZIONE ..........................................................................................................................41.2.3. UNITÀ DI MISURA PERCETTIVE................................................................................................4

1.2.3.1. Il Bark..............................................................................................................................41.2.3.2. Loudness..........................................................................................................................51.2.3.3. Il Phon.............................................................................................................................61.2.3.4. Il Sone..............................................................................................................................7

1.2.4. IL MASCHERAMENTO .................................................................................................................81.2.4.1. ... Nella Frequenza ..........................................................................................................91.2.4.2. ... Nel Tempo ...................................................................................................................111.2.4.3. ... Nel Tempo e Frequenza...............................................................................................12

1.2.5. PERCEZIONE DI VARIAZIONI DI INTENSITÀ...........................................................................13

Capitolo 1.3

Page 5: Mpeg Audio Codifiche Percettive - Compressione Audio

L'AUDIO DIGITALE1.3.1. INTRODUZIONE.........................................................................................................................11.3.2. IL CAMPIONAMENTO................................................................................................................21.3.3. LA QUANTIZZAZIONE ...............................................................................................................31.3.4. L'SNR (Signal to Noise Ratio) ......................................................................................................31.3.5. LA CODIFICA PCM (Pulse Code Modulation)...........................................................................41.3.6. COMPRESSIONE DI SEGNALI CON LEGGE A_LAW E µ_LAW...........................................51.3.7. I SISTEMI PCM NELLA REGISTRAZIONE DIGITALE .............................................................61.3.8. I SISTEMI PCM NELLA RIPRODUZIONE DIGITALE ..............................................................81.3.9. PARAMETRI PER LA QUALITÀ DI UN SISTEMA AUDIO .......................................................101.3.10. I SISTEMI DI COMPRESSIONE NELLA CATENA PCM...........................................................11

Capitolo 2LA CODIFICA MPEG_Audio

2.1. LE CODIFICHE COMPRESSE .....................................................................................................22.2. RIDONDANZA E IRRILEVANZA ..................................................................................................42.3. LA CODIFICA MPEG_Audio ........................................................................................................4

2.3.1. Introduzione ....................................................................................................................52.3.2. La Codifica e i FRAME..................................................................................................62.3.3. La Rappresentazione frequenziale ..................................................................................72.3.4. Memorizzazione...............................................................................................................92.3.5. Decodifica .......................................................................................................................9

2.4. CARATTERISTICHE......................................................................................................................102.4.1. Layer ...............................................................................................................................102.4.2. Frequenze di Campionamento.........................................................................................112.4.3. Modalità ..........................................................................................................................112.4.4. Bitrate..............................................................................................................................13

2.5. STRUTTURE DATI Layer II .........................................................................................................142.5.1. Bit Allocation...................................................................................................................142.5.2. Fattori di Scala................................................................................................................162.5.3. SCFSI (Struttura Codifica Fattori di Scala su Intervalli) ...............................................172.5.4. I Campioni.......................................................................................................................172.5.5. Osservazioni Sulle Strutture Dati ....................................................................................18

2.6. LA SEQUENZA CODIFICATA Layer II ........................................................................................182.6.1. Il FRAME ........................................................................................................................192.6.2. L'HEADER ......................................................................................................................202.6.3. IL CRC [Cyclic Redundancy Code] ................................................................................232.6.4. I Dati_Ausiliari (Ancillary) ............................................................................................242.6.5. Sintassi ............................................................................................................................24

2.7. VALUTAZIONE DELLA CODIFICA .............................................................................................292.8. POSSIBILI APPLICAZIONI ..........................................................................................................312.9. UNA APPLICAZIONE :IL DAB.....................................................................................................32

2.9.1. Caratteristiche del DAB ..................................................................................................33

Capitolo 3

Page 6: Mpeg Audio Codifiche Percettive - Compressione Audio

SPECIFICHE TECNICHEMPEG_Audio l a y e r I I

3.1. INTRODUZIONE...........................................................................................................................23.2. BIBLIOGRAFIA PER I RIFERIMENTI TECNICI:....................................................................23.3. GLOSSARIO TECNICO MPEG_Audio .........................................................................................23.4. IL PROCESSO DI CODIFICA Layer II .........................................................................................4

3.4.1. Diagramma di Flusso......................................................................................................73.4.2. Filtro Passa Alto in Ingresso...........................................................................................83.4.3. Banco di Filtri di Analisi.................................................................................................83.4.4. FFT (Fast Fourier Transform) ........................................................................................93.4.5. Modello Psicoacustico ....................................................................................................103.4.6. Codifica Fattori di Scala.................................................................................................103.4.7. Calcolo Struttura Codifica Fattori di Scala Su Intervalli ...............................................103.4.8. Allocazione Dinamica Bit................................................................................................11

3.4.8.1. Diagramma di Flusso .................................................................................143.4.9. Normalizzazione e Quantizzazione Campioni Frequenziali ...........................................153.4.10. Protezione Errori ............................................................................................................16

3.5. IL PROCESSO DI DECODIFICA Layer II....................................................................................163.5.1. Diagramma di Flusso......................................................................................................173.5.2. Sincronizzazione Frame ..................................................................................................183.5.3. Decodifica Header ..........................................................................................................183.5.4. Decodifica CRC Errori....................................................................................................193.5.5. Decodifica Bit Allocation ................................................................................................193.5.6. Decodifica SCFSI............................................................................................................193.5.7. Decodifica Fattori di Scala .............................................................................................193.5.8. Dequantizzazione Campioni............................................................................................203.5.9. Denormalizzazione Campioni .........................................................................................203.5.10. Filtro di Sintesi di Sottobanda.........................................................................................21

Capitolo 4MODELLI PERCETTIVI

4.1. INTRODUZIONE............................................................................................................................14.2. MODELLO PSICOACUSTICO 1 ...................................................................................................2

4.2.1. ALGORITMO DI CALCOLO.............................................................................................24.2.1.1... FFT ................................................................................................................34.2.1.2... Determinazione Spl (livello segnale) .............................................................44.2.1.3... Confronto Soglia in Quiete (statica)..............................................................44.2.1.4... Identificazione delle Componenti Tonali e Non Tonali .................................4

4.2.1.4.1.... Massimo Locale .....................................................................54.2.1.4.2.... componenti Tonali..................................................................54.2.1.4.3.... componenti Non Tonali..........................................................6

4.2.1.5... Decimazione delle Componenti Tonali e Non Tonali ....................................74.2.1.6... Calcolo della Soglia di Mascheramento Individuale.....................................74.2.1.7... Calcolo della Soglia di Mascheramento Globale ..........................................94.2.1.8... Determinazione della Soglia Minima di Mascheramento..............................94.2.1.9... Calcolo del Rapporto Segnale-Maschera......................................................9

4.2.2 .Accuratezza del Modello....................................................................................................104.3. CENNI MODELLO PSICOACUSTICO 2.......................................................................................104.4. RELAZIONE TRA SMR, SNR E MNR.............................................................................................104.5. RISULTATI .....................................................................................................................................13

Page 7: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5INTRODUZIONE ALLE

ELABORAZIONI5.1. INTRODUZIONE...........................................................................................................................15.2. POSSIBILI APPLICAZIONI ..........................................................................................................4

5.2.1. Modifica del Bitrate.........................................................................................................45.2.2. Sincronizzazione..............................................................................................................6

5.3. SEQUENZE AUDIO PER LE PROVE...........................................................................................75.4. BITRATE USATI PER LE PROVE.................................................................................................85.5. TEMPI DI CO-DECODIFICA .......................................................................................................95.6. APPARECCHIATURE USATE IN ASCOLTO ...............................................................................95.7. VALUTAZIONE RISULTATI..........................................................................................................10

5.7.1. ... regole per valutazioni "oggettive" ..............................................................................125.7.2. Criteri di Confronto.........................................................................................................135.7.3. Valutazioni di Basso Livello............................................................................................14

5.7.3.1. .LBA e .RBA ................................................................................................155.7.3.2. .MNR :.........................................................................................................165.7.3.3. .SMR............................................................................................................175.7.3.4. .TAB ............................................................................................................18

5.7.4. Valutazioni di Alto Livello...............................................................................................185.8. RITARDO INTRODOTTO DAI FILTRI .........................................................................................205.9. NOTE SULL'ELABORAZIONE......................................................................................................21

5.9.1. Formule di Quantizzazione e Normalizzazione ...............................................................215.9.2. Calcolo Fattori di Scala ..................................................................................................215.9.3. Da Fattore di Scala a Intensità (dB) ...............................................................................225.9.4. Incremento Livelli per Segnali Quantizzati .....................................................................235.9.5. Normalizzazione Segnali Audio.......................................................................................235.9.6. Aliasing per Bande Soppresse.........................................................................................24

5.9.6.1. Bande Soppresse a Bassi Bitrate ................................................................25

Capitolo 6ELABORAZIONI NUMERICHE

6.1. FORMA NUMERICA DEL FRAME...............................................................................................16.2. PROBLEMI AFFRONTATI............................................................................................................56.3. SCHEMA ELABORAZIONE ..........................................................................................................56.4. DIFFICOLTÀ DI UNA ANALISI PSICOACUSTICA.....................................................................66.5. MPEG E IL JOINT_STEREO.........................................................................................................76.6. MODIFICA E COSTRUZIONE DELLA BIT_ALLOCATION........................................................8

6.6.1. Modifica Bit_Allocation:.................................................................................................86.6.2. Costruzione Bit_Allocation: ............................................................................................9

6.7. ELABORAZIONI NUMERICHE ....................................................................................................9

Page 8: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7COMPORTAMENTO

CODIFICA7.1. CALCOLO TEORICO INDETERMINAZIONE MEDIA ................................................................2

7.1.1. Indeterminazione sui campioni di sottobanda.................................................................27.1.2. Indeterminazione sui Fattori di scala..............................................................................47.1.3. Indeterminazione raggruppamento Fattori di Scala .......................................................47.1.4. Conclusioni......................................................................................................................5

7.2. EFFETTI DELLA FASE.................................................................................................................67.2.1. Risultati Sperimentali ......................................................................................................67.2.2. Algoritmo.........................................................................................................................77.2.3. Grafici .............................................................................................................................77.2.4. Analisi Risultati ...............................................................................................................11

7.3. CO-DECODIFICHE IN CASCATA SENZA SFASAMENTO .........................................................137.3.1. Effetti delle co-decodifiche..............................................................................................137.3.2. Risultati Sperimentali ......................................................................................................137.3.3. Algoritmo.........................................................................................................................147.3.4. Grafici .............................................................................................................................147.3.5. Analisi Risultati ...............................................................................................................18

7.4. ANALISI CO-DECODIFICHE IN CASCATA SFASATE ...............................................................207.4.1. Algoritmo.........................................................................................................................207.4.2. Grafici .............................................................................................................................207.4.3. Analisi Risultati ...............................................................................................................24

Capitolo 8ELABORAZIONI

PSICOACUSTICHE8.1. ENTROPIA MNR = ENTROPIA SMR ...........................................................................................18.2. TRASMISSIONE MNR IN UN CANALE SEPARATO....................................................................28.3. MODIFICA BITRATE....................................................................................................................38.4. MIXING SEQUENZE.....................................................................................................................3

8.4.1. Studio Mascheramento ....................................................................................................48.4.2. Applicazione alle Elaborazioni MPEG ...........................................................................58.4.3. Stima Livello di Mascheramento .....................................................................................58.4.4. Mascheramento tra Bande adiacenti...............................................................................88.4.5. Corrispondenza Bande - Bark.........................................................................................98.4.6. Applicazione Formule di Pendenza.................................................................................118.4.7. Localizzazione Mascheranti e loro intensità ...................................................................168.4.8. Confronto con la Soglia Statica ......................................................................................178.4.9. Algoritmo.........................................................................................................................19

8.5. SINCRONIZZAZIONE....................................................................................................................218.5.1. Studio del Problema ........................................................................................................218.5.2. Rappresentazione Grafica...............................................................................................22

Page 9: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9TRASMISSIONE MNR

9.1. CANALE PER MEMORIZZARE L' MNR........................................................................................19.2. STIMA E TRASMISSIONE............................................................................................................39.3. STIMA SMR....................................................................................................................................4

9.3.1. Valore di Riferimento ......................................................................................................59.4. TRASMISSIONE MNR ...................................................................................................................59.5. UNA TECNICA IBRIDA.................................................................................................................69.6. USO DEI PAD................................................................................................................................8

Capitolo 10APPUNTI SULLA

CODIFICA10.1. SOTTOBANDE ALLOCATE ..........................................................................................................1

10.1.1. Analisi Occupazione Canale ...........................................................................................210.1.2. Tabella Guadagni............................................................................................................310.1.3. Proposta Nuova Sintassi .................................................................................................5

10.2. CAMPIONI NON SIGNIFICATIVI ................................................................................................510.2.1. Risparmio Bit...................................................................................................................710.2.2. Algoritmo.........................................................................................................................8

Appendice AIL SOFTWARE MPEG

( ve r s i o n e 3 . 5 )A.1. MODULI E LIBRERIE .....................................................................................................................1A.2. AUTORI............................................................................................................................................2A.3. SCOPO DISTRIBUZIONE ...............................................................................................................3A.4. DESCRIZIONE SORGENTI .............................................................................................................5A.5. STRUTTURE DATI ..........................................................................................................................5A.6. MACRODEFINIZIONI.....................................................................................................................9A.7. VARIABILI GLOBALI ......................................................................................................................9A.8. FUNZIONI........................................................................................................................................10

Appendice B

Page 10: Mpeg Audio Codifiche Percettive - Compressione Audio

ANALISI DEL SOFTWAREB.1. INTRODUZIONE ............................................................................................................................1B.2. PROCEDURA DI ALLOCAZIONE .................................................................................................1B.3. DIVERSA MAPPATURA CAMPIONI .............................................................................................6B.4. INVERSIONE MSB CAMPIONI FREQUENZIALI .........................................................................10B.5. SHORT PCM : HI ⇔ LO ...............................................................................................................11B.6. DIAGRAMMA CODIFICATORE ....................................................................................................11B.7. DIAGRAMMA DECODIFICATORE...............................................................................................13

Appendice CSOFTWARE DI

POST_PRODUZIONEC.1. SCOPO DELLE FUNZIONI ..........................................................................................................1C.2. SORGENTI LETTURA/SCRITTURA FRAME................................................................................2C.3. SORGENTI CONTEGGIO BIT ......................................................................................................5C.4. SORGENTI TRASFORMAZIONE IN DECIBEL............................................................................6

Page 11: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1

IL FENOMENO "SUONO"1.1.1. NATURA E DIFFUSIONE DEL SUONO ......................................................................................11.1.2. LE CARATTERISTICHE DEL SUONO .........................................................................................3

1.1.2.1. Ampiezza..........................................................................................................................31.1.2.1.1. DeciBel........................................................................................................4

1.1.2.2. Frequenza e Timbro .......................................................................................................51.1.3. LA DIVISIONE IN OTTAVE ..........................................................................................................71.1.4. IL RUMORE...................................................................................................................................81.1.5. COMPONENTI TONALI................................................................................................................9

Il capitolo riporta una sintesi dei concetti base e delle caratteristiche fisiche del "suono".Vengono riportate alcune definizioni ed unità di misura che saranno usate in seguito per la descrizionedel sistema di compressione dell'audio MPEG_Audio1.

1.1.1. NATURA E DIFFUSIONE DEL SUONOIl suono è un fenomeno ondulatorio prodotto da movimenti vibratori di un corpo (detto sorgente) e sidiffonde con perturbazioni di pressione in un mezzo solido, liquido o gassoso.Le molecole del mezzo propagano il disturbo compiendo degli spostamenti lungo la direzione dipropagazione .Tutti i movimenti vibratori con una frequenza che rientra nell' intervallo udibile dall'uomo sonodefiniti suoni.La frequenza è definita come l'inverso del periodo ovvero del tempo di ripetizione di un fenomenoperiodico.La sua unità di misura è l'Hertz, indicato con Hz, ed esprime il numero di periodi compiuti dal segnalein un secondo:

fT

= 1

PERIODO

SECONDI

T

Fig. 1.1.1 Periodo di un onda sinusoidale

1MPEG : (Moving Pictures Expert Group) ha definito le specifichedi una codifica che ottiene la compressione dell'audiodigitale ovvero la riduzione del numero di simboli usati.

Page 12: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-2

Le frequenze di vibrazione percepite dall'uomo come suoni coprono l'intervallo tra 20 e 20000 Hz, lefrequenze al di sotto dei 20 Hertz non possono essere udite e sono percepite come vibrazioni, quellesopra i 20000 Hz sono invece dette ultrasuoni.

INTERVALLO DI FREQUENZAHz

FENOMENO PERCEPITO

0 ... 20 Vibrazioni20 ... 20000 Suoni

20000 ... 40000 UltrasuoniTab. 1.1.1 Corrispondenza tra frequenze di fenomeni fisici e percezione umana.

Per altri esseri viventi le frequenze udibili possono variare notevolmente, come ad esempio per il cane(20 : 30000Hz) o il pipistrello (20 : 90000 Hz).

Il fenomeno acustico dal punto di vista fisico coinvolge sempre tre elementi:

.... la sorgente corpo vibrante .... il mezzo qualsiasi mezzo elastico .... il ricevitore l'apparato uditivo

La sorgente genera il suono, il mezzo lo trasmette ed il ricevitore percepisce le variazioni di pressione.

In generale le sorgenti sonore possono essere raggruppate in [Lazzarin]:

.. Corpi solidi oscillanti (strumenti a corda, Diaframmi per altoparlanti o strumenti apercussione)

.. Colonne d'aria oscillanti (strumenti a fiato, organi)

.. Corpi in movimento rapido (eliche , fruste)

.. Gas rapidamente fuoriuscenti (razzi, reattori)

.. Incrementi rapidi di pressione (detonazioni)

La voce umana è una complessa combinazione dei primi due meccanismi.

Nelle applicazioni ingegneristiche il mezzo o canale di trasmissione può comprendere apparecchiatureper la trasmissione sotto altre forme energetiche come ad esempio la distribuzione radiofonica cheavviene nell'etere sotto forma di onde elettromagnetiche.Indipendentemente dalla forma di trasmissione un suono può essere percepito e generato solo sottoforma di variazioni di pressione.

SorgenteTrasformazionein altra forma energetica

TrasmissioneTrasformazionein variazionidi pressione

Fig. 1.1.2 I suoni possono essere prodotti solo sotto forma di variazioni dipressione così come l' uomo può percepire i suoni solo come variazioni dipressione.La trasmissione dei segnali sonori può invece avvenire anche sotto altreforme energetiche.

Page 13: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-3

1.1.2. LE CARATTERISTICHE DEL SUONOIl suono è un particolare tipo di segnale che può essere rilevato dall'apparato uditivo umano ed ècaratterizzato da :

... intensità o ampiezza

... acutezza o frequenza

... timbro carattere che distingue lo stesso suono generato da sorgenti diverse

1.1.2.1. AmpiezzaÈ una delle caratteristiche fondamentali del segnale sonoro e può essere espressa con diverse unità dimisura come ad esempio potenza, intensità o pressione sonora.Il massimo intervallo entro cui variano le ampiezze del segnale è detto DINAMICA o INTERVALLODI DINAMICA del sistema.

Alcune misure di ampiezza sono:

Potenza sonora (P) è l'energia totale emessa dalle sorgente nell'unità di tempo e si misura inWatt.

Pressione sonora (p) è la variazione di pressione prodotta dal fenomeno sonoro rispetto allaquiete e può assumere valori sia positivi che negativi e si misura in BAR oNewton/m2 .

Intensità sonora (I) è il flusso di energia trasmesso attraverso un'area di sezione unitariaperpendicolare alla direzione di propagazione del suono si misura inWatt/m2.

La relazione tra pressione sonora (p) e potenza sonora (P) è [Cosa]:

p P cr

= ρπ4 2 [1.1.1]

dove r è la distanza, ρ è l'indice di densità del mezzo e c è la velocità di propagazione del suono nelmezzo2.

La relazione tra intensità sonora (I) e potenza sonora (P) è [Lazzarin]:

I Pr

=4 2π

[1.1.2]

dove r indica la distanza tra sorgente e ricevitore.

Di seguito è riportata una tabella con alcuni valori tipici di potenza sonora:

2Per la propagazione nell'aria la velocità del suono dipendefortemente dalla temperatura (t) secondo la formulaapprossimata [Lazzarin]:

c t C m= + °331 4 0 6, , ( ) / sec.

Page 14: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-4

FENOMENO POTENZA SONORA[WATT]

Aereo al decollo 100Martello pneumatico 1Automobile in corsa 0,1Ventilatore industriale 0,01Voce forte 0,001Lavastoviglie 0,0001Piccolo ventilatore 0,00001Sussurro 0,000000001

Tab 1.1.2 Alcuni valori di potenza sonora espressi in Watt [Lazzarin]

Per misurare l'ampiezza di segnali audio in un intervallo temporale si può fare riferimento al massimovalore assunto dal segnale (come pressione, potenza o intensità) detto valore di picco (peak) cherappresenta il livello massimo trattabile dal sistema.

Il valore di picco è però una misura ingegneristica che poco si adatta alle caratteristiche percettivedell'uomo in quanto il segnale può raggiungere tale valore solo in brevi istanti e rimanere più bassonella maggior parte dell'intervallo di ascolto.

Una misura più rappresentativa potrebbe essere il valore medio dell'ampiezza dell'onda sonora sullostesso intervallo, anche tale misura è però poco significativa in quanto i risultati di alcuni studiindicano che l'orecchio è maggiormente sensibile al segnale integrato su brevi periodi temporali(tipicamente 0.25 secondi) ed è fortemente dipendente dalla frequenza del segnale, segue quindi che letradizionali misure fisiche non si prestano ad un dimensionamento valido dei fenomeni acustici cosìcome sono percepiti e bisogna ricorrere ad unità di misura 'ad hoc' come il deciBel.

1.1.2.1.1. DeciBelIl grande intervallo di potenze sonore udibili è evidenziato dalla Tab 1.1.1 che si estende in unrapporto 1:1.000.000.000 così come i valori in pressione sonora che variano da 2 x 10-4µbar a 200µbar in un rapporto 1:1.000.000.Per evitare di dover usare numeri troppo grandi è stata proposta una misura logaritmica della potenzasonora: il BEL, che, tra l'altro, si adatta perfettamente alle caratteristiche percettive dell'orecchioumano.

Il BEL è definito come il logaritmo in base 10 del rapporto di due quantità con le stesse caratteristichedimensionali, cioè è adimensionale e esprime un raffronto tra due valori: quello da misurare ed unlivello di riferimento.Tenendo presente le [1.1.1] e [1.1.2] il BEL viene definito come:

rifrif IILog

ppLogBEL 10

2

10 =�

��

�= [1.1.3]

Per il nostro scopo però il BEL è ancora una misura troppo grande e per questo viene diviso inDECIBEL.

rifrifrif IILog

ppLog

ppLogDECIBEL 1010

2

10 102010 ==�

��

�= [1.1.4]

Il valore di riferimento (Irif , prif) può essere fissato arbitrariamente (in quanto il BEL esprime solo ladifferenza di livelli) e nel caso si usi il valore della minima intensità udibile di IRif=10-12 W/m2 o dellaminima pressione rilevabile di 2x10-5N/m2 prende il nome di dB SPL (Sound Pressure Level oLivello di pressione sonora).

Il dB è in tal modo una misura appropriata per esprimere intensità sonore , ad esempio le intensitàdella Tab 1.1.1 coprono un intervallo di circa 180 dB.

Page 15: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-5

140 dB Aereo130 dB Soglia del dolore110 dB Moto in accelerazione 90 dB Strada urbana 80 dB Locale pubblico 60 dB Traffico automobilistico 50 dB Voce di conversazione 20 dB Ticchettio orologio 10 dB Fruscio foglie

Tab 1.1.3 Alcuni valori di intensità sonora in dB SPL [Lazzarin]

Essendo il dB una unità logaritmica non è possibile sommare direttamente valori espressi in dB,per ottenere l'intensità risultante dalla somma di I1 e I2 :

A Log II

B Log II

rif

rif

=

=

10

10

101

102

si ricava:I I

I I

rifA

rifB

110

210

10

10

=

=e quindi :

( )�

��

� +=+=+=rif

BA

rifdB I

LogI

IILogIIC1010

1021

102110101010 [1.1.5]

Si noti che un aumento di 3 dB del livello sonoro in intensità o 6 dB in pressione sonora equivale alraddoppio dell'energia.

In modo del tutto simile se una intensità sonora espressa in dB deve essere moltiplicata per un livello:

( ) ( )livLoglivA AdB *1010* 10

10= [1.1.6]

In generale N sorgenti con la stessa intensità Ls producono un segnale :( )NLogLs 2L 10tot += [1.1.7]

1.1.2.2. Frequenza e TimbroPercettivamente la frequenza definisce l'acutezza di un suono; le basse frequenze sono proprie disuoni gravi le alte frequenze di suoni acuti.

La forma d'onda periodica più semplice è la funzione seno, tutte le onde sinusoidali con qualsiasifrequenza nel campo dell'udibile sono dette TONI PURI (o TONI SEMPLICI) mentre quelle nonriconducibili a toni puri sono dette TONI COMPLESSI.Per analizzare la struttura frequenziale di un segnale si possono usare diverse tecniche tra cui :

• filtri a scansione• banchi di filtri• filtri polifase• trasformata di Fourier

Page 16: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-6

Dalla scomposizione di Fourier si ottengono informazioni riguardo all'ampiezza e alla fase dellesingole componenti , informazioni di vitale importanza per la ricostruzione del segnale.

TEOREMA DI FOURIER :

Una funzione del tempo f(t) che nel proprio campo di definizione (-T/2, +T/2)soddisfi alle due seguenti condizioni (Dirichlet):

a) nell'intervallo di definizione possa essere scomposta in un numero finito disubintervalli in cui f(t) sia continua e monotona;

b) se t0 è un punto di discontinuità esistono e sono definiti i limiti f(t0 + 0) e f(t0 -0);

può essere rappresentata nel modo seguente :

∞−

= ωω ω deFtf tj)()(

dove :∞

∞−

−= dtetfF tjω

πω )(

21)(

Nel caso di segnali discreti l'operazione di integrale viene sostituita dalla sommatoria e la trasformatadi Fourier si indica DFT.Il calcolo della DFT comporta un numero di operazioni molto elevato dell'ordine di N2. Per ridurnela complessità algoritmica ne è stata realizzata una versione ottimizzata (FFT Fast Fourier Transform)che richiede un numero di operazioni pari a N log2N.

La rappresentazione frequenziale (forma scomposta in sinusoidi) di un segnale è detta SPETTRO.Il calcolo dello spettro pur essendo una operazione concettualmente semplice può comportare delledifficoltà per segnali che cambiano continuamente nel tempo.Infatti il segnale è un'entità temporale mentre lo spettro è frequenziale, essendo tra loro inversamenteproporzionali (f = 1/t) più ampio è l'intervallo di analisi e minore è la risoluzione frequenziale ovverominore è l'accuratezza.Quindi l'analisi spettrale è un compromesso tra ampiezza temporale e risoluzione frequenziale aseconda dell'applicazione specifica.

SECONDI

T = 0.01 sec.

FREQUENZA100 Hz =1/0.01sec

Fig. 1.1.3 Funzione seno e suo spettro.

La scomposizione di un TONO COMPLESSO porta ad identificare la frequenza fondamentale, che,per definizione, è il tono di frequenza minore tra tutte le componenti.La frequenza fondamentale determina l'acutezza del suono ovvero la collocazione nella bandadell'udibile mentre l'ampiezza e la fase delle armoniche determinano il timbro del suono.Se alla stessa fondamentale si somma una stessa armonica ma con fase diversa il suono apparirà dellostesso tipo ma con assonanza diversa.A parità di livello l'orecchio è maggiormente sensibile ai toni puri piuttosto che a suoni estesi su largabanda.

Page 17: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-7

L'intervallo tra la minima e la massima frequenza trattabile da un sistema viene detto LARGHEZZADI BANDA.

1.1.3. LA DIVISIONE IN OTTAVEL'intervallo di frequenze udibili dall'uomo è stato indicato numericamente dai valori tra 20 e 20000 Hz, tali limiti sono solo indicativi in quanto i valori reali dipendono da molti fattori sia fisici chepsicologici :

.. le caratteristiche genetiche dell'individuo

.. la "dotazione fisica" dell'apparato uditivo

.. l' età

.. l' affaticamento acustico

.. l' esperienza in ascolto

Tutti gli individui rilevano però una sensazione di "similitudine" tra toni fondamentali di frequenzadoppia, tripla, quadrupla, ecc. Per tale motivo è stata introdotta la divisione in ottave dello spettro difrequenze udibili.

Un'ottava è definita come l'intervallo di frequenza tra due fenomeni di cui uno abbia frequenza doppiadell'altro.Le frequenze udibili hanno un'estensione di circa 11 ottave e può essere interessante confrontarlo conl'intervallo delle onde visibili che coprono meno di una ottava.Per definizione ogni banda in ottave è individuata dalla media geometrica delle frequenze che ladelimitano, detta frequenza caratteristica o nominale.

f f

f f falta bassa

caratteristica alta bassa

=

=

2

N.BANDA FREQUENZACARATTERISTICA

FREQUENZAINFERIORE

FREQUENZASUPERIORE

1 16 11,2 22,52 31,5 22,5 453 63 45 904 125 90 1805 250 180 3556 500 355 7107 1000 710 14008 2000 1400 28009 4000 2800 5600

10 8000 5600 1120011 16000 11200 22400

Tab 1.1.4 Divisione in ottave delle frequenze udibili.La frequenza superiore è sempre il doppio di quella inferiore e quindi lalarghezza di banda di ogni ottava aumenta con l'aumentare dellafrequenza.

Un'altra divisione della banda di frequenze udibili può essere fatta in 1/3 di ottava , in tal caso siottengono 31 bande ognuna delle quali è compresa tra due frequenze che sono in un rapporto di 23 :

f f

f f falta bassa

caratteristica alta bassa

=

=

23

1.1.4. IL RUMOREIl rumore è definito [ANSI S 1.1] come la somma di oscillazioni irregolari, intermittenti ostatisticamente casuali. Percettivamente è un suono innaturale e disturbante.

Page 18: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.1 "Il fenomeno suono " Davide Cilano

Pag. 1.1-8

Un rumore può essere classificato in base alle sue caratteristiche in [Cosa] :

.. continuo o discontinuo riferito alla durata nel tempo .. stazionario o fluttuante in base all'intensità .. casuale se la durata e l'intensità sono irregolari .. impulsivo se la sua energia è concentrata in brevi intervalli temporali

L'unità di misura del rumore più usata è l'incremento di pressione sonora indotta, espressa inNewton/m2.La soglia di percezione del rumore dipende dall'intensità, dalla frequenza e , per rumori di tipoimpulsivo anche dalla durata.Tipicamente la soglia di percezione dipende fortemente dalla frequenza ed è tra -1 e 3 dB SPL per lefrequenze centrali, aumenta a 10-20 dB SPL alle alte frequenze e a 40-70dB SPL per le basse.La soglia temporale di percezione del rumore è di circa 100ms.

Alcuni rumori tipici possono essere identificati dal rapporto tra potenza e frequenza [Cosa]; adesempio si indica con il termine rumore bianco un rumore la cui densità spettrale di potenza sonora èdistribuita in modo costante su tutte le frequenze udibili; si definisce rumore rosa, un rumore che hapotenza per singola frequenza inversamente proporzionale alle frequenze comprese in un determinatocampo.Quindi per il rumore bianco l'intensità di pressione sonora decresce di 3 dB per ogni banda di ottava,mentre per quello rosa rimane costante pur diminuendo la ripartizione sulle singole frequenze.

Un suono si differenzia dal rumore solo per le sensazioni di piacere o sgradevolezza che suscita e nonne esiste una distinzione oggettiva.

1.1.5. COMPONENTI TONALILe componenti tonali sono quelle componenti di un tono complesso che più 'assomigliano a toni puri.Un metodo semplificato per valutare la presenza di componenti tonali in una emissione sonora è dieffettuarne una analisi per bande di 1/3 di ottava [Cosa]:

"se il livello di pressione sonora di una o più bande di 1/3 di ottavadello spettro sonoro supera per più di 5 dB quello delle due bandeadiacenti, si è in presenza di componenti tonali."

Tutte le componenti del segnale sonoro che dall'analisi non risultano essere tonalivengono dette NON TONALI e possono essere assimilate a rumore.

Page 19: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2LA PERCEZIONE

DEL SUONO1.2.1. ORECCHIO UMANO E SENSIBILITÀ IN FREQUENZA .............................................................11.2.2. LA PERCEZIONE ..........................................................................................................................41.2.3. UNITÀ DI MISURA PERCETTIVE................................................................................................4

1.2.3.1. Il Bark..............................................................................................................................41.2.3.2. Loudness..........................................................................................................................51.2.3.3. Il Phon.............................................................................................................................61.2.3.4. Il Sone..............................................................................................................................7

1.2.4. IL MASCHERAMENTO .................................................................................................................81.2.4.1. ... Nella Frequenza ..........................................................................................................91.2.4.2. ... Nel Tempo ...................................................................................................................111.2.4.3. ... Nel Tempo e Frequenza...............................................................................................12

1.2.5. PERCEZIONE DI VARIAZIONI DI INTENSITÀ...........................................................................13

L'orecchio è sensibile ai segnali in funzione della frequenza e dell'ampiezza, due suoni di diversafrequenza e pari intensità vengono percepiti di intensità diversa.Questo capitolo è un' introduzione alla terminologia ed ai fenomeni coinvolti nel processo dipercezione dei suoni, vengono definite alcune unità di misura percettive, si riporta una brevedescrizione del funzionamento dell'apparato uditivo e si introduce il fenomeno di mascheramento trasuoni.

1.2.1. ORECCHIO UMANO E SENSIBILITÀ IN FREQUENZA

Fig.1.2.1 Struttura schematica dell'orecchio umano esterno e medio.

L'orecchio può essere diviso dal punto di vista funzionale in [Lazzarin] :

.. orecchio esterno .. padiglione auricolare .. condotto uditivo esterno .. membrana timpanica

Page 20: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-2

.. orecchio medio .. cavità ossea con tre ossicini : martello, incudine e staffa .. finestra ovale .. due muscoli di smorzamento dei movimenti dei tre ossicini .. un canale di comunicazione con l'atmosfera per compensare le pressioni sulle due

superfici della membrana timpanica (Tromba di Eustacchio)

.. orecchio interno .. vestibolo .. canali semicircolari detti labirinto .. coclea , canale colmo di un materiale elastico

Orecchio Esterno Orecchio Medio Orecchio Interno

Fig 1.2.2 Struttura interna dell'orecchio umano, sono indicati i principali organicoinvolti nel processo di percezione.

Il canale cocleare è la parte che più influenza la percezione sonora.La coclea è un canale lungo circa 35mm. a fondo cieco che è diviso per tutta la sua lunghezza in trecamere dalla membrana basilare.Queste tre parti sono:

.. superiore : o vestibolare comunica con l'orecchio medio attraverso la finestra ovale .. inferiore : o timpanica comunica con la superiore verso l'apice della coclea .. media : che contiene una sostanza detta endolinfa

Page 21: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-3

Fig 1.2.3 Rappresentazione della coclea srotolata. Si può notare la divisione pertutta la lunghezza in tre camere.

Sulla membrana basilare si trova l'organo di Corti in cui sono situate le cellule recettrici il cuicompito è di trasformare le differenze di pressione in impulsi elettrochimici da inviare al cervello.

Segue una descrizione sintetica del fenomeno della percezione sonora :

-- l'orecchio esterno funzionando da risonatore per le frequenze tra 1000 e 7000 Hz(maggiormente efficace intorno a 3000 Hz) produce un incremento di circa 10-12dB dellepressioni sonore fra l'esterno ed il timpano

-- nell'orecchio medio la membrana timpanica mette in vibrazione martello, incudine e staffa, che,funzionando come un sistema di leve triplicano la forza applicata sulla finestra ovale (la cuisuperficie è 1/30 di quella del timpano)

-- a questo punto la pressione originaria esercitata sul timpano è stata amplificata di circa 90 voltee viene impressa sulla finestra ovale

-- dalla finestra ovale il suono (sotto forma di variazione di pressione) giunge all'orecchio internodove attraverso il movimento del liquido cocleare dei canali vestibolare e timpanico lamembrana base mette in risonanza le cellule situate nell'organo di Corti.

-- le cellule del Corti producono dei segnali di tipo elettrochimico che attraverso il nervo uditivogiungono al cervello secondo un processo non ancora ben conosciuto.

In tutto il processo di percezione uditiva vengono coinvolti numerosi fenomeni soggettivi che possonoprodurre in individui diversi sensazioni differenti in presenza dello stesso suono esterno.Inoltre sono presenti altri fenomeni di "autodifesa" che modificano la caratteristica dell'informazionetrasmessa nell'apparato uditivo.Ad esempio i tre ossicini martello, incudine e staffa sono controllati da dei piccoli muscoli che inpresenza di alte intensità sonore ne riducono il potere amplificante (solo per suoni di durata superioreai 200ms.).

La percezione di un suono può avvenire anche per via ossea (soprattutto per quello auto prodotto).

L'orecchio è in grado di percepire tutte le caratteristiche del suono tranne la sua localizzazione.Per sopperire a tale mancanza, il soggetto umano si basa su confronti tra i suoni percepiti dall'orecchiodestro e dal sinistro con spostamenti della testa.

1.2.2. LA PERCEZIONEI recenti studi in campo psicoacustico hanno evidenziato che l'apparato uditivo umano è in grado dirilevare solo alcune caratteristiche del segnale audio ed in particolare:

Page 22: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-4

Caratteristica FISICA Fenomeno PERCEPITO

Frequenza PitchIntensità Livello percepito o Loudness

Forma spettrale, Modulazione ,Frequenza Intensità, Fluttuazioni, RigidezzaTempo Durata soggettiva

Tab 1.2.1 Caratteristiche fisiche del suono e corrispondente fenomeno percepitodall'uomo.

La descrizione di come vengono percepiti i suoni può essere semplificata se al posto delle unità dimisura "fisiche" si usano unità di misura "percettive" ovvero costruite "ad hoc" sulla capacità dirisoluzione dell'apparato uditivo.Così al posto della frequenza conviene usare le bande critiche o Bark, e al posto dell'intensità si usa illoudness misurato in Phon o Sone.

In definitiva la percezione umana può essere ben descritta in uno spazio a tre dimensioni:

Fig. 1.2.4 Spazio tempo - frequenza - intensità in cui può convenientemente

essere descritto e studiato il fenomeno della percezione sonora umana.

1.2.3. UNITÀ DI MISURA PERCETTIVENei paragrafi che seguono si riportano le definizioni delle unità di misura percettive di uso comune ese ne spiega il significato e l'uso.Tali unità di misura essendo percettive sono valide solo su base statistica e sono state ottenute da studicompiuti negli anni passati su grandi campioni di individui acusticamente sani.Ne segue che sono valide per ascoltatori che rientrano nella media e non per soggetti affetti dapatologie o dotati di particolare acutezza.Le unità di misura esposte sono state soggette all'approvazione e standardizzazione dell'ISO(International Standard Organization).

1.2.3.1. Il BarkIl Bark è una unità di misura non lineare che viene usata per dividere l'intera banda di frequenzeudibili in sottobande confinanti non sovrapposte che ben modellizzano il processo di percezione deisuoni da parte dell'uomo.Il concetto delle bande critiche è basato sulla comprovata assunzione che il nostro sistema uditivoanalizza lo spettro di un segnale audio dividendolo in sottobande (dette bande critiche).

Banda Critica [Aarts]: La banda di frequenze più larga in cui l'intensità di un rumoredistribuito casualmente nella stessa banda di intensità energetica costante (SPL)è indipendente dalla sua larghezza di banda.

Aggiungendo una banda critica alla successiva, in modo che il limite superiore della più bassacoincida con quello inferiore della più alta, si ottiene la scala di banda critiche che è non lineare in

Page 23: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-5

quanto le bande critiche hanno un'ampiezza variabile in funzione della frequenza e seguonoun'andamento pressoché logaritmico.

Fig 1.2.5 Rappresentazione delle frequenze coperte dai bark:in ascissa è rappresentata la frequenza,in ordinata le bande critiche 0:24 .La curva rappresenta l'intervallo di frequenza coperto dalle bandecritiche.

L'ampiezza delle bande critiche è di circa 100 Hz fino a 500 Hz mentre al di sopra questo valorehanno un'ampiezza relativa che aumenta del 20%, le bande critiche sono strettamente correlate allafrequenza.La divisione in bande critiche è stata ottenuta da esperimenti percettivi che hanno misurato i confini infrequenza entro cui due toni distinti vengono percepiti come un unico suono.

La formula di conversione da frequenza a Bark è [Kapust]:

( )2

4

7500arctg5.310*6.7arctg13 �

��

�+= − ffBark

dove f è la frequenza espressa in Hertz.

La larghezza di ogni banda critica banda critica è invece data da [Zwicker]:

Larghezza 25 75 1 1.4 fHz centro2 0.69

= + +

Zwicker indica che le bande critiche sono mobili nel dominio della frequenza e si dimensionano inmodo tale che l'orecchio umano percepisca il massimo dell'informazione.

1.2.3.2. LoudnessIndica l'intensità percepita di un suono e dipende dall'intensità energetica e dalla frequenza, inparticolare le definizioni sono [Aarts]:

Page 24: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-6

Loudness: Attributo di sensazione uditiva secondo cui un suono può essere ordinato in unascala da lieve a intenso

Livello di Loudness: livello della pressione sonora di riferimento, scelta come un'ondasinusoidale di frequenza 1KHz proveniente dal fronte dell'ascoltatore e cheè giudicato da una persona con udito sano di uguale intensità al suono diraffronto.

La scala dei loudness è stata costruita sperimentalmente basandosi sul livello di riferimento di un tonodi 1KHz a 40 dB (suono di riferimento standard in elettroacustica). Il loudness può essere misurato inPhon o Sone che sono definiti di seguito.

1.2.3.3. Il PhonLa sensibilità uditiva varia in funzione della frequenza ed in particolare è massima per le frequenzecentrali e minima per le estreme (alte e basse).Il PHON è la misura dell'intensità soggettiva del suono (LOUDNESS) e rappresenta l'intensitànecessaria per produrre ad una certa frequenza la stessa sensazione uditiva in deciBel, di quella di untono alla frequenza di 1000 Hz, a tale frequenza i livelli di Phon e dB si equivalgono.

Fig. 1.2.5 Audiogramma in PHON ISO R 226 di Robinson e Dadson, riporta infunzione della frequenza l'intensità necessaria in dB per produrre lastessa sensazione in intensità di un tono a 1KHz; le linee di isosensazioneesprimono l'intensità in dB che un suono deve avere in funzione dellafrequenza per essere percepito ad una intensità costante in PHON.

L'audiogramma riportato nella Fig 1.2.6 riporta le curve di ISOSENSAZIONE (intensità soggettivadel suono) e si riferisce a toni puri.I risultati tabulati sono l'esito di prove eseguite da Robinson e Dadson su un campione di individuisani.La scala dei PHON è stata costruita sperimentalmente e come per i deciBel un raddoppio dell'energiaproduce un aumento di 3 Phon.

Dalla figura si può notare che:

Page 25: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-7

.. la sensibilità è massima alle frequenze 20:3000Hz corrispondenti al parlato (l'orecchioesterno amplifica per risonanza queste frequenze)

.. le basse frequenze vengono percepite solo a grandi intensità (l'orecchio esterno rifletteparzialmente i suoni con grandi lunghezze d'onda)

.. le alte frequenze per essere udite devono essere molto intense (i tre ossicini dell'orecchiomedio ne limitano la trasmissione)

.. la curva dei phon tende ad appiattirsi con l'aumentare dell'intensità (i due muscoli collegatia martello, incudine e staffa ne smorzano il potere amplificante ).

1.2.3.4. Il SonePer ridurre la complessità dovuta all'uso della scala logaritmica dei phon, sperimentalmente è statacostruita la scala dei SONE.Il livello di 1 SONE è definito [ANSI S 3.4] come l'intensità sonora soggettiva (loudness) uguale ad unlivello di 40 PHON.In prima approssimazione ogni aumento di 10 phon corrisponde ad un raddoppio del livello di SONE.Dunque nella scala dei SONE (unità di misura soggettiva del suono) una intensità di 4 SONE è duevolte più "rumorosa" di un suono di 2 SONE.

Le relazioni tra PHON e SONE sono le seguenti [Cosa]:( )

03.02.1

4003.0

10SoneLogPhon

PhonSone

=

−=[1.2.1]

Per calcolare i livelli di SONE in funzione della pressione sonora [Aarts]:( ) 6.0

001.0 ppSone −=

dove p0 = 45 µPascal approssima la soglia statica e p è la pressione in micropascal .Per valori di p>>p0 le formule [1.2.1] possono essere ben approssimate dalle seguenti [Aarts]:

( )

SonePhonSone

Phon

2

1040

log402

+==

Il loudness di suoni complessi viene calcolato in funzione della loro scomposizione spettralesommando il loudness di tutti i toni entro una banda critica che è l'equivalente psicologico di sommarel'attività delle cellule recettrici sulla membrana basilare.Questo corrisponde all'assunzione che le sollecitazioni sulla membrana base si sommino per formare illoudness totale, ovvero che l'apparato uditivo ne operi l'integrale. Se tale integrale viene fatto in Sone,il risultato finale si esprime in Sone per Bark e si indica con N'

=Bark

dzzNN24

0

)('

Il suono esteso a tutte le bande che produce un loudness di 1 Sone corrisponde ad una eccitazioneuniforme nelle bande critiche di 30dB.

Il loudness prodotto da un tono a 1 KHz è molto inferiore al loudness prodotto da una eccitazioneuniforme su tutti i Bark, soprattutto per livelli intensi mentre sono pressoché uguali a bassi livelli.

1.2.4. IL MASCHERAMENTONon tutte le vibrazioni entro la banda dell'udibile sono percepite dall'orecchio umano, la lororilevazione da parte dell'apparato uditivo dipende in prima approssimazione dall'intensità e dallafrequenza e da analisi più accurate anche dai segnali adiacenti sia nel dominio del tempo che dellafrequenza; tale fenomeno è noto con il nome di mascheramento.

Il mascheramento è definito come il livello di pressione sonora o dB SPL di un tono di riferimentonecessario perché questo possa essere udito in presenza di uno mascherante.

Page 26: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-8

La percettibilità di un tono puro in assenza di altri segnali dipende principalmente della frequenza eintensità dando origine a quella che viene detta soglia statica di mascheramento o in quiete.Altri fattori che influiscono nella determinazione della soglia di mascheramento sono:

.. durata

.. dotazione fisica dell'individuo

.. età

.. affaticamento

.. stato fisico

.. stato psichico dell'individuo

Fig. 1.2.6 Soglia di percezione in quiete in funzione della frequenza edell'intensità sonora.Ad esempio la soglia può essere approssimata ad una pressione di sogliadi 0 dB per le frequenze tra 800 e 5000 Hz per ascoltatori composti daadulti normali in giovane età (0 dB SPL).Oltre i 5000 Hz la soglia aumenta rapidamente fino a coincidere con lasoglia di dolore a circa 16000 Hz. Il limite superiore per la pressionesonora è stabilito in 120 dB ed è pressoché indipendente dalla frequenza.Suoni di questa intensità provocano una forte sensazione di fastidio.La soglia di dolore è posta a circa 130 dB; a tale livello il suono causasensazioni dolorose. Valori più elevati comportano sordità temporanea opermanente anche per breve esposizione. È interessante considerare lagrande estensione del campo di variazione dell'ampiezza di vibrazionetimpanica; esso infatti va da circa 10-9 cm per la soglia uditiva (0 dBSPL) a 10-2 cm a 140 dB (valori rilevati a 2000 Hz).

La soglia minima del suono percepibile (soglia statica) rappresentata in figura 1.2.7 è stata ottenuta daesperimenti su un grande campione di individui.La sua espressione matematica approssimata è [Zwicker]:

( ) ( ) ( )432.36.08.0 105.664.32

KHzf

KHzdB fefSoglia KHz −−−− +−=

La soglia di mascheramento per toni complessi è detta soglia di mascheramento dinamica ed èfortemente dipendente dalla microstruttura del segnale in quanto i toni componenti interagisconomascherandosi a vicenda e contribuendo alla forma finale della maschera.

La maschera può essere studiata sia nel dominio del tempo che della frequenza; nel dominio del tempoil mascheramento può essere simultaneo e non simultaneo mentre in quello della frequenza un tonomaschera quelli di frequenza adiacente a seconda dell'intensità.

Page 27: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-9

1.2.4.1. ... Nella FrequenzaNel dominio della frequenza il mascheramento è molto intenso in prossimità dei toni mascheranti, chealzano in modo significativo i valori di soglia statica, in particolare se l'orecchio percepisce un suonodi una certa frequenza, presenta minore sensibilità per le frequenze vicine ad essa. La conoscenza ditale fenomeno permette la costruzione della soglia di mascheramento.

In generale un suono ad una certa frequenza maschera tanto più i suoni di frequenza adiacente quantopiù è intenso.

La figura 1.2.8 riporta la curva di mascheramento per toni a 0.5, 1.2, 4, 8 KHz con livello di 60 dBSPL, la scala delle frequenze è lineare.

Fig 1.2.7 Curve di mascheramento in funzione della frequenza su scala lineare,la curva inferiore rappresenta la soglia statica.Per determinare tali curve si usa un tono di riferimento e si troval'intensità affinché sia udibile in presenza di un mascherante.

Nella Fig 1.2.8 si nota una gran diversità tra le curve di mascheramento al variare della frequenza.Risultati non diversi si ottengono dalla rappresentazione su scala logaritmica (fig 1.2.9) :

Fig. 1.2.8 Rappresentazione su scala logaritmica degli effetti di toni mascherantidi intensità pari a 60 dB.

Anche in scala logaritmica la forma delle curve risulta dipendente dalla frequenza, però si può notarecome le curve su scala lineare sotto i 500 Hz siano uguali a quelle su scala logaritmica sopra i 500 Hz.Ciò suggerisce che si potrebbe ottenere l'indipendenza della forma della maschera dalla frequenzascegliendo una scala lineare sotto i 500 Hz e logaritmica al di sopra.

Page 28: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-10

Una tale scala di frequenze è già stata illustrata ed è quella dei Bark ; infatti la rappresentazione dellostesso fenomeno usando la scala dei bark evidenzia una forma di mascheramento costante:

Fig 1.2.9 Rappresentazione della forma della curva di mascheramento di tonipuri con livello di 60dB usando per la frequenza la scala dei Bark.Il vantaggio introdotto è evidente rendendo indipendente la forma dellamaschera dalla frequenza a meno di intersezioni con la soglia statica dimascheramento.Si noti che la funzione di mascheramento è molto più ripida a sinistra chea destra.

Dunque, con la scala dei Bark lo studio dei fenomeni di mascheramento è molto semplificatopermettendo la costruzione della soglia con una funzione dipendente solo dall'intensità.

In particolare la dipendenza dall' intensità provoca l'allungamento della curva di mascheramento conl'aumentare del livello, tale fenomeno è dovuto alla saturazione delle cellule recettrici dell'orecchiointerno.

Fig 1.2.10 Variazione della forma della curva di mascheramento in funzionedell'intensità del tono mascherante

Page 29: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-11

1.2.4.2. ... Nel TempoNel dominio del tempo un tono viene mascherato notevolmente dalle sollecitazioni sonore temporaliprecedenti (specialmente per quelle più immediate); ed in modo molto meno evidente e motivabile perquelle immediatamente future (per cui non è ancora stata trovata una valida spiegazione), talefenomeno è noto come mascheramento temporale e si distingue in simultaneo e NON simultaneo.

Un esempio della condizione di simultaneità potrebbe essere il caso in cui noi abbiamo unaconversazione con un vicino mentre passa un treno. La nostra conversazione risulta disturbata eper poterla continuare è necessario "alzare la voce" per produrre più potenza e quindi unamaggiore sonorità. Nella musica si ha un comportamento analogo. I differenti strumenti sipossono mascherare tra di loro, gli strumenti più tenui possono essere uditi solo quando non sonopresenti quelli più forti.

NON SIMULTANEOFenomeno secondo cui un tono "copre" quelli vicini nel tempo sia passato che futuro.La soppressione nel tempo futuro può essere ben spiegata dagli studi sulle proprietà meccaniche degliapparati dell'udito interni mentre non è ancora stata trovata una valida spiegazione (sono state solofatte delle supposizioni) del fenomeno del pre-mascheramento ; vale a dire che un tono maschera nonsolo i suoni che seguono ma anche quelli che lo precedono.

La supposizione più avvalorata è che a livello neurale venga compiuta una analisi del suono, come sefosse ritardato e analizzato prima di trasmetterne gli impulsi al cervello per la vera e propria"audizione".

Fig 1.2.11 Rappresentazione schematica del fenomeno di mascheramento nonsimultaneo nel dominio del tempo, si può notare che il pre-mascheramento ha effetti minori del post-mascheramento.

SIMULTANEORiguardo al mascheramento simultaneo da esperimenti su animali si è trovato che ha luogonell'orecchio interno, prima della trasmissione a livello neurale.La curva di mascheramento è stata trovata anche da esperimenti comparativi servendosi di toni purifissi.Il mascheramento simultaneo ha come effetto l'aumento della soglia di mascheramento ad unacomposizione delle due che può essere ottenuto in modo approssimato, per toni puri, come sommaenergetica secondo la :

αα

/1

1

���

�==

n

iitot MM con a<2

e dove Mi è la maschera dell' i-esimo impulso simultaneo.

Tale formula è valida sia per mascheramenti simultanei che per i non simultanei e il parametro αassume valori diversi nel dominio temporale e frequenziale.

Page 30: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-12

1.2.4.3. ... Nel Tempo e Frequenza

Fig 1.2.12 Rappresentazione schematica del fenomeno di mascheramento di untono puro nel dominio della frequenza.

Una prima approssimazione delle curve di salita e discesa con delle rette è data da [Kapust]:

BarkdBLivellof

S

BarkdBS

dB /2,010,230min22

/31

2

1

����

�−��

����

�+=

=

Fig 1.2.13. Rappresentazione schematica del mascheramento temporale di unimpulso di durata finita.Una espressione della formula di decadimento di post-masking viene datada Zwicker :

( )�

���

�−= − 25.02.13

arctg35.110.1

dtD

Dove t è il tempo trascorso da quando il segnale è cessato e d è la duratadel mascherante.

Il post-masking si verifica come rilascio graduale degli effetti di mascheramento ovvero ilmascherante non si arresta subito dopo il suo manifestarsi ma decresce gradatamente.L'effetto di post-masking dipende in modo non lineare anche dalla durata del mascherante.Gli effetti di durata e di mascheramento possono essere ben definiti in due dimensioni (Bark,loudness)

Page 31: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.2 "La percezione del suono" Davide Cilano

Pag. 1.2-13

Fig 1.2.14. Rappresentazione del fenomeno di mascheramento nei domini ditempo e frequenza.

Non solo il mascheramento può essere descritto più semplicemente in termini di Bark ma anche moltialtri effetti, come la tonalità, le differenze di frequenza udibili distintamente e la crescita dell'intensitàsonora in funzione della larghezza di banda.

1.2.5. PERCEZIONE DI VARIAZIONI DI INTENSITÀLe variazioni in intensità vengono percepite solo se superiori a 5 dB (più di un raddoppio dell'energiasonora1).La sensazione di raddoppio dell'intensità soggettiva corrisponde ad un incremento di 10 dB(corrispondente a un'amplificazione dell'energia iniziale di 10 volte !).

L'amplificazione della sorgente (N) per ottenere un dato incremento in deciBel è:dB Log N

N

incremento

dBincremento

=

=

10

10

10

10

1Si ricorda che un raddoppio dell'energia sonora corrispondeall'aumento di 3 dB .Con 6 dB di aumento, si ha un quadruplicamento dell'energiasonora.

Page 32: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3L'AUDIO DIGITALE

1.3.1. INTRODUZIONE...........................................................................................................................11.3.2. IL CAMPIONAMENTO..................................................................................................................21.3.3. LA QUANTIZZAZIONE .................................................................................................................31.3.4. L'SNR (Signal to Noise Ratio) ........................................................................................................31.3.5. LA CODIFICA PCM (Pulse Code Modulation).............................................................................41.3.6. COMPRESSIONE DI SEGNALI CON LEGGE A_LAW E m_LAW............................................51.3.7. I SISTEMI PCM NELLA REGISTRAZIONE DIGITALE ...............................................................61.3.8. I SISTEMI PCM NELLA RIPRODUZIONE DIGITALE ................................................................81.3.9. PARAMETRI PER LA QUALITÀ DI UN SISTEMA AUDIO .........................................................101.3.10.I SISTEMI DI COMPRESSIONE NELLA CATENA PCM............................................................11

Il presente capitolo è una introduzione alle tecniche ed ai sistemi per la memorizzazione eriproduzione di audio digitale.Vengono descritti i dispositivi necessari in una catena di registrazione di digitale per meglio chiariredove e perché è utile una codifica in formato compresso quale la codifica MPEG_Audio.

1.3.1. INTRODUZIONEIl termine "Audio digitale" indica la tecnica usata per la registrazione, la memorizzazione o latrasmissione dell'informazione sonora, che dovrà venire riportata in analogico per permetternel'ascolto.Il suono infatti è per sua natura analogico e può essere prodotto e percepito solo sotto forma divariazioni di pressione; una sua rappresentazione (codifica) può invece essere fatta in forma analogicao digitale.Il termine digitale indica dunque solo un modo per "trasportare" (trasmettere o registrare) il segnale:

Fig. 1.3.1 L'audio digitale è una alternativa alla forma analogica per la rappresentazionedell'informazione sonora, si tenga presente che un suono può essere prodotto e percepitosolo sotto forma analogica.

L'introduzione dell'audio digitale ha cambiato il modo di riprodurre ed ascoltare il "suono", l'audiodigitale è infatti ben lontano come fedeltà di riproduzione dall'audio analogico, la qualità di

Page 33: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-2

riproduzione ottenibile con la tecnica digitale è notevolmente superiore alla analogica in quanto ingenerale l'accuratezza dei sistemi è una funzione del rumore introdotto dal sistema stesso; nei sistemianalogici tale rumore non è facilmente controllabile perché è difficile ottenere componenti contolleranze inferiori all'1% [Malcangi].In digitale invece adottando la necessaria precisione numerica è possibile ottenere qualsiasiaccuratezza che rimane (al contrario dell'analogico) invariante nel tempo.Altra caratteristica dei sistemi digitali è la possibilità di essere programmati ottenendo una maggiorversatilità rispetto agli analogici.

Si fa notare che il preferire l'audio digitale o analogico sia solo una scelta dettata dalle sensazionisoggettive che si hanno ascoltando l'audio in una o l'altra forma.

1.3.2. IL CAMPIONAMENTOI principi base per la codifica digitale di un segnale analogico sono il campionamento e laquantizzazione .Il segnale sonoro può essere rappresentato in un diagramma tempo - intensità; dove entrambi iparametri variano in un'insieme continuo di valori.L'operazione di campionamento consiste nel rilevare l'ampiezza del segnale solo ad intervalli discretiequiampi attraverso la discretizzazione dell'asse dei tempi

Tempo

A

B

A

B

Tempo

Intensità

Intensità

Fig 1.3.2 Campionamento di un segnale analogico.La scala dei tempi viene discretizzata e si valuta l'intensità del segnale solo inun numero finito di istanti temporali. Ciò che si ottiene è la rappresentazionecampionata del segnale che ha una forma a gradini di valori continuinell'intervallo [A,B].

Il campionamento è un processo che non introduce perdita di informazione se si pone riguardo al fattoche le uniche variazioni che possono sfuggire sono quelle più rapide del campionatore stesso.Questa osservazione è l'enunciato del teorema di Nyquist:

Teorema di NYQUIST o del CAMPIONAMENTO :

Non si perde informazione nella rappresentazione discreta di un segnale continuo se la frequenzamassima contenuta nel segnale è inferiore o al più uguale alla metà della frequenza dicampionamento.

Se la frequenza di campionamento è inferiore al doppio della banda del segnale, si verifica ilfenomeno di aliasing generato da una intermodulazione tra il segnale stesso e il segnale dicampionamento.Da un punto di vista frequenziale questo effetto produce un ribaltamento di spettro che crea unaporzione di spettro fittizio nella banda del segnale.

Page 34: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-3

Per evitare l'aliasing senza modificare la frequenza di campionamento si possono rimuovere lecomponenti frequenziali che superano la metà della frequenza di campionamento con un filtro passabasso ideale.

In particolare si dimostra che se viene soddisfatto il teorema del campionamento il segnale originaleprima del campionamento può essere esattamente ricostruito interpolando i campioni discreti con unfiltro bassa basso ideale.

1.3.3. LA QUANTIZZAZIONELa quantizzazione è il processo di approssimazione degli infiniti livelli di ampiezza del segnale conun numero finito di valori. La quantizzazione al contrario del campionamento è un processo cheintroduce sempre perdita di informazione dato che non è possibile ricostruire il segnale originario dauno quantizzato.L'approssimazione introdotta sul segnale è tanto minore quanto più è piccolo il passo diquantizzazione Q.

Tempo

A

B

A

B

Tempo

Intensità

Intensità

Fig 1.3.3 Campionamento e Quantizzazione di un segnale audio.L'asse dei tempi viene discretizzato per operare il campionamento.L'asse delle intensità viene discretizzato e gli infiniti valori assunti dal segnalecampionato vengono ricondotti al valore più prossimo tra i finiti valoridisponibili.

La perdita che si introduce con l' approssimazione è detto errore di quantizzazione e produce ilcosiddetto rumore di quantizzazione che è simile percettivamente al rumore bianco. Tale errore è dovuto all' approssimazione di arrotondamento o troncamento della quantizzazione edè distribuito casualmente nell'intervallo -Q/2 ... +Q/2 ( Q: intervallo tra due livelli di quantizzazione opasso di quantizzazione) .

1.3.4. L'SNR (Signal to Noise Ratio)Il rumore di quantizzazione può essere più o meno udibile a seconda della sua intensità rispetto aquella del segnale audio in ogni intervallo di campionamento.Per dare una misura dell'interferenza del rumore di quantizzazione e quindi di quanto può esserepercepito può essere usato il rapporto segnale rumore; indicato con SNR.

SNR Log SegnaleRumore

dB= 20 10

Se si usa un numero B di Bit per la quantizzazione su livelli equi ampi, il rumore di quantizzazionevale:

SNR Log B= 20 210

ed in forma approssimata :

SNR B dB≅ +6 1 74.

Page 35: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-4

Si evidenzia così che ogni bit contribuisce per circa 6 dB al diminuire del rapporto SNR totale, in unsegnale, maggiore è il rapporto SNR e più fedele è la rappresentazione dell'audio.Tuttavia si noti che per quantizzare un segnale analogico caratterizzato da un rumore intrinseco di 20dB sarebbe del tutto inutile usare più di 4 bit per la quantizzazione digitale.

Condizione sufficiente affinché il rumore di quantizzazione non sia udibile è che ilvalore di SNR sia superiore al valore in dB tra segnale e soglia di mascheramento perogni banda critica.

NUMERO DI BITNUMERO

DI LIVELLI

RAPPORTOSEGNALE RUMORE

SNR(DB)

1 2 82 4 143 8 204 16 265 32 326 64 387 128 448 256 509 512 56

10 1024 6211 2048 6812 4096 7413 8192 8014 16384 8615 32768 9216 65536 98

Tab. 1.3.1 Valori di SNR in funzione del numero di bit usati per la quantizzazione

1.3.5. LA CODIFICA PCM (Pulse Code Modulation)La rappresentazione numerica ottenuta campionando e quantizzando un segnale analogico può esserecodificata secondo una qualsiasi sintassi.Ogni modo di rappresentazione permette però una diversa accuratezza nei processi di quantizzazionee campionamento determinando in l'efficienza del sistema in termini di:

... larghezza di banda ... rapporto segnale rumore ... accuratezza ... sensibilità agli errori

Alcune tecniche di codifica per segnali digitali sono :

- PCM Pulse Code Modulation- ADPCM Adaptive Differential PCM- PAM Pulse Amplitude Modulation- PNM Pulse Number Modulation- PWM Pulse Width Modulation- PPM Pulse Position Modulation

Il sistema PCM viene universalmente accettato come una codifica efficiente per audio ad alta qualità,offrendo buoni parametri in termini di larghezza di banda, intervallo di dinamica e dimensioni dellarappresentazione.

Page 36: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-5

Il sistema PCM quantizza l'intensità analogica in 2N livelli equiampi (N è il numero di bit dellarappresentazione).In pratica il segnale in ingresso viene campionato ed il valore di ogni campione viene rappresentatocon il livello più prossimo della rappresentazione digitale (troncando o arrotondando).

Una sequenza di campioni per uno o più canali viene ottenuta alternandone le rappresentazioni PCM:

N Bit N Bit N Bit N Bit N Bit N Bit N Bit N Bit N Bit N Bit N Bit N Bit

Sinistro Destro Sinistro Destro Sinistro Destro Sinistro Destro Sinistro Destro Sinistro Destro

Fig. 1.3.4 Rappresentazione di una sequenza di campioni PCM per segnali audio stereofonici(2 canali monofonici indipendenti)

In PCM tutti i passi di quantizzazione sono uguali, ciò implica una scarsa accuratezza per bassi livellidel segnale.Esistono tuttavia delle particolari codifiche non lineari in cui i passi di quantizzazione sono variabili,in genere per tali codifiche l'ampiezza degli intervalli di quantizzazione aumenta o diminuisce con illivello del segnale.Appartengono a tale classe le codifiche denominate A_Law e µ_Law1 usate per la trasmissione disegnali audio.

1.3.6. COMPRESSIONE DI SEGNALI CON LEGGE A_LAW E µµµµ_LAWAppartengono alla classe di codifiche con passo di quantizzazione variabile e sono anche dette leggi adeciBel ponderati ovvero per cui i deciBel di misura di intensità del suono vengono pesati daivalori di particolari funzioni del livello.

Le curve più note sono le A, B, C. Esse in pratica funzionano quantizzando il segnale su un numero dilivelli dipendente dalla frequenza (quantizzatore non uniforme) secondo quelle che sono le curve diintensità soggettiva dei PHONIn pratica la curva A serve per bassi livelli e approssima l'inverso dell'isofonica di 40 Phon, la B perlivelli medi e si riferisce a 60 Phon e la C per alti livelli e si riferisce a 80 Phon [Lazzarin].Per evitare la scomodità di dover individuare il livello prima di applicare una curva si è stabilito diapplicare in tutti i casi la curva A ovvero la A_Law.I valori misurati con la curva di ponderazione A si indicano con il termine di dBA:

=

≤≤→+

≤≤→+

+

AxxA

xxA

xxAAxxAyLawA

/1|/|0)log(1|/|

1|/|/1)log(1

|)/|log(1

maxmax

maxmax

|:|_

µ µµ

_ :| |log( | / | )

log( )maxLaw y

x x=

++

11

Dove A e µ sono parametri fissi che dipendono dal fattore di compressione voluto.

Le tecniche di codifica a deciBel ponderati sono un primo tentativo di tenere conto delle capacitàpercettive umane per migliorare la rappresentazione del segnale audio, non a caso la legge Aapprossima la curva di LOUDNESS di 40 Phon.

1La codifica A_Law è usata in Europa mentre la µ_Law in America eGiappone.

Page 37: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-6

1.3.7. I SISTEMI PCM NELLA REGISTRAZIONE DIGITALEUn classico sistema di codifica PCM digitale consiste di

amplificatore in ingressogeneratore di ditherfiltro passa basso in ingressocircuito di Sample and Holdconvertitore Analogico/Digitalemultiplexercircuito di codifica digitalemezzo di memorizzazione.

Fig 1.3.5 Schema dei dispositivi per ottenere la rappresentazione PCM di un segnaleaudio analogico.I campioni in ingresso discretizzati ed ad una velocità costante, vengonomandati al convertitore A/D per via di un circuito di Sample and Hold.Il circuito di Sample e Hold si occupa essenzialmente di mantenere costante ilsegnale in ingresso per il tempo necessario alla conversione ed evitare errorinella trasformazione da analogico a digitale dovuti a sbalzi di tensione.Il convertitore A/D è la parte più critica e non a caso anche la più costosadell'intero sistema dato che la conversione deve essere effettuata senza errorinell'intervallo di tempo tra due campioni successivi, l' uscita è larappresentazione del segnale analogico con una parola binariaI dati vengono modulati e formattati per poi essere registrati su un mezzodigitale.Il segnale analogico in ingresso campionato nel tempo viene limitato infrequenza da un filtro passa basso e quantizzato dal convertitore Analogico-Digitale. La rappresentazione binaria ottenuta può essere memorizzata otrasmessa. Il sistema di trasmissione per una maggior sicurezza puòaggiungere delle informazioni per la protezione o correzione di errori .

In ogni sistema PCM la lunghezza della parola di rappresentazione è fissa e determina il numero dilivelli di quantizzazione e l'accuratezza, che percettivamente viene classificata come qualitàdell'audio.

La progettazione di un sistema in alta qualità è un complesso problema ingegneristico dagli alti costi,in genere i sistemi per la riproduzione domestica sono il risultato di un compromesso tra complessità,qualità e costo finale dell'apparecchiatura.

Nelle sezioni seguenti vengono riassunte le operazioni svolte da ogni dispositivo [Pohlmann].

GENERATORE DI DITHER

Page 38: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-7

È un dispositivo che somma una certa quantità di rumore al segnale analogico secondo unadistribuzione statistica, il suo scopo è di trasformare il rumore di quantizzazione in rumore bianco.Questa operazione è utile in quanto il rumore bianco è molto comune in natura e l'orecchio essendoneabituato lo trova meno disturbante del normale rumore di quantizzazione.La distribuzione di probabilità del dither dovrebbe essere rettangolare e i valori successivi devonoessere indipendenti. Il valore ottimale in ampiezza è compreso tra un sesto ed un terzo del passo diquantizzazione.Il generatore di dither permette di aumentare il rapporto Segnale-Rumore di quantizzazione di circa1.5 dB.

FILTRO PASSA BASSO IN INGRESSO O ANTI ALIASINGÈ un dispositivo che limita la larghezza di banda (intervallo di frequenze) del segnale in ingresso.Il suo scopo è di eliminare le frequenze superiori ad un certo valore (detto frequenza di taglio) persoddisfare le richieste del Teorema di NYQUIST; in pratica si eliminano le armoniche con frequenzasuperiore alla metà della frequenza di campionamento.Questo filtro è anche detto di anti-aliasing.

Le caratteristiche di qualsiasi filtro passa basso ideale devono essere tali da :

- NON modificare le frequenze sotto quella di taglio - NON modificare la fase delle componenti - annullare le frequenze superiori a quella di taglio

In pratica un tale filtro può essere solo approssimato ottenendo un compromesso tra le caratteristichesopra .In genere si prevede un certo grado di sicurezza in frequenza campionando un po sopra al limite datoda Nyquist.

SAMPLE AND HOLDÈ un circuito che esegue due semplici ma fondamentali operazioni :

... campiona nel tempo il segnale ad una frequenza costante

... mantiene inalterato il valore campionato finché il convertitore A/D fornisce la relativaparola di codifica.

I due compiti devono essere eseguiti con una perfetta precisione e sincronizzazione servendosi dioscillatori a cristalli di quarzo.

CONVERTITORE ANALOGICO DIGITALE

È il cuore di un sistema di digitalizzazione audio ed è il componente più critico e costosodell'intero sistema.Il suo compito è di fornire la codifica digitale del segnale analogico in base all' ampiezza e al passo diquantizzazione (dipendente dal numero di bit usati).La conversione deve avvenire in un tempo inferiore all'intervallo di campionamento.

In genere è più facile il verificarsi di errori tanto più è alta la frequenza di campionamento e quinditanto maggiore deve essere l'accuratezza (maggiori costi delle apparecchiature).

Page 39: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-8

PROCESSO DI REGISTRAZIONEConsiste nel memorizzare la codifica digitale su di un mezzo fisico ad esempio di tipo magnetico oottico.Le parole digitali possono venire processate per ottenerne una conveniente rappresentazione.È in tale fase che vengono coinvolte le codifiche di compressione per convertire i campioni PCM inuscita dal convertitore A/D in una forma che ottimizza l'uso del mezzo di memorizzazione.

MULTIPLEXINGDispositivo che organizza i dati in modo seriale, permettendone la registrazione o la trasmissione.Se il sistema è a più canali i dati dei diversi canali vengono alternati (nel caso di PCM standard, 16bit per ognuno).

CAMPIONECANALESINISTRO

CAMPIONECANALEDESTRO

CAMPIONECANALESINISTRO

CAMPIONECANALEDESTRO

CAMPIONECANALESINISTRO

CAMPIONECANALEDESTRO

CAMPIONECANALESINISTRO

CAMPIONECANALEDESTRO

PROTEZIONE ERRORINella registrazione analogica un errore sul mezzo di memorizzazione si manifesta con una leggeraperdita di informazione (percepita in fase di ascolto con dei ticchettii).In sistemi digitali gli effetti possono diventare molto più catastrofici e per questo deve essere previstauna certa protezione e correzione di errori usando opportune codifiche.Si devono così aggiungere informazioni ridondanti come bit di parità o codici di verifica.Possono essere usate tecniche di interleaving in modo che gli errori del mezzo in una stessa posizionesiano distribuiti su più campioni trasformando errori consecutivi su una singola parola in erroresingolo su più parole, in tal caso il sistema sarà ottimizzato per la correzione di errori singoli.

PROCESSO DI MODULAZIONEÈ il processo finale di manipolazione elettronica del segnale prima della memorizzazione.Le sequenze di bit (0 o 1) vengono impresse sul mezzo alterandone le caratteristiche fisiche (adesempio Compact Disc) o magnetiche (ad esempio Cassette Magnetiche).La modulazione è necessaria per poter rileggere i dati dal mezzo di memorizzazione, possono essereaggiunte informazioni ridondanti per la rilevazione o correzione di errori e/o particolari sequenze dibit usate per la sincronizzazione.

1.3.8. I SISTEMI PCM NELLA RIPRODUZIONE DIGITALEIl processo di riproduzione è il duale di quello di registrazione ed i dispositivi coinvolti suonoillustrati nello schema seguente :

Page 40: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-9

Fig 1.3.6 Schema dei dispositivi di un sistema di conversione di un segnale audiorappresentato in PCM nella corrispondente forma analogica.Per la riproduzione dell'audio i campioni PCM vengono trasformati dalconvertitore Digitale/Analogico che ricostruisce il segnale analogico daivalori digitali quantizzati e campionati.Il filtro passa basso serve per correggere la quantizzazione riportando ilsegnale alla forma originaria.

Nei sistemi digitali per l'ascolto il segnale da forma digitale deve essere portato in forma analogica.Per i sistemi PCM i dispositivi per la riproduzione sono speculari a quelli utilizzati nella catena diregistrazione.Il sotto sistema di riproduzione consiste di [Pohlmann]:

circuito di demodulazioneriprocessing del crcconvertitore Digitale/Analogicocircuito di Sample e Hold di uscitafiltro passa basso di uscita.

CIRCUITO DI DEMODULAZIONEIl compito del circuito di demodulazione è di leggere i dati dal mezzo di memorizzazione e ottenernela rappresentazione codificata come sequenza di bit.Vengono poi separati i dati veri e propri dalle informazioni di controllo aggiunte in modulazione perla protezione errori e sincronizzazione.

DEMULTIPLEXINGIl processo di riproduzione è direttamente dipendente dalla forma di memorizzazione e diraggruppamento dei campioni.Il meccanismo di riproduzione può offrire la possibilità di bufferizzare i dati per minimizzare glieffetti di variazioni meccaniche di lettura dal mezzo, in tal modo i campioni possono essere prelevatidal buffer con una frequenza costante.Il sistema di riproduzione si occupa anche del DEMULTIPLEXING ovvero della deformattazionedei dati per la ricostruzione parallela dei campioni su più canali.Durante tale ricostruzione effettua la rilevazione degli errori; se l'errore è entro certi limiti se ne puòfare la correzione.La corretta gestione degli errori è un problema a cui bisogna porre particolare attenzione in caso diricezione o riproduzione mobile ed in condizioni avverse (in presenza di ostacoli naturali, vibrazioni ointerferenze).

Page 41: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-10

Normalmente i sistemi a testine mobili (L.P., CD, MINIDISC) sono molto vulnerabili in casoriproduzione mobile rispetto ai sistemi a testine fisse (DCC, NASTRI).

CONVERTITORE DIGITALE ANALOGICO

Il convertitore digitale analogico è l'elemento più critico e costoso del sistema di riproduzionecosì come il convertitore A/D lo era per il processo di registrazione

Il suo compito è di prendere in ingresso una parola digitale codificata e trasformarla nelcorrispondente valore analogico.

CIRCUITO DI SAMPLE E HOLD IN USCITASi occupa di mantenere costante il livello del segnale in tutto l'intervallo di conversione per offrire alfiltro passa basso un valore costante da interpolare con il precedente.

FILTRO PASSA BASSO IN USCITAIl primo e l'ultimo circuito di una catena di audio digitale sono filtri passa basso conosciuti come filtridi anti aliasing e di anti imaging . Le loro caratteristiche progettuali sono molto simili ma la lorofunzione è totalmente diversa.La funzione del filtro passa basso in ingresso è di prevenire l' aliasing tagliando le componenti afrequenza oltre la metà di quella di campionamento .Il filtro passa basso in uscita funziona da interpolatore dei livelli di quantizzazione digitaliproducendo un segnale analogico (in pratica smussando gli angoli dei campioni quantizzati).Per ridurre la complessità dei filtri anti imaging può essere usata la tecnica di sovracampionamento.

FILTRAGGIO DIGITALE CON SOVRACAMPIONAMENTOPer evitare l'uso di filtri ripidi e piatti (di difficile progettazione) molti costruttori hanno adottato unatecnica detta di sovracampionamento (oversampling) che ottiene un miglior rapporto segnale-rumoreed una miglior conservazione della fase e consiste nel campionamento del segnale ad una frequenzapiù elevata.Per esempio campionando a 4 volte la frequenza di Nyquist si ha una riduzione di un fattore 4 delladensità del rumore migliorando di 6dB il rapporto segnale rumore.

1.3.9. PARAMETRI PER LA QUALITÀ DI UN SISTEMA AUDIOI parametri per valutare la fedeltà di un sistema di registrazione sono

l'aumento di distorsione con l'intensità del segnale....i sistemi digitali devono ottenere una bassa distorsione a bassi livelli.

la distorsione di fase....tale effetto può influenzare l'immagine e la localizzazione dei suoni producendosensazioni di disturbo nell'ascoltatore.

In un sistema digitale la gamma dinamica e la distorsione sono dipendenti dal numero di livelli diquantizzazione e dalla linearità di entrambi i convertitori A/D e D/A.

Un buon sistema di riproduzione deve prevedere un range dinamico di almeno 90dB e una distorsionearmonica massima dello 0.005% a 1KHz a 0dB.Per la conservazione dell'immagine stereofonica si richiede una separazione maggiore di 90dB persegnali di test di 1KHz.

Page 42: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 1.3 "L'audio Digitale" Davide Cilano

Pag. 1.3-11

1.3.10. I SISTEMI DI COMPRESSIONE NELLA CATENA PCM

I sistemi di compressione dell'audio digitale riducono l'occupazione del mezzo dimemorizzazione e del canale di trasmissione.

Nella catena di registrazione digitale la codifica compressa si colloca prima della memorizzazione eprima della ricostruzione del segnale nel processo di decodifica

Page 43: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2LA CODIFICA MPEG_Audio

MovingPictures

ExpertGroup

2.1. LE CODIFICHE COMPRESSE .....................................................................................................22.2. RIDONDANZA E IRRILEVANZA ..................................................................................................42.3. LA CODIFICA MPEG_Audio ........................................................................................................4

2.3.1. Introduzione ....................................................................................................................52.3.2. La Codifica e i FRAME..................................................................................................62.3.3. La Rappresentazione frequenziale ..................................................................................72.3.4. Memorizzazione...............................................................................................................92.3.5. Decodifica .......................................................................................................................9

2.4. CARATTERISTICHE......................................................................................................................102.4.1. Layer ...............................................................................................................................102.4.2. Frequenze di Campionamento.........................................................................................112.4.3. Modalità ..........................................................................................................................112.4.4. Bitrate..............................................................................................................................13

2.5. STRUTTURE DATI Layer II .........................................................................................................142.5.1. Bit Allocation...................................................................................................................142.5.2. Fattori di Scala................................................................................................................162.5.3. SCFSI (Struttura Codifica Fattori di Scala su Intervalli) ...............................................172.5.4. I Campioni.......................................................................................................................172.5.5. Osservazioni Sulle Strutture Dati ....................................................................................18

2.6. LA SEQUENZA CODIFICATA Layer II ........................................................................................182.6.1. Il FRAME ........................................................................................................................192.6.2. L'HEADER ......................................................................................................................202.6.3. IL CRC [Cyclic Redundancy Code] ................................................................................232.6.4. I Dati_Ausiliari (Ancillary) ............................................................................................242.6.5. Sintassi ............................................................................................................................24

2.7. VALUTAZIONE DELLA CODIFICA .............................................................................................292.8. POSSIBILI APPLICAZIONI ..........................................................................................................312.9. UNA APPLICAZIONE :IL DAB.....................................................................................................32

2.9.1. Caratteristiche del DAB ..................................................................................................33

Page 44: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-2

Nel presente capitolo viene introdotta la codifica MPEG_Audio esponendone i principi difunzionamento e le possibili applicazioni, i paragrafi ne illustrano gli aspetti relativi a:

• Scopo• Principi• Formattazione dati• Applicazioni

Nel capitolo successivo si illustreranno gli algoritmi per la codifica e decodifica.

La sintassi è tratta dalle specifiche definite dall' ISO-IEC/JCT1/SC29/WG11 (MPEG-Audio) neldocumento 3-11171 rev 1 datato 22 Novembre 1991.

MPEG (Moving Picture Expert Group) è un gruppo di lavoro composto nel 1988 con lo scopo didefinire uno standard per la trasmissione di immagini e del relativo audio in formato digitale a unbitrate totale (immagini + audio) di 1.5MBit/sec..In particolare l'audio deve essere ad una qualità paragonabile a quella del Compact Disk o DAT(Digital Audio Tape) e le immagini non devono essere peggiori di quelle di un sistema VHS.MPEG ha adottato due codifiche sintattiche indipendenti: una per l'audio ed una per le immagini.

SC29/WG11 è il sottogruppo di cui fa parte MPEG.

ISO (International Standard Organization) è l'ente internazionale di standardizzazione a cui vengonosottoposte le specifiche di nuovi prodotti per ottenerne il riconoscimento come standard a livellomondiale.

2.1. LE CODIFICHE COMPRESSENel capitolo precedente è emerso che l'audio digitale permette una gran flessibilità d'uso rispettoall'analogico ma per ottenere una buona qualità del segnale i sistemi digitali devono manipolare unanotevole quantità di informazioni in tempi brevi (ad alta velocità).

Ad esempio la codifica PCM (Pulse Code Modulation) richiede:

se la larghezza di banda del segnale è di 20000Hz e si vuole usare la rappresentazionePCM con un rapporto segnale-rumore (SNR) di almeno 90dB (16 Bit) è necessario unacapacità di 768KBit/sec. per ogni canale monofonico:

16(Bit) *48000 (frequenza di Campionamento) = 768 000 Bit/sec.

Quindi la memorizzazione in PCM necessita di costose apparecchiature e canali trasmissivi di complessaprogettazione, tanto che si è dovuto ricorrere a dispositivi ottici (Compact Disc) e magnetici (DAT:Digital Audio Tape) di alta precisione mentre la distribuzione radiofonica in formato PCM rimanepressoché irrealizzabile a bassi costi.

Proprio la necessità di trasmettere via radio segnali audio digitali ad alta qualità ha stimolato lo studio dicodifiche per la riduzione del volume di dati pur mantenendo la qualità tipica dei sistemi PCM a 16 Bitcon campionamento a 44.1 KHz (che verrà indicata come "qualità CD").Questa codifiche sono dette di compressione perché appunto "comprimono" ovvero riducono la quantitàdi dati per rappresentare il segnale audio; due esempi già citati sono la A_Law e µµµµ_Law che comprimonoil segnale riducendone la dinamica secondo la curva di isosensazione a 40 Phon.Queste codifiche conservano tutta l'informazione del segnale o entropia1 ottimizzando solo la codificadell'ampiezza del segnale in base alle capacità percettive dell'orecchio umano, in pratica ipotizzano chel'uomo usi tutta l'informazione del segnale audio per costruire la sensazione finale di "musica".

1In un esperimento (nel nostro caso segnale audio) che puòassumere i valori bi con probabilità P(bi) e tali che

Page 45: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-3

Ricerche psicoacustiche hanno però dimostrato che l'orecchio umano non è in grado di rilevare tuttal'informazione di un segnale audio PCM; ne segue che la riduzione della capacità di canale può essereottenuta da una codifica che sfrutti le capacità percettive umane, integrando le codifiche entropiche.In effetti l'orecchio umano percepisce solo una parte dell'informazione sonora2 ed anzi in presenza disegnali audio con molte componenti frequenziali la gran parte non contribuisce minimamente al formarsidella "sensazione musicale" per via degli effetti di mascheramento.Ogni suono maschera quelli più prossimi e meno intensi (fenomeno ben definito nel dominio dellafrequenza) contribuendo al formarsi della soglia di mascheramento globale.

Quindi il passo successivo alla applicazione delle leggi A e µ (vedi paragrafo 1.3.7 "Compressione disegnali con legge A_law e µµµµ_law") è lo sfruttamento delle capacità percettive dell'orecchio umano perridurre in modo significativo la quantità di informazione per rappresentare il segnale audio, codificandosolo quelle parti che sono realmente percepibili.In pratica tali codifiche, dette percettive, ottimizzano l'uso del mezzo sfruttando le caratteristiche delricevitore, ottenendo la compressione del segnale.

Le tecniche che soddisfano le ultime richieste sono dette tecniche di compressione percettive epermettono la riduzione di un fattore tipico di 1:4 - 1:8 della quantità di informazioni da trasmettere,abbassando significativamente la richiesta di capacità del canale e rendendo possibile la distribuzioneradiofonica digitale a basso costo.

Il fattore di compressione è definito come [Salton]:

( Fattore_ Compressione) Dimensione_ Originale Dimensione_ CodificatoDimensione_ Originale% =

da cui segue :

( Fattore_ Compressione) _ x 1(Fattore_ Compressione)1:x

%

=

Per una reale applicazione la codifica digitale deve porre riguardo alla possibilità di:

-- COMPRESSIONE, per una distribuzione a bassi bitrate e quindi a bassi costi-- ALTA QUALITÀ del segnale audio, paragonabile a quella del Compact Disc-- ROBUSTEZZA, garantita anche per trasmissione a punti mobili-- FLESSIBILITÀ, per adattarsi alle diverse esigenze-- DECODIFICA IN TEMPO REALE

Una codifica che soddisfa queste richieste è ad esempio la MPEG_Audio che si è distinta per la suaefficienza e flessibilità.

P bi( ) = 1, si definisce ENTROPIA o INFORMAZIONE MEDIA

l'espressione:

H P bP bi

ii

N

==

( ) log( )2

1

1

2La maggior parte delle informazioni "sonore" non vengonopercepite a causa del comportamento della membrana basilare,della coclea e delle cellule recettrici.

Page 46: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-4

2.2. RIDONDANZA E IRRILEVANZAI concetti alla base della compressione di un qualsiasi segnale conservandone l'entropia sonol'eliminazione di informazioni insignificanti (irrilevanti) e il raggruppamento di quelle ripetute(ridondanti).

Si definisce irrilevanza quella parte del segnale che non porta nessuna informazione al ricevente (cioèil contenuto entropico è nullo) e come tale può essere del tutto cancellata alla sorgente evitandone latrasmissione o memorizzazione.Ad esempio è irrilevante ai fini dell'ascolto la casa discografica di un complesso così come èirrilevante trasmettere i segnali audio sotto la soglia statica perché in nessun modo potranno essereuditi dall'uomo, o perlomeno da un uomo con capacità uditive che rientrano nella media.

Per ridondanza invece si intende quella parte del segnale che contiene informazioni superflue perchéricostruibili in altro modo, cioè eliminando la ridondanza si trasmettono solo il minimo delleinformazioni eliminando quelle ripetute o ricostruibili.Ad esempio è un'informazione ridondante il secondo canale di una sequenza mono perché è del tuttouguale al primo anche se l'informazione di duplicare il canale deve essere comunicata al ricevente.

È evidente che nel campo percettivo definire cosa è irrilevante e cosa ridondante dipende dal contestoe dalle caratteristiche del ricevente.

Una volta separata l'informazione rilevante, la parte rimanente può essere eliminata (se irrilevante) ocodificata (se ridondante); quindi l'irrilevanza non verrà in nessun modo ricostruita mentre laridondanza è informazione che richiede una capacità di deduzione sintattica nel ricevente.

Il punto di forza delle codifiche percettive è la possibilità di eliminare la parte acusticamenteirrilevante del segnale e operare una codifica ottimizzata della parte numericamente ridondante.

2.3. LA CODIFICA MPEG_AudioNegli ultimi anni in Europa sono stati finanziati diversi progetti di ricerca per definire e svilupparecodifiche efficienti dei segnali, utilizzabili per la diffusione dell'audio digitale a basso costo.

Tra tutte le codifiche sviluppate si è distinta quella denominata MUSICAM (Masking pattern adaptedUniversal Subband Integrated Coding And Multiplexing).

MUSICAM è stata definita all'interno del progetto EUREKA EU 147 da :

CCETT (Centre Commun d' Ètudes de Télédiffusion et Télécommunications -Francia-)IRT (Institut fùr Rundfunktechnik -Germania-)PHILIPS Consumer Electronics (-Olanda-).

il cui sviluppo è stato iniziato nel 1986 ed ha richiesto 4 anni (1987-1991) per un totale di 360 anni-uomo alla scadenza dei quali è stato deciso un ulteriore investimento in una seconda fase di due anni(1992-1994) in 170 anni-uomo per completare le specifiche, sviluppare i circuiti hardware e definirel'uso in particolari applicazioni.

Parallelamente a questa attività il gruppo di lavoro MPEG (Moving Pictures Expert Group)dell' ISO/IEC che collaborava attivamente con i precedenti enti, stava cercando di definireuna codifica utilizzabile per la distribuzione, a bassi bitrate, di immagini e audio associato informa digitale.La codifica MUSICAM per la sua efficienza e flessibilità è stata scelta da MPEG nei primimesi del 1992 come base per un sistema a tre livelli di codifica dell'audio associato alleimmagini, denominato MPEG_Audio.

Lo standard MPEG_Audio è composto da due moduli :

- CODIFICATORE- DECODIFICATORE

Page 47: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-5

Il formato dei dati in ingresso al codificatore e prodotti all'uscita del decodificatore sono compatibilicon lo standard PCM (Pulse Code Modulation).Il collegamento tra codificatore e decodificatore può essere diretto, via cavo oppure secondo unaqualsiasi delle vie descritte dall' ISO 11172.

La catena di codifica e decodifica è definita su tre livelli (layer) numerati progressivamente I, II e III(ognuno con una propria sintassi); verrà trattato in modo completo solo il Layer II (noto anche conl'acronimo di MUSICAM) che per le sue caratteristiche è stato l'unico considerato per lo sviluppodella tesi.

2.3.1. IntroduzioneLa codifica MPEG appartiene alla classe di codifiche di compressione e nella catena di registrazionePCM si inserisce appena prima della trasmissione/registrazione e subito dopo la ricezione eriproduzione.

La compressione del segnale permette di abbassare i costi per la memorizzazione o trasmissionedell'audio digitale aprendo nuove fasce di mercato per la distribuzione di servizi audio in alta qualitàsu larga scala.

La trasmissione di audio ad alta fedeltà su canali con capacità limitata (bassi bitrate) è possibileeliminando la parte del segnale audio ridondante o irrilevante in base all' analisi di un modellopsicoacustico (che calcola la soglia di mascheramento).

Modello Percettivo

Fig. 2.1 Principio di funzionamento della codifica MPEG_Audio.Gran parte del segnale è percettivamente irrilevante e può essererimossa, il codificatore riduce anche una certa quantità di ridondanzache viene ricostruita nel decodificatore.Le informazioni percepibili (le uniche che devono essere trasmesse) sonosolo una piccola parte di quelle contenute nella codifica PCM.

La codifica percettiva si avvale delle recenti scoperte in campo psicoacustico che hanno reso possibilelo sviluppo di un modello matematico implementabile in tempo reale per il calcolo delle capacità dirisoluzione dell'orecchio umano, con tale analisi si possono distinguere le informazioni udibili daquelle mascherate (perché coperte da altre componenti del segnale).La riduzione della quantità di informazioni da trasmettere è ottenuta quantizzando i campioni su unnumero di livelli variabile in dipendenza del valore di mascheramento presente nel segnale, in modotale che il rumore di quantizzazione sia NON UDIBILE.Il suono rimane percettivamente uguale all'originale nonostante la codifica ne elimini una gran parteche ovviamente è irrilevante ai fini dell'ascolto.

2.3.2. La Codifica e i FRAMEIl processo di codifica prende in ingresso il segnale audio sotto forma di campioni PCM e produceuna sequenza compressa.

Page 48: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-6

Lo standard impone che la sintassi della sequenza codificata rispetti la grammatica descritta in questocapitolo e gli algoritmi descritti nel Capitolo 3 "Specifiche tecniche della codifica MPEG_Audio".

La codifica rappresenta gruppi di N campioni PCM3 trasformati nel dominio della frequenza eproduce un blocco di dati con una sintassi ben definita chiamato FRAME.

Di seguito sono rappresentati schema e descrizione del processo di codifica:

Fig. 2.2 Schema semplificato della codifica MPEG_Audio, i dati in ingressovengono codificati a gruppi di N campioni.

Il codificatore servendosi di un banco di filtri ottiene la rappresentazione frequenziale dei campioni iningresso, mappata in 32 sottobande equi ampie.Tali campioni (detti di sottobanda) vengono quantizzati e codificati servendosi delle informazionifornite da un modello psicoacustico che seleziona le componenti non mascherate del segnale.

I dati così quantizzati e codificati possono essere inviati ad un modulo che si occupa della loroorganizzazione e dell'aggiunta di informazioni di servizio (ad esempio un codice di rilevazione errori)ottenendo la definitiva sequenza compressa.

L'efficienza del codificatore dipende principalmente dall'accuratezza del modello psicoacustico, lostandard permette l'uso di un qualsiasi modello lasciando aperta la possibilità di aggiornare ilcodificatore con algoritmi psicoacustici più accurati e efficienti che saranno disponibili in futuro.Ciò' che deve fare il modello psicoacustico è comunque ben definito nel fornire il rapporto SMR;Signal to Mask Ratio o differenza in dB tra il massimo segnale e il minimo livello di mascheramentoper ogni canale e per ogni sottobanda.

La sequenza di dati ottenuta all'uscita del decodificatore può essere memorizzata o trasmessa.

2.3.3. La Rappresentazione frequenziale

... divisione in sottobandeLa divisione in 32 sottobande è stata scelta per avvicinarsi alle capacità percettive dell'orecchioumano, tale rappresentazione offre la possibilità di una accurata analisi del segnale ed un buoncompromesso per la localizzazione temporale e frequenziale.

La divisione in sottobande teoricamente ottima sarebbe in 26 sottobande corrispondenti ai Bark (perfrequenze di campionamento di 48KHz) e quindi di ampiezza variabile, una tale divisione richiedecomplessi filtri ad albero che introducono un ritardo inaccettabile per la maggior parte delleapplicazioni.

3Il numero N (fisso) di campioni che vengono codificati in ogniframe dipende dal livello di compressione che si vuoleottenere.

Page 49: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-7

Il filtro che è stato adottato nella applicazione pratica è un polifase con struttura parallela che nonpermette bande di ampiezza variabile.I vantaggi di tale soluzione sono principalmente il basso ritardo e la bassa complessità, inoltre è unottimo compromesso tra implementazione efficiente e adattamento alle caratteristiche percettiveumane.Le caratteristiche che deve avere il banco di filtri di divisione in sottobande sono:

• Preservare il flusso dei dati: N campioni in ingresso devono produrre N coefficientiin uscita.

• Avere una trasformata inversa con ricostruzione perfetta• Avere una buona localizzazione spettrale

L'ultima caratteristica non è indispensabile se si usano codifiche reversibili (come Huffmann) perridurre la ridondanza dell'informazione nel dominio spettrale.Invece la buona localizzazione spettrale è indispensabile per una accurata analisi psicoacustica e peravere un buon confinamento del rumore di quantizzazione sotto la curva di mascheramento.

Una progettazione non ottimizzata del banco di filtri non rende possibile alti fattori di compressioneper via dell'aliasing introdotto nel processo di sintesi, in altre parole se il banco di filtri non èaccuratamente progettato non è possibile adattare in modo realistico il rumore di quantizzazione allacurva di mascheramento.

Idealmente il rumore di quantizzazione può essere adattato in modo indipendente in ogni sottobanda,ma ciò è in pratica irrealizzabile per il fatto che il rumore di quantizzazione generato in ognisottobanda influisce almeno sulle due bande adiacenti, soprattutto se il filtro non è ottimizzato.

Un buon compromesso tra risoluzione spettrale e perdita temporale dei transitori è stato trovato nelsistema MUSICAM e consiste appunto nella divisione in 32 sottobande equiampie e nellaprogettazione di filtri QMF di ordine 512 con funzione di finestratura ottimizzata in termini dilocalizzazione spettrale, divisione (90dB di rifiuto) e risposta dei transitori.

Fig. 2.3 Funzione di finestratura ottimizzata usata nella codifica MPEG_Audioper la divisione in sottobande [Dehery].

Lo schema usato da MPEG può essere visto come un trasform coding su 512 campioni (l'ordine delfiltro) con una sovrapposizione di blocchi successivi ognuno shiftato di 32 campioni rispetto alprecedente.

Per le considerazioni precedenti e i vincoli di una alta localizzazione spettrale è chiaro che unatrasformata con un alto numero di componenti frequenziali facilita la compressione individuando conaccuratezza la funzione di mascheramento.Questa richiesta è purtroppo contraria al tenere i transitori (detti pre e post-echo) entro certi limiti intermini di ampiezza e posizione per conservare l'informazione degli attacchi di suoni percussivi.

Page 50: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-8

In sintesi il miglioramento della analisi spettrale si ripercuote in perdita di informazione temporale.

Nel decodificatore il filtro duale ricostruisce il blocco di 32 campioni PCM.Il filtro inoltre è a bassa complessità computazionale richiedendo meno di 80 moltiplicazioni eaddizioni intere per ogni campione ed il ritardo temporale è di 10,6 millisecondi

... l'analisi psicoacusticaLa rappresentazione frequenziale del filtro polifase non è sufficientemente accurata per il calcolo dellafunzione di mascheramento, infatti per ottenere alti fattori di compressione è necessaria una accurataanalisi delle componenti frequenziali del segnale su cui calcolare la funzione di mascheramento.Ciò richiede una FFT a 1024 punti per l'identificazione delle componenti tonali e non tonali.In tal modo è possibile calcolare in modo preciso la funzione di mascheramento individuale per ognicomponente tonale e non tonale ed ottenere la funzione di mascheramento globale sommando icontributi di tutte le componenti individuali e della soglia statica.

2.3.4. MemorizzazionePer la memorizzazione di una sequenza audio in formato MPEG_Audio si può usare un qualsiasisupporto digitale (nastro magnetico, disco ottico, disco magnetico, ecc..).L'accesso deve essere controllato da una unità specializzata che fornisce su richiesta i dati necessari alcodificatore (in scrittura) o al decodificatore (in lettura).

Fig 2.4 Unità di controllo specializzata nella gestione del mezzo dimemorizzazione

I campioni PCM in ingresso al codificatore possono essere letti o forniti direttamente (con l'uso di unbuffer) da una catena di conversione A/D.Sono previsti dei segnali di sincronizzazione per l'accesso diretto alla sequenza codificata(successione di Frame) e facilitare l'editing dell'audio.In alcune applicazioni la codifica audio può essere alternata con quella video (codificata secondo lespecifiche di MPEG).Per riottenere i campioni PCM da una sequenza codificata è necessario processarla con ildecodificatore.

2.3.5. DecodificaIl processo di decodifica prende in ingresso un file codificato contenente audio compresso e loelabora per ottenere il segnale originale sotto forma di campioni PCM.

Segue lo schema del processo di decodifica:

Fig. 2.5 Schema semplificato di decodifica MPEG_Audio

Page 51: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-9

La sequenza inviata al decodificatore viene depaccata e ne viene controllata la consistenza (se c'èprotezione errori).

Se vengono rilevati degli errori si possono intraprendere azioni per minimizzarne l'effetto.

Si dividono poi i campioni audio (quantizzati) dalle informazioni per la loro ricostruzione.

La ricostruzione vera e propria consiste nel dequantizzare e denormalizzare i campioni di sottobanda,da tali campioni si ottiene l'originaria forma PCM.

La decodifica non richiedendo nessuna analisi psicoacustica del segnale è a bassa complessità.

2.4. CARATTERISTICHELe caratteristiche della codifica MPEG_Audio sono:

- Struttura a livelli- Tre possibili frequenze di campionamento- Modalità stereo, bilingue, mono e joint_stereo- Codifica e decodifica per vari bitrate- Basso tempo di ritardo- Accesso diretto a piccoli grani di informazione- Bassa complessità del decodificatore- Possibilità di inserimento di informazioni ausiliarie- (Possibilità di editing in forma codificata 4)

Tra le caratteristiche della codifica va evidenziato il basso ritardo teorico, stimato in circa 30 ms per ilcodificatore e di 10 ms per il decodificatore, i quali possono essere ottenuti mediante un'implementazioneVLSI ottimizzata (Very Large Scale Integration).Il basso ritardo generale di 40 ms è importante per molte delle applicazioni, in particolare per lasincronizzazione con i segnali video.La codifica è molto flessibile prevedendo in ingresso sequenze PCM a 16:20 Bit, tre frequenze dicampionamento, bitrate variabili e la possibilità di inserire nella forma codificata dati ausiliari secondo unasintassi libera.

2.4.1. LayerLa codifica MPEG_Audio è strutturata su tre livelli (layer) indipendenti, ognuno con una propriasintassi, le caratteristiche di ognuno di essi influiscono su:

.. complessità

.. fattore di compressione

.. qualità a parità di compressione

.. potenza di calcolo richiesta

Per ogni livello si deve usare un codificatore ed il rispettivo decodificatore , lo standard impone cheun co-decodificatore per il livello N operi anche su tutti i livelli inferiori ad N.

In particolare MUSICAM corrisponde al layer II ovvero l'intermedio in termini di complessità,mentre il layer I ne è una semplificazione ed il layer III è molto più complesso.La scelta del layer da usare per una particolare applicazione è funzione dei risultati che si voglionoottenere e dalla disponibilità del canale.

4È l'argomento della tesi ed una trattazione di questo argomentopuò essere trovata nel capitoli 5 e successivi.

Page 52: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-10

Layer I è appropriato per la distribuzione e registrazione domestica o per la memorizzazionesu nastri o dischi magneto-ottici dove non è indispensabile un'altissimo fattore dicompressione.Attualmente è usato nelle DCC (Digital-Compact-Cassette Philips).È quello più semplice e non pone particolare attenzione nel limitare ridondanza edirrilevanza dei dati, richiede una bassa complessita di calcolo.Dal layer I è stata derivata la codifica PASC.

Layer II introduce un'ulteriore compressione eliminando gran parte della ridondanza eirrilevanza del segnale. Il layer II è il più simile all'originale codifica MUSICAM. Il suocampo di applicazione è il più vasto tra i tre layer , andando dalle applicazionidomestiche ai contributi (aggiunta di commenti) di trasmissioni radiofoniche.È stato adottato come standard per la distribuzione DAB.Fornisce un ottimo rapporto complessità - qualità del risultato ed è indicato soprattuttodove è richiesto un alto fattore di compressione con risorse contenute.

Layer III le sue applicazioni sono principalmente per telecomunicazioni (soprattutto a bandastretta) e nel campo dell'audio professionale con bitrate molto bassi e alti fattori dicompressione.È consigliato per applicazioni che richiedono bassi bitrate (alti fattori di compressione)come per trasmissioni via satellite o per un buon uso di canali telefonici (piccolalarghezza di banda).Utilizza una codifica ottimizzata (codifica di Huffmann) per la memorizzazione deicampioni quantizzati.È un compromesso tra gli aspetti migliori delle codifiche ASPEC e MUSICAM.

Come si può notare i livelli sono aperti verso l'alto permettendo future definizioni di codifica piùefficienti e complesse che però dovranno mantenere la compatibilità con tutti i livelli inferiori e con lespecifiche gia approvate dall'ISO .

2.4.2. Frequenze di CampionamentoSono previste tre possibili frequenze di campionamento indipendentemente dal layer in uso.In particolare :

32 KHz Per compatibilità con i precedenti sistemi44.1 KHz Per qualità CD48 KHz Per qualità "da studio"

Tab 2.1 Frequenze di campionamento utilizzabili con il sistema MPEG_Audio

32 KHz : per compatibilità con i precedenti sistemi di trasmissione ma praticamente con pocheapplicazioni nel futuro dell'audio digitale. È utilizzabile solo per trasmetterecommenti vocali e non musicali.

44.1 KHz : usata nel Compact Disc, è stata mantenuta anche se la codifica di sequenze PCMcon questa frequenza di campionamento crea alcuni problemi di sincronizzazioneper via della parte frazionaria che si ripercuote in elementi di codifica di dimensionivariabili.

48 KHz : è quella maggiormente utilizzabile per la compressione dato che è un multiplo interodelle frequenze usate nella normale distribuzione e mette a disposizione unalarghezza di banda che conserva la qualità tipica degli studi di produzione.

La frequenza di campionamento della sequenza codificata dipende unicamente da quella dellasequenza PCM.

2.4.3. ModalitàLa codifica MPEG_Audio prevede quattro modalità per la codifica di un segnale audio.Esse si distinguono dal numero di canali monofonici PCM immessi al codificatore e dalle tecniche usatenella compressione.

Page 53: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-11

STEREODUAL_CHANNELJOINT_STEREO

SINGLE_CHANNELTab. 2.1 Modalità previste dalla codifica MPEG_Audio. La modalità deve essere

compatibile con la sequenza PCM in ingresso al codificatore.

MONO o SINGLE_CANNELLa sequenza di campioni PCM in ingresso al codificatore viene trattata come un singolo canalemonofonico.

Campione PCM Campione PCM Campione PCM Campione PCM Campione PCMN N+1 N+2 N+3 N+4

DUAL_CHANNELLa sequenza di campioni PCM in ingresso al codificatore è formata da due canali monofoniciindipendenti che rappresentano ad esempio la parte audio di una trasmissione televisiva in due linguediverse.I campioni vengono immessi al codificatore in modo seriale ed alternato

Campione PCMCanale_A

Campione PCMCanale_B

Campione PCMCanale_A

Campione PCMCanale_B

Campione PCMCanale_A

N N N+1 N+1 N+2

Sarà un modulo a valle del decodificatore ad occuparsi di amplificare il Canale_A o il Canale_B edinviare uno solo di essi alle casse o cuffie di un sistema di riproduzione.La codifica e la decodifica vengono comunque eseguite per entrambi i canali in modo simultaneo.Per avere la stessa qualità di un segnale monofonico, il bitrate è doppio (dato che vengono codificati duecanali monofonici).

STEREOModalità che tratta il segnale in modo identico al caso DUAL_CHANNEL, questa volta il modulo avalle del decodificatore anziché amplificare un solo canale ed inviarlo ad entrambe le casse si occuperàdi amplificare entrambi i segnale ed instradarli uno verso i diffusori di destra e l'altro sui diffusori disinistra.

Campione PCMCanale_Sinistro

Campione PCMCanale_Destro

Campione PCMCanale_Sinistro

Campione PCMCanale_Destro

Campione PCMCanale_Sinistro

N N N+1 N+1 N+2

JOINT STEREOI campioni PCM in ingresso al codificatore ed in uscita dal decodificatore seguono lo stesso formatodi una sequenza stereo.La particolarità di questo modo di codifica è l'ulteriore eliminazione di irrilevanza sfruttandoconsiderazioni percettive sulla capacità di risoluzione in frequenza dell'orecchio umano.

Il principio usato per il Joint_Stereo è detto intensity_stereo e consiste nell'usare il risultato diricerche psicoacustiche che hanno rivelato come alle alte frequenze, (sopra i 2KHz) l'immaginestereofonica all'interno di una banda critica è determinata dall'inviluppo temporale e non dallamicrostruttura temporale del segnale audio.

In pratica per le bande in alta frequenza invece di memorizzare separatamente i campioni dei canalidestro e sinistro, si memorizza la loro semi-somma.Per ricreare l'immagine stereofonica vengono trasmessi comunque i valori di intensità di entrambi icanali in modo che i livelli possano essere diversi.

Page 54: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-12

Campione PCMCanale_Sinistro

Campione PCMCanale_Destro

Campione PCMCanale_Sinistro

Campione PCMCanale_Destro

Campione PCMCanale_Sinistro

N N N+1 N+1 N+2

Questa codifica permette di eliminare parte dell' irrilevanza tipica di segnali stereo e può essere usataper aumentare la qualità audio a bassi bitrate o per ridurre la capacità richiesta al canale da segnalistereofonici.L'aumento di complessità richiesta nel codificatore e decodificatore è limitata e non aumenta il ritardototale della catena di codifica-decodifica.Il guadagno che si ottiene rispetto alla codifica è quantificabile in circa 10 : 30 KBit/sec.

Il limite di frequenza oltre cui operare il joint_stereo viene scelta automaticamente dal codificatoreriducendo al minimo il numero di bande con rumore di quantizzazione udibile, nella modalitàjoint_stereo le bande che possono essere allocate in comune sono le: 16 -:- 31 12-:-31 8-:-31 4-:-31.Per la quantizzazione di queste sottobande si tiene il numero di livelli maggiore tra i due canali.

2.4.4. BitrateIndica l'occupazione del canale di trasmissione da parte della sequenza codificata in termini di Bit alsecondo.Il bitrate può essere scelto tra una serie di valori predefiniti dipendenti dal layer e dalla modalitàaudio.

Bitrate Layer I Bitrate Layer II Bitrate Layer III

NON SPECIFICATO NON SPECIFICATO NON SPECIFICATO

32 32 3264 48 4096 56 48

128 64 56160 80 64192 96 80224 112 96256 128 112288 160 128320 192 160352 224 192384 256 224416 320 256448 384 320

Fig 2.6 Possibili Bitrate espressi in KBit/sec. a seconda del layer in uso.Le righe della tabella non hanno nessun rapporto con la qualitàdell'audio.Il bitrate indicato è da ritenersi totale per la sequenza indipendentementedalla modalità.

Il valore NON SPECIFICATO indica che il bitrate è determinato unicamente dalla struttura dellasequenza codificata ovvero dalla dimensione in bit dei FRAME.Le specifiche impongono che anche se NON SPECIFICATO, il bitrate per i layer I e II debba esserecostante in tutta la sequenza mentre al layer III è possibile codificare sequenze a bitrate variabili.

A parità di qualità dell'audio i tre layer (I, II, III) hanno fattori di compressione crescenti .La scelta del bitrate deve tenere conto del numero di canali della modalità audio.

La struttura a livelli e la disponibilità di bitrate variabili permettono l'applicazione della codificaper memorizzazione e trasmissione sia a livello professionale che consumer.

Page 55: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-13

2.5. STRUTTURE DATI Layer IIPrima di riportare la sintassi di codifica vengono illustrate le strutture dati usate al layer II5.

A prescindere dal modello psicoacustico i concetti alla base della codifica sono:

-- La compressione avviene per gruppi di 1152 campioni per ogni canale monofonico.-- Il processo di codifica trova la rappresentazione in sottobande dei 1152 campioni PCM con

altrettante componenti divise su 32 sottobande equi ampie.-- Per ogni banda si ottengono 1152:32=36 componenti di sottobanda.-- La sequenza codificata memorizza i valori dei campioni e alcune informazioni per la loro

corretta interpretazione.

Le strutture dati definite da MPEG ed usate per la descrizione del processo di co-decodifica sonoriportate nella tabella seguente, nel seguito si riferirà il loro nome.

NOME TIPO DIMENSIONI CONTENUTO

CH COSTANTENumero di canali :

1:mono2:stereo,j_stereo,dual

SBLIMIT COSTANTE = 32Numero totale di sottobande

SCALE_BLOCK COSTANTE =1212 gruppi successivi di 3 campioni (granuli)

GR COSTANTE = 3Granulo : raggruppamento di tre campioni

successivi della stessa sottobanda

JS_BOUND INTERO SENZASEGNO

Limite minimo delle sottobande comuni sui duecanali il cui valore dipende dal bit di

estensione_modo

ARRAY

BIT ALLOCATION INTERO SENZASEGNO

[CH][SBLIMIT]Indici della tabella contenente i livelli di

quantizzazione per ogni sottobanda

SCFSI INTERO SENZASEGNO

[CH][SBLIMIT]Codifica dei fattori di scala per eliminarne la

irrilevanza percettiva entro 6 dB

SCALEFACTORO

FATTORE DI SCALA

INTERO SENZASEGNO

[CH][3][SBLIMIT]Indice della tabella contenente i valori quantizzati

dei fattori di scala

SAMPLE INTERO SENZASEGNO

[CH][3][SCALE_BLOCK][SBLIMIT]Campioni di sottobanda

Tab 2.2 Strutture dati usate negli algoritmi di codifica e decodifica al layer II, nesono riportati i nomi, le dimensioni ed un commento sul contenuto.

Il fatto che le struttura dati hanno spesso dimensioni [3][SCALE_BLOCK] mette in evidenza che i 36campioni frequenziali di ogni sottobanda vengono trattati come 3 blocchi di 12 campioni ognuno.

2.5.1. Bit AllocationLa struttura BIT_ALLOCATION contiene per ogni sottobanda (0:31) l'indice (0:15) della tabella seguenteche indica per ogni sottobanda il numero di livelli su cui quantizzare i 36 campioni frequenziali.

5Tali strutture dati sono pressoché identiche a quelle del layerI e sostanzialmente diverse da quelle del layer III.

Page 56: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-14

I N D I C E

SB NB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655351 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655352 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655353 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655354 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655355 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655356 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655357 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655358 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 655359 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 65535

10 4 3 5 7 9 15 31 63 127 255 511 1023 2047 4095 8191 6553511 3 3 5 7 9 15 31 6553512 3 3 5 7 9 15 31 6553513 3 3 5 7 9 15 31 6553514 3 3 5 7 9 15 31 6553515 3 3 5 7 9 15 31 6553516 3 3 5 7 9 15 31 6553517 3 3 5 7 9 15 31 6553518 3 3 5 7 9 15 31 6553519 3 3 5 7 9 15 31 6553520 3 3 5 7 9 15 31 6553521 3 3 5 7 9 15 31 6553522 3 3 5 7 9 15 31 6553523 2 3 5 6553524 2 3 5 6553525 2 3 5 6553526 2 3 5 6553527 028 029 030 031 0

Tab 2.3 Esempio di una tabella di corrispondenza tra indice di BIT_ALLOCATION enumero di livelli di quantizzazione.Dal valore di BIT_ALLOCATION e di sottobanda si ottiene un unico valore diquantizzazione che determina il numero di bit usati per rappresentareogni campione frequenziale della sottobanda.La colonna NB riporta il Numero di Bit necessari per memorizzarel'indice di bit allocation, ad esempio per la sottobanda 20 dato che sonopossibili solo gli indici da 0 a 7 sono sufficienti 3 bit mentre per la banda1 gli indici vanno da 0 e 15 e quindi il valore di bit allocation occupa 4Bit.

Per una efficiente codifica sono resi disponibili solo un numero limitato di possibili quantizzazioni perogni sottobanda, che, sono state determinate da una indagine statistica sulle capacità percettive umane.Di tabelle simili alla precedente ne sono definite più di una e la scelta di quale usare dipende dalbitrate e dalla frequenza di campionamento.

Dalla tabella si può notare che il numero di bande allocate è inferiore alle 32 totali, questo trova unaspiegazione nel capitolo 1.2 "Percezione dei suoni" in quanto il limite massimo di frequenze udibili èinferiore a 17 KHz per la maggior parte degli ascoltatori.Per le tabelle non riportate si fa notare che più il bitrate è basso e più il numero di bande allocatediminuisce, infatti si ha una limitata disponibilità di bit in cui memorizzare i campioni frequenziali.Per la modalità joint_stereo dato che i campioni sulle bande alte sono tenuti comuni, anche la bitallocation è unica per entrambi i canali (si usa solo il canale 0).

Ogni valore di BIT_ALLOCATION si riferisce a tutti i 36 campioni di ogni sottobanda.

Page 57: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-15

2.5.2. Fattori di ScalaI fattori di scala sono usati per "normalizzare" ogni gruppo di 12 campioni frequenziali al valoremassimo.

Normalizzare significa determinare il valore moltiplicativo tale che il massimo campionefrequenziale tra i 12 venga rappresentato con il numero 1 e tutti gli altri convalori compresi tra 0 e 1.

L'uso dei fattori di scala permette una accuratezza indipendente dal livello del segnale (che invece èuno dei difetti della codifica PCM).Come valore numerico di FATTORE DI SCALA si usa il massimo valore assoluto dei 12 campioni perognuno dei 3 gruppi di ogni sottobanda ottenendo così 3 fattori di scala per ogni sottobanda e canale.Ogni FATTORE DI SCALA ha dimensione 6 bit e la struttura fattori di scala memorizza l'indice dellaseguente tabella in cui trovare il valore del FATTORE DI SCALA:

INDICE VALORE FATTOREDI SCALA

INDICE VALORE FATTOREDI SCALA

0 2.00000000000000 32 0.001230391650291 1.58740105196820 33 0.000976562500002 1.25992104989487 34 0.000775098169913 1.00000000000000 35 0.000615195825144 0.79370052598410 36 0.000488281250005 0.62996052494744 37 0.000387549084956 0.50000000000000 38 0.000307597912577 0.39685026299205 39 0.000244140625008 0.31498026247372 40 0.000193774542489 0.25000000000000 41 0.00015379895629

10 0.19842513149602 42 0.0001220703125011 0.15749013123686 43 0.0000968872712412 0.12500000000000 44 0.0000768994781413 0.09921256574801 45 0.0000610351562514 0.07874506561843 46 0.0000484436356215 0.06250000000000 47 0.0000384497390716 0.04960628287401 48 0.0000305175781317 0.03937253280921 49 0.0000242218178118 0.03125000000000 50 0.0000192248695419 0.02480314143700 51 0.0000152587890620 0.01968626640461 52 0.0000121109089021 0.01562500000000 53 0.0000096124347722 0.01240157071850 54 0.0000076293945323 0.00984313320230 55 0.0000060554544524 0.00781250000000 56 0.0000048062173825 0.00620078535925 57 0.0000038146972726 0.00492156660115 58 0.0000030277272327 0.00390625000000 59 0.0000024031086928 0.00310039267963 60 0.0000019073486329 0.00246078330058 61 0.0000015138636130 0.00195312500000 62 0.0000012015543531 0.00155019633981 63 10-20

Tab 2.4 Corrispondenza tra indice memorizzato nella struttura FATTORE DI SCALAe fattore moltiplicativo di normalizzazione. Le quantità evidenziate ingrigio indicano gli indici dei fattori di scala usati per segnali PCM conquantizzazione superiore a 16 bit.

I valori della tabella sono quantizzati ad una distanza di 2dB , il FATTORE DI SCALA copre così unrange dinamico di 128 dB (per PCM a 20 bit), si considera il valore dell' indice appena superiore alquantizzato.

Page 58: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-16

NOTA: Nel seguito, per non appesantire la scrittura, si indicherà con il termine FATTORE DI SCALAnon l'indice ma il fattore moltiplicativo corrispondente.Per riferire l'indice memorizzato nella struttura FATTORE DI SCALA si userà il termine indicedi scalamento.Comunque l'uso dei termini fattore di scala o indice di scalamento non è ambiguo dato cheesiste una corrispondenza biunivoca tra i due valori numerici.

2.5.3. SCFSI (Struttura Codifica Fattori di Scala su Intervalli)È una struttura usata per ridurre la quantità di bit per la codifica degli indici di scalamento, si basa suirisultati di ricerche psicoacustiche sulla capacità di risoluzione in intensità dell'orecchio umano.I risultati di tali ricerche indicano che l'apparato uditivo umano è pressoché incapace di distinguerevariazioni in intensità inferiori a 6dB6.Vengono così trasmessi uno, due o tre indici di scalamento per ogni sottobanda e la struttura SCFSIper la loro codifica.In particolare se i fattori di scala sono entro un intervallo di 6 dB si trasmette solo il maggiore. Ciòaccade piuttosto frequentemente permettendo il risparmio di un fattore due dei bit necessari per lacodifica dei fattori di scala infatti da verifiche sperimentali si è dimostrato che:

"la probabilità che due fattori di scala successivi differiscano per più di 6 dBè inferiore al 10%"7.

Ogni SCFSI occupa 2 bit ed i quattro valori che può assumere hanno il seguente significato:

SCFSINUMERO

FATTORI DISCALA

TRASMESSI

FATTORE DI SCALA 1 FATTORE DI SCALA2

FATTORE DI SCALA 3

00 3 primo secondo terzo01 2 primo uguale al primo secondo10 1 primo uguale al primo uguale al primo11 2 primo secondo uguale al secondo

Tab. 2.5 Significato associato ad ogni valore della struttura SCFSI (Strutturaper la Codifica dei Fattori di Scala su Intervalli).

2.5.4. I CampioniI campioni audio PCM una volta processati dal codificatore assumono la forma di campionifrequenziali di sottobanda ed hanno le seguenti caratteristiche:

.. sono nel dominio della frequenza

.. sono quantizzati secondo l'indice di BIT_ALLOCATION per quella sottobanda

.. sono normalizzati secondo il valore del FATTORE DI SCALA del relativo gruppo di 12 campioni

I campioni vengono memorizzati nella sequenza compressa solo per le bande con BIT_ALLOCATIONdiversa da zero, ovvero se nella banda ci sono componenti significative del segnale ed è disponibileuna sufficiente quantità di bit.

Dato che le quantizzazioni dei campioni con 3,5,9 livelli non permettono un buon utilizzo del canaledigitale richiedendo 2,3 o 4 bit ma senza sfruttali totalmente, si ricorre al raggruppamento di trecampioni successivi in un granulo che viene codificato con una singola parola ottenendo un risparmio

6Si ricorda che un aumento pressione sonora di 6 dB corrispondead un raddoppio dell'energia necessaria per produrre ilfenomeno. Quindi si fa notare come sia scarsa la sensibilitàdell'orecchio umano in funzione dell'intensità

7Considerazione molto utile per correggere eventuali errori chesi verificano in trasmissione.

Page 59: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-17

medio del 37.5% dovuto al fatto che molte sottobande (specialmente alle alte frequenze) richiedonotipicamente una quantizzazione su 3, 5 o 9 livelli.Il raggruppamento permette un migliore sfruttamento del canale digitale (che è usato in modo ottimocon valori che sono potenze di 2).La formula usata per il raggruppamento in una unica parola dipende dal numero di livelli:

Numero dilivelli

formula percodificaparola

intervallo delrisultato

numero bitparola

codificata

risparmio bit risparmiopercentuale

3 v3 = 9z+3y+x 0..26 5 (3*2)-5=1 17%5 v5 =25z+5y+x 0..124 7 (3*3)-7=2 22%9 v9 =81z+9y+x 0..728 9 (3*4)-9=2 17%

Tab. 2.6 Risparmio in bit ottenuto dal raggruppamento di campioni successiviche sono quantizzati su un numero di livelli che non è una potenza di due.Le lettere x, y, z indicano i tre campioni da raggruppare.Il risparmio medio del 37.5% è stato ottenuto considerando che le bandein alta frequenza hanno alta probabilità di essere quantizzate su 3,5,9livelli.

Per riottenere i tre valori dall'unica parola di codifica si calcola il modulo della divisione per la base3, 5 o 9.

2.5.5. Osservazioni Sulle Strutture DatiDal valore dei BIT_ALLOCATION in ogni sottobanda dipende :

.. il numero di livelli di quantizzazione dei campioni di sottobanda

.. l'occupazione in bit di ogni campione nella sequenza compressa

.. i coefficienti da usare per la quantizzazione e dequantizzazione

.. la presenza delle informazioni SCFSI

.. la presenza degli indici di scalamento

Le strutture dati che devono essere memorizzate hanno dimensione dipendente dalla modalità audiosecondo la seguente:

MODO CANALI BIT ALLOCATION SCFSI SCALEFACTOR CAMPIONISINGLE 1 SBLIM SBLIM 3*SBLIM 3*12*SBLIMSTEREO 2 2*SBLIM 2*SBLIM 2*3*SBLIM 2*3*12*SBLIM

DUAL 2 2*SBLIM 2*SBLIM 2*3*SBLIM 2*3*12*SBLIMJOINT 2 SULLE BANDE

BASSE1 SULLE BANDE

ALTE

JS_BOUND +2*(SBLIM-JS_BOUND)

2*SBLIM 2*3*SBLIM 2*3*12*JS_BOUND +3*12*(SBLIM-

JS_BOUND)

Tab. 2.7 Dimensione strutture da memorizzare in funzione della modalitàaudio di codifica.

In modalità Joint_Stereo il risparmio di bit viene ottenuto solo sui campioni e sulla bit allocation per lebande tenute in comune (le alte) mentre vengono tenute separate le informazioni riguardo aifattori di scala dei due canali stereofonici.

2.6. LA SEQUENZA CODIFICATA Layer IINei paragrafi seguenti viene riportata la struttura sintattica della sequenza codificata ovvero come edin che ordine vengono memorizzate le strutture dati.Le operazioni e le formule di calcolo delle strutture sono riportate nel capitolo 3 "Specifiche tecnicheMPEG_Audio" nei paragrafi riguardanti il codificatore ed il decodificatore.

Una sequenza audio codificata è composta da una successione di FRAME.Il frame è l'unità base prodotta dal codificatore ed è anche la minima sequenza di informazioni a cuipuò essere associato un significato.

Page 60: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-18

SEQUENZA AUDIOFRAME FRAME FRAME FRAME FRAME FRAME FRAME FRAME FRAME

SEQUENZA AUDIO ( ){ WHILE ( ! end_sequenza ) FRAME ( )}

2.6.1. Il FRAMEIl frame contiene informazioni relative ad un numero fisso di campioni PCM per ogni canalemonofonico (384 per il layer I o 1152 per i layer II e III) ed ha dimensione dipendente unicamente dalbitrate e dalla frequenza di campionamento.

È composto da quattro parti principali:

FRAME AUDIOHEADER [CRC_ERRORI] DATI_AUDIO [DATI AUSILIARI]

Le parti tra parentesi quadre [.......] sono OPZIONALI

FRAME ( ){ HEADER ( ) [CRC_ERRORI ( )] DATI_AUDIO ( ) [DATI_AUSILIARI ( )]}

La sua dimensione è fissa in quanto i campioni PCM vengono ricevuti e devono essere forniti ad unafrequenza uguale a quella di campionamento, per il funzionamento in tempo reale.Tradotto in formule significa che ad esempio per una frequenza di campionamento di 48 KHz ognisecondo vengono ricevuti 48000 campioni PCM per canale monofonico che devono essere codificati agruppi di 1152 (per i layer II e III) che coprono un intervallo temporale di

148000

1152 24* sec.= m

cioè ogni secondo di musica viene codificato su un numero di1

0 02441 666667

.,= Frame.

Da bitrate e modalità (che determina il numero di canali monofonici da trattare) dipende la quindi ilnumero di bit utilizzabili per codificare l'audio in ogni FRAME.

Ad esempio per un bitrate di 256KBit/sec. e modalità Single_Channel si hanno a disposizione 256.000Bit al secondo per produrre i 41,666667 Frame ovvero ogni Frame ha dimensione di

25600041 666667

6144 768,

= =Bit Byte

Semplificando e generalizzando le formule precedenti si può esprimere la dimensione di ogni Frame inuna nuova unità di misura detta SLOT che equivale a 1 Byte per i layer II,III e a 4 Byte per il layer I:

SlotCampFreq

BitrateIlayerframeDimensione�

���

�=

._.12___

Page 61: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-19

SlotCampFreq

BitrateIIIIIlayerframeDimensione�

���

�=

._.144____

Ogni frame inizia con una parola di sincronizzazione (12 Bit="111111111111") allineata al byte etermina prima della prossima parola di sincronizzazione.

Esplodendo la parte Dati_audio, ogni frame contiene le informazioni riguardo a:

.. HEADER

.. CRC [opzionale]

.. BIT ALLOCATION

.. SCFSI

.. FATTORI DI SCALA

.. CAMPIONI di sottobanda quantizzati e normalizzati

.. DATI AUSILIARI [opzionale]

Un frame al layer II viene formattato come di seguito:

HEADER [CRC] ALLOC SCFSI FATTORI DISCALA

SAMPLE [ANC]

| | | | | | |Dimensione

fissaOpzionale

didimensione

fissa

Dimensionefissa

Presentese

b_a != 0

Presente se

b_a != 0

Presentese

b_a != 0

Opzionale didimensionevariabile

2.6.2. L'HEADERContiene la parola di sincronizzazione e le informazioni di stato del frame .Ha dimensione costante di 32 bit .

HEADERSYNC ID LAYER CRC BITRATE FREQUENZA PADDING PRIVATO MODO EXT COPYRIGHT ORIGINALE ENFASI

12 1 2 1 4 2 1 1 2 2 1 1 2

HEADER ( ){SYNCWORD

12 BitParola fissa per indentificare l'inizio di ogni frame Valore:

SYNCWORD

1111 1111 1111

ID1 bitIndica il tipo di algoritmo usato per codifica e decodifica Valori:

ID

0 RISERVATO1 MPEG Audio

LAYER2 bitIndica il layer usato per la codifica e da usare per la decodificaValori:

LAYER

Page 62: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-20

11 LAYER I10 LAYER II01 LAYER III00 RISERVATO

La modifica del layer nella stessa sequenza richiede la reinizializzazione delcodificatore e del decodificatore.

BIT_CRC1 bitIndica se viene aggiunta una parola di ridondanza per la rilevazione di errori Valori:

BIT_CRC

1 Non è usata rilevazione di errori0 Usata rilevazione errori CRC 16 Bit

BITRATE4 bitIndica l'indice della tabella seguente in cui è riportato il bitrate della sequenzaMPEG tale bitrate è da intendersi totale per tutti i canali monofonici dellasequenza Valori:

BITRATEIndice Bitrate Layer I Bitrate Layer II Bitrate Layer III0000 NON SPECIFICATO NON SPECIFICATO NON SPECIFICATO

0001 32 KBit/sec. 32 KBit/sec. 32 KBit/sec.

0010 64 KBit/sec. 48 KBit/sec. 40 KBit/sec.

0011 96 KBit/sec. 56 KBit/sec. 48 KBit/sec.

0100 128 KBit/sec. 64 KBit/sec. 56 KBit/sec.

0101 160 KBit/sec. 80 KBit/sec. 64 KBit/sec.

0110 192 KBit/sec. 96 KBit/sec. 80 KBit/sec.

0111 224 KBit/sec. 112 KBit/sec. 96 KBit/sec.

1000 256 KBit/sec. 128 KBit/sec. 112 KBit/sec.

1001 288 KBit/sec. 160 KBit/sec. 128 KBit/sec.

1010 320 KBit/sec. 192 KBit/sec. 160 KBit/sec.

1011 352 KBit/sec. 224 KBit/sec. 192 KBit/sec.

1100 384 KBit/sec. 256 KBit/sec. 224 KBit/sec.

1101 416 KBit/sec. 320 KBit/sec. 256 KBit/sec.

1110 448 KBit/sec. 384 KBit/sec. 320 KBit/sec.

1111

Per i valori NON SPECIFICATO, il bitrate è determinato dalla distanza tra le syncword equindi dalle dimensioni del FRAME ma deve essere fisso.Il numero reale di SLOT per ogni frame tiene conto del bit di padding che indica seil frame è lungo N o N+1 SLOT.Le specifiche non richiedono che per i layer I e II i co-decodificatori supportinobitrate variabili nella stessa sequenza. Per il layer III invece deve essere prevista lapossibilità di co/decodificare sequenze a bitrate non fisso.

Page 63: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-21

FREQUENZA _DI_CAMPIONAMENTO2 bitIndica la frequenza di campionamento della sequenza PCM in ingresso alcodificatore ed in uscita dal decodificatore Valori:

FREQUENZA

00 44.1 KHz01 48 KHz10 32 KHz11 RISERVATO

La modifica della frequenza di campionamento richiede la reinizializzazione deldecodificatore.

BIT_PADDING1 bitIndica se il frame contiene uno SLOT addizionale , tale bit è usato solo percampionamenti a 44.1 KHz e tiene conto del numero frazionario di SLOT perframe.Valori:

PADDING

1 Nel frame è presente uno SLOT addizionale0 Nessun SLOT addizionale

BIT_PRIVATO1 bitBit riservato per usi futuri da MPEG-AudioNessun valore assegnato nelle attuali specifiche

MODO2 bitUsato per indicare la modalità ovvero il numero di canali e la lorointerpretazione. Valori:

MODO

00 STEREO01 JOINT_ STEREO10 DUAL_CHANNEL11 SINGLE_CHANNEL

MODO_ESTENSIONE2 bitIn caso di joint stereo indica il numero di sottobande tenute comuni

ESTENSIONE

00 sottobande 4-32 comuni01 sottobande 8-32 comuni10 sottobande 12-32 comuni11 sottobande 16-32 comuni

Page 64: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-22

COPYRIGHT1 bitIndica se il materiale è protetto da copyrightValori

COPYRIGHT

0 Materiale libero1 Materiale protetto da Copyright

ORIGINALE1 bitIndica se la sequenza è originale , se è una copia , se è il risultato di unasessione di editing.Valori:

ORIGINALE

0 La sequenze NON è originale1 La sequenza è originale

ENFASI2 bitTipo di enfasi usataValori:

ENFASI

00 nessuna enfasi01 50/15 microsecondi10 RISERVATO11 CCITT J.17

}

2.6.3. IL CRC [Cyclic Redundancy Code]Valore a 16 bit opzionale contenente informazioni per la rilevazione di errori verificatesi nelle particritiche del frame.

CRC 16 BitCRC RILEVAMENTO ERRORI

Il CRC viene costruito sulla base del polinomio

G x x x x( ) = + + +16 15 2 1

TEST_CRC( ){ IF (BIT_CRC) CRC_CHECK( )}

Non è previsto nessun codice a correzione di errori in quanto la codifica è per sua natura adatta persupporti ad alta affidabilità, per cui la rilevazione è sufficiente nella maggior parte dei casi per ripararea situazioni di errore, ad esempio MPEG suggerisce di ripetere l'ultimo frame privo di errori oppuresopprimere l'emissione dei segnali audio in caso di errori. Quest'ultima tecnica funziona bene pererrori sparsi grazie alla bassa granularità temporale della codifica (1 frame corrisponde a 24msec. dimusica).

Page 65: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-23

2.6.4. I Dati_Ausiliari (Ancillary)

DATI AUSILIARIDATI AUSILIARI (ANCILLARY_DATA) DEFINIBILI IN DIMENSIONE E SIGNIFICATO

I dati ausiliari o PAD (Program Ancillary Data) sono la parte del frame che può essere usata inapplicazioni specifiche, contiene dati in formato libero purché non si alteri la dimensione delframe (dipendente dal bitrate e frequenza di campionamento).Se si usa la parte di dati ausiliari il codificatore e il decodificatore devono sapere come interpretarli.Un' esempio del loro uso sono le DCC (Digital Compact Cassette) che usano la codifica al layer I eallocano nella zona dati ausiliari i titoli e testi delle canzoni.Per definizione dello standard un decodificatore generale (che non usi la parte di dati ausiliari) ècomunque in grado di decodificare i frame con PAD ottenendone la rappresentazione PCM(ovviamente senza sfruttare le informazioni ausiliarie).

DATI_AUSILIARI ( ){ DA SPECIFICARE ( )}

2.6.5. SintassiLe strutture dati descritte nei paragrafi precedenti vengono formattate nella sequenza compressasecondo la sintassi seguente:

DATI_AUDIO ( ){

Page 66: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-24

IF (MODE == MPG_MD_SINGLE_CHANNEL){FOR (sb=0 ; sb<SBLIMIT ; sb++)

BIT_ALLOCATION[0][sb]

FOR (sb=0 ; sb<SBLIMIT ; sb++) IF (BIT_ALLOCATION[0][sb] )

SCFSI[0][SB]

FOR (sb=0 ; sb<SBLIMIT ; sb++)IF (BIT_ALLOCATION[0][sb] != 0){SWITCH (SCFSI[0][sb])

CASE 0: SCALEFACTOR[0][1][sb]SCALEFACTOR[0][2][sb]SCALEFACTOR[0][3][sb]BREAK

CASE 1:CASE 3: SCALEFACTOR[0][0][sb]

SCALEFACTOR[0][2][sb]BREAK

CASE 2: SCALEFACTOR[0][0][sb]}

FOR (gr=0 ; gr<SCALE_BLOCK ; gr++)FOR (sb=0 ; sb<SBLIMIT ; sb++)

IF (BIT_ALLOCATION[0][sb]){IF (livelli quantizzazione = 3,5,9)

12 GRUPPI DI 3 CAMPIONIELSE

36 CAMPIONI DELLA SOTTOBANDA}

}

Page 67: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-25

IF (MODE == MPG_MD_STEREO) OR (MODE ==MPG_MD_DUAL_CHANNEL){FOR (sb=0 ; sb<SBLIMIT; sb++)

FOR (ch=0 ; ch<2 ; ch++)BIT_ALLOCATION[ch][sb]

FOR (sb=0 ; sb<SBLIMIT ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[0][sb])SCFSI[ch][sb]

FOR (sb=0 ; sb<SBLIMIT ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[ch][sb] != 0){SWITCH (SCFSI[ch][sb])

CASE 0: SCALEFACTOR[ch][1][sb]SCALEFACTOR[ch][2][sb]SCALEFACTOR[ch][3][sb]BREAK

CASE 1:CASE 3: SCALEFACTOR[ch][0][sb]

SCALEFACTOR[ch][2][sb]BREAK

CASE 2:SCALEFACTOR[ch][0][sb]}

FOR (gr=0 ; gr<SCALE_BLOCK ; gr++)FOR (sb=0 ; sb<SBLIMIT ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[ch][sb] != 0){IF (LIVELLO QUANTIZZAZIONE = 3,5,9))

12 GRUPPI DI TRE CAMPIONIELSE

36 CAMPIONI DELLA SOTTOBANDA }}

Page 68: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-26

IF (MODE == MPG_MD_JOINT_STEREO){FOR (sb=0 ; sb<JS_BOUND ; sb++)

FOR (ch=0 ; ch<2 ; ch++)BIT_ALLOCATION[ch][sb]

FOR (sb=JS_BOUND ; sb<SBLIMIT ; sb++)BIT_ALLOCATION[0][sb]

FOR (sb=0 ; sb<JS_BOUND ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[0][sb] != 0)SCFSI[ch][sb]

FOR (sb=JS_BOUND ; sb<SBLIMIT; sb++)IF (BIT_ALLOCATION[0][sb] != 0)

SCFSI[0][sb]

FOR (sb=0 ; sb<bound ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[ch][sb] != 0){SWITCH (SCFSI[ch][sb])

CASE 0: SCALEFACTOR[ch][1][sb]SCALEFACTOR[ch][2][sb]SCALEFACTOR[ch][3][sb]BREAK

CASE 1:CASE 3: SCALEFACTOR[ch][0][sb]

SCALEFACTOR[ch][2][sb]BREAK

CASE 2 : SCALEFACTOR[ch][0][sb]}

FOR (sb=JS_BOUND ; sb<SBLIMIT ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[ch][sb] != 0){SWITCH (SCFSI[ch][sb])

CASE 0: SCALEFACTOR[ch][1][sb]SCALEFACTOR[ch][2][sb]SCALEFACTOR[ch][3][sb]BREAK

CASE 1 :CASE 3: SCALEFACTOR[ch][0][sb]

SCALEFACTOR[ch][2][sb]BREAK

CASE 2: SCALEFACTOR[ch][0][sb]}

FOR (gr=0 ; gr<SCALE_BLOCK ; gr++){

FOR (sb=0 ; sb<JS_BOUND ; sb++)FOR (ch=0 ; ch<2 ; ch++)

IF (BIT_ALLOCATION[ch][sb]){IF (LIVELLI QUANTIZZAZIONE==3,5,9)

12 GRUPPI DI TRE CAMPIONI ELSE

36 CAMPIONI DELLA SOTTOBANDA

Page 69: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-27

}

FOR (sb=JS_BOUND ; sb<SBLIMIT ; sb++)IF (BIT_ALLOCATION[0][sb] ){IF (livelli quantizzazione ==3,5,9))

12 GRUPPI DI TRE CAMPIONIELSE

36 CAMPIONI DELLA SOTTOBANDA}

}}

Le differenze principali della sintassi di codifica del layer II rispetto agli altri livelli sono:

LAYER I- non si usa la codifica dei fattori di scala con la struttura SCFSI- i livelli di quantizzazione non seguono nessuna tabella di transcodifica e quindi non si fa

nessun grouping di campioni dato che il numero di passi di quantizzazione è sempre unmultiplo di due ed è indicato direttamente da 2^(bit_alloc[CH][i])

- la BIT_ALLOCATION ha sempre dimensione di 4 bit indipendentemente dalla sottobanda

LAYER III- viene usata una codifica addizionale di Huffmann per i campioni di sottobanda- vengono utilizzate strutture dati aggiuntive che rendono la sintassi di codifica completamente

diversa da quella esposta

RIASSUNTO STRUTTURE DATI IN FUNZIONE DEL MODO:

SINGLE_CHANNEL JS_BOUND=SBLIMITCANALE 0 : JS_BOUND BIT ALLOCATION

CANALE 0SCFSI

CANALE 0SCALEFACTOR

CANALE 0CAMPIONICANALE 0

0 JS_BOUND : SBLIMIT √ √ √ √

CANALE 0:JS_BOUND √ √ √ √

1 JS_BOUND : SBLIMIT √ √ √ √

STEREO JS_BOUND=SBLIMITCANALE 0 : JS_BOUND BIT ALLOCATION

CANALE 0SCFSI

CANALE 0SCALEFACTOR

CANALE 0CAMPIONICANALE 0

0 JS_BOUND : SBLIMIT √ √ √ √

CANALE 0:JS_BOUND BIT ALLOCATIONCANALE 1

SCFSICANALE 1

SCALEFACTORCANALE 1

CAMPIONI CANALE 1

1 JS_BOUND : SBLIMIT √ √ √ √

DUAL_CHANNEL JS_BOUND=SBLIMITCANALE 0 : JS_BOUND BIT ALLOCATION

CANALE 0SCFSI

CANALE 0SCALEFACTOR

CANALE 0CAMPIONICANALE 0

0 JS_BOUND : SBLIMIT √ √ √ √

CANALE 0:JS_BOUND BIT ALLOCATIONCANALE 1

SCFSICANALE 1

SCALEFACTORCANALE 1

CAMPIONICANALE 1

1 JS_BOUND : SBLIMIT √ √ √ √

Page 70: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-28

JOINT_STEREO JS_BOUND<SBLIMITCANALE 0 : JS_BOUND BIT ALLOCATION

CANALE 0SCFSI

CANALE 0SCALEFACTOR

CANALE 0CAMPIONICANALE 0

0 JS_BOUND : SBLIMIT BIT ALLOCATIONCANALE 0

SCFSICANALE 0

SCALEFACTORCANALE 0

CAMPIONICANALE 0

CANALE 0:JS_BOUND BIT ALLOCATIONCANALE 1

SCFSICANALE 1

SCALEFACTORCANALE 1

CAMPIONICANALE 1

1 JS_BOUND : SBLIMIT √ SCFSICANALE 1

SCALEFACTOR CANALE 1

Per qualsiasi modalità i fattori di scala , gli SCFSI e i campioni sono presenti se e solo se la bitallocation in quella sottobanda è diversa da zero.

2.7. VALUTAZIONE DELLA CODIFICATest soggettivi condotti con un campione di ascoltatori esperti hanno valutato la qualità e fedeltà dellacompressione per diversi valori di bitrate.L' EBU (European Broadcasting Union) definisce la qualità dell'audio per la distribuzione su largascala:

"La qualità del segnale audio riprodotto dopo la decodifica dovrebbe essereindistinguibile rispetto alla qualità ottenibile da un Compact disc. In pratica questoimplica comparare il segnale analogico in uscita dal decodificatore con un segnaledi riferimento riprodotto da un sistema lineare a 16 Bit, mediante un doppio testcieco del tipo A_B_C con caratteristiche dei due segnali nascoste per lavalutazione soggettiva.Il co-decodificatore è giudicato accettabile se il risultato della valutazione dellesequenze sonore su una scala a 5 gradi di giudizio (scala CCIR) mostra unacoincidenza dell'intervallo di fiducia del 95 % del segnale originale e deldecodificato.Il test deve essere eseguito su segnali critici e la coincidenza deve avvenire peralmeno il 70 % delle sequenze sonore."

La codifica MPEG_Audio rispetta questi requisiti di qualità con un fattore di compressione 4 al layerI, 6 al layer II e 8 al layer III.

Da enti internazionali è stata verificata la conservazione della qualità per codifiche e decodifiche disequenze critiche8 di segnali audio, le prove sono state fatte con bitrate di 192, 128, 96, 64 KBit/sec.per canale monofonico e si sono usati test di tipo A B C; test in cui l'ascoltatore può a suo piacimentoconfrontare l'originale (A) con altre due sequenze (B) e (C) in cui sono mappati a sua insaputal'originale ed l'audio da testare. Il soggetto deve così decidere se il codificato è (B) o (C) ed esprimereun voto di degradazione in una scala a 5 livelli [CCIR].

1 molto disturbante2 disturbante3 poco disturbante4 udibile5 non udibile

Tab 2.8 Votazioni secondo la scala CCIR

I risultati delle prove eseguite in Svezia nel Luglio 1990 e nell'Aprile 1991 hanno dimensionatoindicativamente il bitrate in funzione della qualità che si vuole ottenere :

8Si intendono critiche quelle sequenze audio che per laparticolare struttura del segnale poco si prestano allacompressione, richiedendo alti bitrate per la conservazionedella qualità CD.

Page 71: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-29

Il layer I è risultato ad alta qualità ad un bitrate di 192KBit/sec. per canale monofonico e soloi segnali più critici vengono giudicati al valore 4.5 della scala CCIR 5-grade.

I layer II e III hanno mostrato una alta qualità soggettiva a bitrate di circa 128KBit/sec. percanale . A questi bitrate il caso peggiore ha avuto una votazione di 4.6 della scalaCCIR.

In seguito sono state eseguite dall'università di Hannover (Novembre 1991) prove sulla modalitàjoint_stereo e dalla B.B.C. (1990) valutazioni della robustezza in caso di errori; entrambe hannoconfermato l'affidabilità della codifica.Altre prove sono state fatte nei primi mesi del 1991 ad Ottawa (Canada) riguardo a : qualità immaginestereofonica , robustezza ad errori , codifiche in cascata e comparazione con trasmissioni FM in altaqualità.Le codifiche in cascata sono state fatte a 192KBit/sec. e 128KBit/sec. La codifica in cascata di 4 stadia 192KBit/sec. con due a 128KBit/sec. è risultata trasparente. Una cascata di 5 stadi a 128KBit/sec.non è più trasparente.Nella comparazione con i segnali FM a bitrate di 128KBit/sec. la codifica MPEG è stata preferita eanche se di poco, ma, si tenga presente che i segnali FM erano generati sotto condizioni ideali nonrappresentative per le normali trasmissioni.Come considerazione generale vale il fatto che la qualità in ascolto di una sequenza decodificatasarà tanto più simile all'originaria tanto più:

- il bitrate disponibile per la codifica è alto- la qualità dell'audio originale è buona- il modello percettivo usato è accurato

Le conclusioni sono state che la codifica MPEG_Audio rispetta in pieno le richieste dell'EBU per una altaqualità dell'audio.Nella sequenza codificata i dati che devono essere protetti da errori o perlomeno su cui devono essererilevati sono di limitate dimensioni ma di vitale importanza.Le parti che necessariamente devono essere prive di errori per una corretta decodifica sono l'header, labit allocation, gli SCFSI e gli SCALEFACTOR mentre non è necessario proteggere i campioni (cheoccupano la gran parte del frame).Vengono di seguito riportati i risultati di prove soggettive rivolte alla valutazione degli effetti inascolto di sequenze volutamente corrotte, i voti sono espressi con la scala CCIR a 5 valori.Gli errori considerati sono di tipo casuale e l'effetto può essere notevolmente ridotto adottando laprevista rilevazione di errori di MPEG 9 e prendendo alcune misure correttive.

STRUTTURA CORROTTA BIT CORROTTI SENSITIVITÀ

BIT ALLOCATION QUALSIASI CATASTROFICASCFSI QUALSIASI CATASTROFICA

SCALEFACTOR 5 (MSB) MOLTO DISTURBANTE4 MOLTO DISTURBANTE3 MOLTO DISTURBANTE2 DISTURBANTE1 POCO DISTURBANTE

0(LSB) UDIBILECAMPIONI SOTTOBANDE 8-16(MSB) DISTURBANTE

5-7 POCO DISTURBANTE3-4 UDIBILE

0-2(LSB) NON UDIBILE

Fig. 2.9 Effetto degli errori su un frame codificato MPEG_Audio evalutazione soggettiva in base alla scala CCIR

L'uso della rilevazione errori (CRC) permette effetti molto meno devastanti. La distanza di Hammingper la rilevazione di questi errori è d=4 che permette la rilevazione fino a tre errori su bit singoli o larilevazione di fino a 16 bit consecutivi errati.

9Prevista con un codice CRC a 16 bit opzionale.

Page 72: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-30

Le misure correttive in caso di rilevazione di errori consistono ad esempio nel sopprimere l'audio perl'istante in cui si verificano errori o il ripetersi del frame precedente (se è privo di errori).

La qualità del segnale compresso dipende fortemente dal bitrate disponibile sul canale edindicativamente valgono le seguenti richieste di capacità del canale.

ALTA QUALITÀ (qualità con margine editing): 192KBit/sec. per segnali mono o 320KBit/sec. per due canali producono una alta qualità con un ampio margine perpermettere future operazioni di postprocessing ovvero per elaborazioni in studio delsegnale come ad esempio l'aggiunta di commenti parlati.

QUALITÀ CONVENZIONALE (CD) (massima qualità in ascolto): è sufficiente un bitratedi 192KBit/sec. per mono o 256KBit/sec. per stereo. La qualità ottenuta, rispetta leraccomandazioni CCIR per una buona qualità (distribuzione professionale)

QUALITÀ BUONA: con 96KBit/sec. mono o 192 su due canali è possibile una codifica conalta compressione ed una piccola degradazione del segnale. Ci si aspetta che infuturo con la codifica joint-stereo si ottenga a parità di bitrate un notevolemiglioramento della qualità ed il raggiungimento con 192 Joint della stessa qualitàdi 256 stereo (distribuzione consumer).

QUALITÀ INTERMEDIA: si ottiene con 64KBit/sec. mono o 128 KBit per due canali, quìcomincia ad essere apprezzabile il miglioramento introdotto dalla codifica joint-stereo. Test soggettivi stanno per essere eseguiti in tal senso da CCIR Task Group10/2 (distribuzione di notizie solo voce).

È stato previsto di riservare una capacità di circa 2 Kbit/s per la trasmissione di dati associati aiprogrammi (PAD).Questi dati riguardano informazioni associate al segnale audio e che diventerebbero inutilizzabili seritardate in una coda, o se trasmesse in un canale di servizio separato.I PAD sono usati opzionalmente per trasmettere informazioni addizionali, come ad esempio testi deiprogrammi.Un esempio di dati associati al programma è il range dinamico della trasmissione, utilizzabili nelricevitore per comprimere la dinamica del segnale audio; tali dati diventano privi di significato seritardati rispetto al segnale codificato.Altra applicazione dei PAD è nella trasmissione di programmi multicanale (più di due) per allocare idati relativi ai canali ausiliari.

2.8. POSSIBILI APPLICAZIONILe caratteristiche della codifica MPEG ne fanno un valido prodotto applicabile direttamente per :

- DAB (Digital Audio Broadcasting) ovvero distribuzione radiofonica digitale- Audio associato all' HDTV (Televisione ad alta Definizione)- Trasmissione di contributi (voce, parlato, commenti..... )- Editing e postprocessing- Memorizzazione a bassi costi- Applicazioni multi e ipermediali -Sistemi multicanale -Educazione e istruzione- Uso in campo industriale- Applicazione in sezioni di intrattenimento- Electronic publishing- Registrazione audio su dischi Winchester, magneto-ottici,- Trasmissione in banda stretta ISDN per contributi, tele o video conferenze- Distribuzione da studio ai trasmettitori e ripetitori .

Page 73: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-31

La codifica è usata per la distribuzione su larga scala di audio digitale nelle DCC (Digital CompactCassette)10.

2.9. UNA APPLICAZIONE :IL DABLe trasmissioni radiofoniche in FM sono nate negli anni 1950-1960 con caratteristiche che sonodiventate inadeguate con il passare degli anni, ad esempio il fatto che la qualità FM degradasensibilmente nel caso di ricezione da un punto mobile (tipicamente un' automobile dove nonvengono usate antenne direzionali) ne limita lo sviluppo e l'applicabilità.Per la distribuzione di servizi radiofonici e televisivi su larga scala si sono così cercate tecniche ditrasmissioni più efficienti e flessibili, una soluzione sembra essere l'adozione della forma digitalecompressa.

Nel 1980 sono così cominciati i primi studi (in Germania) per lo sviluppo di una rete di distribuzionedi audio digitale e si sono cercate codifiche che ne ottimizzino l'uso tenendo presente che i servizidistribuiti potrebbero essere:

.. immagini con associato audio

.. trasmissioni audio

.. notizie in tempo reale

.. informazioni testuali

La codifica digitale per la distribuzione di audio deve essere affidabile e robusta per la ricezionemobile anche in zone particolarmente disturbate, dove la configurazione del territorio non permette lavista della trasmittente o dove ci sono interferenze.Dopo numerosi studi ed esperimenti , nel 1985 non era ancora stata definita la banda di frequenzeutilizzabili per la distribuzione efficiente di audio digitale.È stato così avviato il progetto di sviluppo del DAB (Digital Audio Broadcasting) per studiare unacodifica digitale dei segnali audio digitale che soddisfi tutte le richieste per una distribuzione a bassicosti ed in alta qualità.Il progetto avviato è stato denominato EUREKA EU 147 ed ha dato vita alla fine del 1991allacodifica MUSICAM che poi è stata adottata anche da MPEG.Il suo scopo è di ottenere una affidabile trasmissione dell'audio con una limitata occupazione di canale(bitrate) mantenendo alta la qualità.

Il DAB non si presenta come un sistema aggiuntivo di distribuzione radiofonica ma come il naturalesuccessore dell' FM; il passaggio dall'uno all'altro sarà graduale con un periodo di convivenza stimatoin circa 15 anni durante i quali saranno messi in commercio ricevitori radio LW/MW/SW, FM eDAB) .Il numero di ricevitori DAB che i produttori stimano di vendere nella sola Europa è di 600-700MILIONI [Mùller]e si prevede di cominciare ad introdurre tali apparecchi sul mercato entro il 1995.La banda occupata dal DAB si estenderà fino a sostituire totalmente entro il 2010 l'interra gamma difrequenze usate da trasmissioni FM.È prevista entro tale data la possibilità di trasmissioni a livello europeo anche via satellite.Per le prime distribuzioni si pensa di utilizzare le gamme di frequenze del canale 12 (usate per ladistribuzione televisiva) , in Canada si sta valutando la possibilità della distribuzione DAB nella bandadi frequenze di 1.5GHz

Le fasi temporali per l'introduzione DAB sono state definite in [Mùller]:

10Supporto magnetico sviluppato dalla Philips; la codifica usatacorrisponde al layer I della codifica MPEG_Audio.

Page 74: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-32

1995 Introduzione sul mercato dei primiapparecchi per la ricezione.

1995-2010 Convivenza della distribuzione FM eDAB su bande separate

2010 DAB rimpiazza totalmente l' FM nellabanda di frequenze da 87.5 a 108 MHz

dopo il 2010 Con la fine delle trasmissioni FM ilDAB occupa 20.5MHz (banda II) epossono essere introdotti nuovi servizicome la distribuzione di programmi consurround o altro.

2.9.1. Caratteristiche del DABIl materiale trasmesso via DAB non è limitato al parlato ma copre tutta la banda di frequenzedell'udibile.Il sistema di codifica prevede i quattro modi di distribuzione (mono, dual, stereo e joint stereo) conl'estensione per la distribuzione multicanale (4 o 5 canali monofonici per creare l'effetto "ambiente")11

e bitrate variabili da 32 a 192 KBit/sec. per canale monofonico a seconda della qualità audiodesiderata mentre è prevista solo la frequenza di 48KHz.

Fig 2.7 Disposizione in ascolto dei diffusori per il sistema a 5 canali .

La frequenza di campionamento di 48 KHz è l'unica prevista perché la 32 kHz ha una banda troppolimitata (16KHz) mentre il campionamento a 44.1 kHz è meno interessate a causa della sua partefrazionaria che crea problemi di sincronizzazione.La scelta del bitrate dipende dalla modalità audio e differisce dalla tabella riportata nelle specificheMPEG:

11 È una modalità aggiuntiva in fase di studio e definizione cheprevede la codifica nei frame delle informazioni di 5 canalimonofonici i cui diffusori dovranno essere disposti come infigura.Tale modalità sta per essere definita come standard pertrasmettere l'audio associato a programmi televisivi in altadefinizione.La sintassi della codifica non viene modificata in quanto siprevede di trasmettere i due canali stereofonici principali inuna normale trama stereo ed i rimanenti tre canali (2 surrounde il centrale frontale) nella parte di dati ausiliari. In talmodo i precedenti decodificatori sono in grado di estrarrealmeno i due canali stereofonici principali dalla sequenzacodificata.

Page 75: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 2 "La codifica MPEG_Audio" Davide Cilano

Pag. 2-33

BITRATE MODALITÀ AUDIOMONO DUAL STEREO JOINT_

STEREO

32 X48 X56 X64 X X X X80 X96 X X X X

112 X X X X128 X X X X160 X X X X192 X X X X224 X X X256 X X X320 X X X

Tab. 2.10 Bitrate utilizzabili nella distribuzione DAB. Si ricorda che il DAB usala codifica MUSICAM limitata a frequenze di campionamento di 48 KHzad ai bitrate elencati .

Il segnale in ingresso ed in uscita alla catena di codifica è conforme all'interfaccia EBU/AES[Raccomandazione CCIR 647] permettendo l'uso dei normali sistemi di conversione D/A a A/D,inoltre dato che la qualità del segnale PCM migliora con l'aumento della risoluzione in ingresso èprevista una risoluzione in ingresso di 18 bit per campione.

Riguardo ai trasmettitori e ripetitori la distribuzione DAB non introduce costi aggiuntivipermettendo l'utilizzazione delle strutture FM esistenti, ogni stazione radio DAB richiede unaoccupazione di canale di circa un terzo rispetto all' equivalente trasmissione FM (FrequencyModulation) e la potenza necessaria nel trasmettitore è molto inferiore permettendo un maggiorconfinamento delle trasmissioni a specifiche aree geografiche 12 e minori costi di esercizio.

Una rete DAB sperimentale capace di diffondere nove canali radiofonici indipendenti ad alta qualitàsecondo le specifiche MPEG è operativa a Rennes (Francia).

Il lavoro in corso relativamente al progetto DAB mira alla costruzione di un decodificatoreMPEG_Audio in un unico chip VLSI (Very Large Scale Integration).

12Un buon confinamento geografico delle trasmissioni riduce leinterferenze tra stazioni radio; in tal modo è possibileutilizzare la stessa frequenza per diverse stazioni ad unasufficiente distanza aumentando lo sfruttamento della banda difrequenze assegnata alla distribuzione DAB.

Page 76: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3SPECIFICHE TECNICHE

MPEG_Audio layer II( MUSICAM )

Masking patternUniversalSubbandIntegratedCodingAndMultiplexing

3.1. INTRODUZIONE........................................................................................................................................... 23.2. BIBLIOGRAFIA PER I RIFERIMENTI TECNICI:................................................................................ 23.3. GLOSSARIO TECNICO MPEG_Audio ..................................................................................................... 23.4. IL PROCESSO DI CODIFICA Layer II...................................................................................................... 4

3.4.1. Diagramma di Flusso .................................................................................................................. 73.4.2. Filtro Passa Alto in Ingresso ..................................................................................................... 83.4.3. Banco di Filtri di Analisi ........................................................................................................... 83.4.4. FFT (Fast Fourier Transform)................................................................................................... 93.4.5. Modello Psicoacustico ............................................................................................................... 103.4.6. Codifica Fattori di Scala ........................................................................................................... 103.4.7. Calcolo Struttura Codifica Fattori di Scala Su Intervalli .................................................. 103.4.8. Allocazione Dinamica Bit .......................................................................................................... 11

3.4.8.1. Diagramma di Flusso ........................................................................................... 143.4.9. Normalizzazione e Quantizzazione Campioni Frequenziali .............................................. 153.4.10. Protezione Errori ......................................................................................................................... 16

3.5. IL PROCESSO DI DECODIFICA Layer II ................................................................................................ 163.5.1. Diagramma di Flusso .................................................................................................................. 173.5.2. Sincronizzazione Frame ............................................................................................................. 183.5.3. Decodifica Header....................................................................................................................... 183.5.4. Decodifica CRC Errori ............................................................................................................... 193.5.5. Decodifica Bit Allocation........................................................................................................... 193.5.6. Decodifica SCFSI......................................................................................................................... 193.5.7. Decodifica Fattori di Scala ....................................................................................................... 193.5.8. Dequantizzazione Campioni...................................................................................................... 203.5.9. Denormalizzazione Campioni ................................................................................................... 203.5.10. Filtro di Sintesi di Sottobanda ................................................................................................. 21

Page 77: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-2

3.1. INTRODUZIONELe specifiche esposte di seguito sono state tratte dai documenti originali di MPEG 11172 rev 1.Alcune sezioni sono state adattate per renderle compatibili con quanto realizzato via software da MPEGnella versione 3.5 (che non supporta il layer III)1.Il software della versione 3.5 è stato scritto sotto il controllo di MPEG da alcuni suoi membri.

Molte tabelle non indispensabili per la descrizione della codifica non sono riportate o sono inseritesolo in forma ridotta.È il caso delle famiglie di tabelle simili come struttura ed uso ma di contenuto variabile in funzione dallafrequenza di campionamento e dal bitrate desiderato, o di alcune tabelle di grandi dimensioni, riportatesolo in forma riassuntiva.In particolare di tali tabelle se ne illustra solo il significato e l'uso mentre si rimanda ai documentioriginali di MPEG per avere i valori completi .

3.2. BIBLIOGRAFIA PER I RIFERIMENTI TECNICI:

Documenti originaliMPEG Audio 3-11171 rev 111/26/91

Software MPEGvers.3.5 Linguaggio C

Raccomandazioni CCIR, 1990XVIIth Plenary Assembly , Dusseldorf, 1990Volume XI - Parte IBroadcasting Service (Television)Rec.601-1 "Encoding parametrers of digital television for studios".Volume XRec.953 "Encoding parametres for digital audio".

IEEE Draft standard "Specification for the implemantation of 8x8 inverse discrete cosinetransform".P1180/D2, July 18, 1990.

3.3. GLOSSARIO TECNICO MPEG_AudioSegue un glossario di termini usati da MPEG nella descrizione del sistema MPEG_Audio.Dove ho ritenuto fattibile, i termini sono stati tradotti in italiano mantenendo però la più possibileassonanza originaria.

alias: componente erronea del segnale, ottenuta da campionamenti sotto la frequenza di Nyquist.allineamento al byte: un bit in una sequenza si dice allineato al byte se la sua posizione è un

multiplo di 8 bit di distanza dal primo bit.banco di filtri di analisi: banco di filtri del codificatore per la trasformazione dei campioni PCM

audio in campioni in frequenza divisi in 32 sottobande.banco di filtri di sintesi: banco di filtri del decodificatore per ricostruire i campioni PCM dai

campioni frequenziali in sottobanda.banco di filtri ibrido: combinazione seriale di filtri per la divisione in sottobande.banco di filtri in sottobanda: insieme di filtri che coprono l'intera gamma di frequenze udibili.banco di filtri polifase: insieme di filtri con la stessa larghezza di banda e correlati secondo la fase.banco di filtri: insieme di filtri passa basso che copre una certa banda di frequenze.

1Vedi appendici A "Il software MPEG" e B "Analisi del software"

Page 78: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-3

bande critiche in frequenza: misura psicoacustica nel dominio della frequenza che si adatta allaselettività in frequenza dell'orecchio umano.

bark: unità per bande critiche di frequenza, usata in misure psicoacustiche.bit_allocation : struttura contenente informazioni sul numero di livelli di quantizzazione dei

campioni di ogni sottobanda.bit_allocation adattiva : assegnazione di bit alle sottobande in modo variabile nella frequenza e nel

tempo secondo il risultato del modello psicoacustico.bitrate costante: operazione in cui il bitrate è costante dall'inizio alla fine della sequenza compressa.bitrate: velocità con cui la sequenza MPEG_Audio viene trasmessa dal mezzo di memorizzazione al

decodificatore (espressa in Bit al secondo).bound: più piccola sottobanda in cui si usa la codifica joint stereo.campionamento di Nyquist: campionamento ad una frequenza maggiore del doppio della larghezza

di banda del segnale audio.canale[1]: mezzo digitale che memorizza o trasporta una sequenza MPEG-Audiocanale[2]: porzione del segnale audio riguardante solo la parte destra o sinistra di una sequenza

stereo, dual_channel o Joint_Stereo.codifica dell'entropia: codifica a lunghezza variabile senza perdita per ridurre la ridondanza dei dati.codifica di Huffmann: metodo per una codifica basata sull'entropia dell'informazionecodificatore: corpo del processo di codifica.componente non_tonale: componente frequenziale simile a rumore.componente tonale: componente simile ad un tono puro.compressione : riduzione del numero di bit usati per rappresentare dei dati. Il termine bit è qui usato

con la semantica di binit della teoria della trasmissione.CRC: [Cyclic Redundancy Code] codice ridondante per la rilevazione di errori.decodificatore: corpo del processo di decodifica.dequantizzazione: decodifica dei campioni audio in frequenza in modo da ricostruirne gli originali

valori quantizzati.fattore di scala [indice]: codice numerico che rappresenta il fattore di scala.fattore di scala: fattore usato per la normalizzazione dei campioni frequenziali in sottobanda .fattori di scala quantizzati: dati della sequenza codificata usati nel processo di decodifica per

denormalizzare.FFT:[Fast Fourier Transform] algoritmo per il calcolo veloce della trasformata di Fourier per ottenere

la rappresentazione frequenziale di segnali.finestratura di Hann: funzione nel dominio del tempo applicata campione per campione ad un

blocco di campioni audio prima della trasformata di Fourier.frame: parte della sequenza audio che corrisponde alla codifica di un numero fisso di campioni

PCM.granulo: per il layer II un granulo è l'insieme di 12 gruppi di 3 campioni della stessa sottobanda,

sono 36 campioni all'interno della stessa sottobanda.gruppo : insieme di tre campioni frequenziali successivi della stessa sottobanda; i gruppi di

campioni sono usati per sfruttare al meglio il mezzo di memorizzazione se il numero dipassi di quantizzazione non è una potenza di due.

intensity_stereo: metodo per eliminare l'irrilevanza e la ridondanza presente nei segnali stereofonicibasata sul fatto che alle alte frequenze è rilevante solo l'inviluppo dell'energia deicanali destro e sinistro.

Joint_Stereo [codifica]: Qualsiasi metodo che elimina parte della irrilevanza e ridondanza deisegnali stereo.

Joint_Stereo [modo]: modalita dell'algoritmo di codifica che usa una codifica Joint_Stereolayer: uno dei livelli della gerarchia di co-decodifica definiti dallo Standard.mascheramento: proprietà del sistema uditivo umano secondo cui un segnale non può essere

percepito in presenza di un altro segnale mascherante.modello psicoacustico: modello matematico delle capacita di mascheramento dell'orecchio umano.MS_stereo: metodo per la codifica priva di irrilevanza e ridondanza di segnali stereofonici basata

sulla somma e differenza dei segnali.padding: metodo per adattare la dimensione media dei frame audio nel dominio del tempo usando

sotto certe condizioni uno SLOT addizionale.processo di codifica: processo di lettura di campioni audio e produzione della forma codificata

definita da questo standard (il metodo usato nella costruzione non è però soggetto astandardizzazione).

Page 79: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-4

processo di decodifica: processo definito dall'ISO che legge un codice in ingresso e produce inuscita campioni audio decodificati.

scfsi (S truttura Codifica Fattori di Scala su Intervalli) : struttura usata per codificare i fattori discala eliminandone parte percettivamente irrilevante.

sequenza decodificata: sequenza ricostruita da una forma compressa.SLOT: parte elementare della sequenza codificata. Nel layer I equivale a 4 Byte ; nei layer II e III a 1

Bytesoglia di mascheramento: funzione nei domini di frequenza e tempo che rappresenta il limite

inferiore dei segnali udibili dall'orecchio umano.sottobande: sotto divisione della banda del segnale audiosyncword: 12 bit usati per identificare l'inizio di un frame in una sequenza codificata MPEG.unità di accesso audio: più piccola parte della sequenza MPEG-Audio che può essere decodificata

singolarmente per ricostruire il segnale audio.

3.4. IL PROCESSO DI CODIFICA Layer IIIl codificatore si occupa di produrre la sequenza codificata dai campioni PCM

Fig. 3.1 Diagramma di flusso delle operazioni compiute dal codificatore perottenere la rappresentazione MPEG dei campioni PCM.

INGRESSO : segnale audio sotto forma di campioni PCM

USCITA : sequenza compressa secondo lo standard ISO-MPEG-Audio (successione di frame) .

L'algoritmo di codifica non è totalmente standardizzato e può variare riguardo a:

.. modello percettivo .. tabella di codifica dei livelli di quantizzazione .. tabella di codifica dei fattori di scala

Le quantità numeriche alla base della codifica MPEG_Audio sono :

SNR : Signal to Noise Ratio _ Differenza in dB tra il segnale ed il rumore di quantizzazione, èun valore sempre positivo ed in prima approssimazione assume valore di 6*B dove B è ilnumero di bit usati per quantizzare il segnale.Il valore di SNR dipende esclusivamente dal numero di bit usati per quantizzare il segnalee quindi, solo dal valore di bit allocation.

SMR : Signal to Mask Ratio _ Differenza in dB tra il segnale ed il valore di soglia dimascheramento. La soglia di mascheramento viene calcolata dal modello psicoacustico.Un valore positivo di SMR indica che il segnale è udibile, un valore negativo indica che ilsegnale non può essere udibile perché mascherato dalle altre componenti del segnale.

MNR : Mask to Noise Ratio _Differenza in dB tra il valore di maschera e rumore diquantizzazione.

Page 80: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-5

Al suo valore viene dato un significato importantissimo infatti qualitativamente unvalore negativo indica che nella banda il rumore di quantizzazione è udibile mentre unvalore positivo indica il completo mascheramento del rumore di quantizzazione.Quantitativamente indica rispettivamente il margine in dB per elaborazioni del segnale equanto il rumore di quantizzazione è udibile.

Tra queste tre quantità vale la relazione :

MNR = SNR - SMR

L'efficienza della codifica dipende principalmente dall'accuratezza dei calcoli del modello psicoacustico(che per il momento può essere visto come una sistema di calcolo che prende in ingresso i 1152campioni temporali e fornisce in uscita il valore SMR in dB per ogni banda e canale), lo standardpermette l'uso di un qualsiasi modello lasciando aperta la possibilità di aggiornare il codificatore conalgoritmi psicoacustici più accurati e efficienti che saranno disponibili in futuro.Si fa notare come ciò non pregiudichi il diventare obsoleto delle sequenze codificate con i precedentialgoritmi psicoacustici in quanto il processo di decodifica non dipende in nessun modo dal modellousato per la codifica.Ciò che deve fare il modello psicoacustico è comunque ben definito nel fornire il rapporto SMR (Signalto Mask Ratio o differenza in dB tra il massimo segnale e il minimo livello di mascheramento) per ognicanale e per ogni sottobanda.

MODELLO

PERCETTIVO

Ingresso di 1152

campioni PCMUscita 32 valori di SMR

Fig. 3.2 Rappresentazione schematica della funzione svolta dal modello percettivoper ogni canale monofonico.

La relazione esistente tra i valori SNR, SMR, MNR in ogni sottobanda può essere illustratagraficamente come segue:

Segnale

Maschera

Noise

SMR ( b_a)

MNR = SNR - SMR

SNR [quant]

Fig. 3.3 Diagramma dei valori qualitativamente ottimali di Segnale, Maschera eRumore.Nella figura si evidenzia il fatto che l'SMR. influenza direttamente il valoredella BIT_ALLOCATION e che l'SNR dipende unicamente dal numero di livellidi quantizzazione assegnati alla sottobanda.

Page 81: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-6

Dal valore di SMR si ricava la BIT_ALLOCATION sfruttando la considerazione che è del tutto inutilequantizzare su un numero di livelli che introduca un rumore di quantizzazione molto inferiore alrumore già presente (per caratteristica del segnale) in ogni sottobanda; dove per rumore si intendetutto il segnale sotto la soglia di mascheramento2.Infatti ogni segnale che è sotto la soglia di mascheramento non può essere percepito in nessun modoe quindi è irrilevante ai fini della riproduzione sonora.In tal senso può essere giustificata la quantizzazione dinamica dei campioni frequenziali che tiene ilRapporto Segnale Rumore (SNR) (funzione del numero di bit usati per la quantizzazione) dipendentedal valore tra Segnale e Maschera (SMR).È dunque sufficiente quantizzare i campioni in ogni banda con un numero di bit tale che

SNR > SMR

La qualità dell'audio ed il margine per compiere dell'editing audio è tanto maggiore quanto più ladifferenza MNR = SNR - SMR è grande e ciò dipende unicamente dal numero di bit disponibili percodificare i 1152 campioni ovvero dalla dimensione del FRAME (modalità audio e bitrate).

Una allocazione è ottima se riesce ad ottenere valori di MNR>0 per tutte le sottobande con segnaleudibile. Ovviamente dato che il Frame ha una dimensione fissa non è detto che si riesca a raggiungeretale situazione oppure se si riesce a raggiungerla può accadere che rimangono disponibili altri bit chepossono essere allocati in modo inoffensivo per aumentare ulteriormente il valore di MNR in tutte lesottobande.

Il numero di bit da usare per quantizzare i campioni (i valori di BIT_ALLOCATION) di ogni sottobandaviene trovato in aumento privilegiando la banda con minore rapporto MNR per ottenere un valore il piùpossibile costante tra tutte le sottobande e comunque cercando di renderlo positivo.

Si tenga presente che i modelli psicoacustici sebbene comuni a tutti e tre i layer, usano una diversaaccuratezza a seconda del layer in uso in quanto maggiore accuratezza implica maggiore complessità equindi costo dei dispositivi hardware per eseguire la codifica in tempo reale.

La sintassi di codifica elimina parte dell' irrilevanza del segnale audio tenendo presente che variazioniinferiori a 6dB sono pressoché impercettibili.

2Si ricorda che il rumore di quantizzazione diminuisce di circa 3dB in intensità per ogni bit in più usato per la quantizzazione.

Page 82: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-7

ALGORITMO DI CODIFICA

1 -Il banco di filtri ottiene la rappresentazione frequenziale dei campioni in ingresso mappata in 32sottobande equi ampie.

2 - Calcolo fattori di scala e indici di scalamento

3 - Il modello psicoacustico calcola la soglia di mascheramento e fornisce i valori di SMR per ognisottobanda

4 - Si calcolano i livelli di quantizzazione per i campioni di ogni sottobanda affinché il rumore diquantizzazione sia minimo (usando il risultato del modello psicoacustico).

5 - I campioni vengono normalizzati (divisi per il FATTORE DI SCALA)

6 - I campioni vengono quantizzati

7 - Le strutture dati vengono inviate ad un modulo che si occupa della loro organizzazione in un framee dell'aggiunta di informazioni di servizio (ad esempio un codice di rilevazione errori o dei datiausiliari) ottenendo la definitiva sequenza compressa secondo la sintassi MPEG.

8 - La sequenza di frame ottenuta all'uscita del decodificatore può essere memorizzata o trasmessa.

La complessità del codificatore dipende dal layer usato.

3.4.1. Diagramma di FlussoIl diagramma di flusso delle operazioni per la codifica è il seguente:

Page 83: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-8

Fig 3.4 Diagramma di flusso del codificatore MPEG_Audio layer IILe operazioni eseguite dal codificatore sono:

1.. Ingresso di 1152 campioni PCM2.. Mappatura dei campioni PCM nel dominio della frequenza in 32

sottobande con un banco di filtri (36 campioni per banda).3.. Trasformata di Fourier sui campioni PCM ottenendone una

rappresentazione frequenziale accurata in Bark per il modellopsicoacustico (1152 componenti frequenziali).

4.. Calcolo dei fattori di scala dei campioni in frequenza 5.. Calcolo SMR da parte del modello psicoacustico 6.. Allocazione dinamica dei bit sulle sottobande minimizzando l'MNR per

tutte le sottobande 7.. Codifica fattori di scala su intervalli con la struttura scfsi 8.. Normalizzazione e quantizzazione dei campioni in frequenza 9.. Formattazione dei dati10.. Produzione del frame codificato

Il diagramma di flusso indica come le operazioni di codifica possono essere eseguite in parallelo(purché sincronizzate) permettendo l'esecuzione del processo in tempo reale in tecnologia VLSI.

Nel seguito sono descritte le singole operazioni del codificatore.

3.4.2. Filtro Passa Alto in IngressoDato che non tutte le applicazioni prevedono di limitare il segnale in frequenza è opportuno che ilsegnale in ingresso al codificatore venga limitato alle frequenze superiori a 10 Hz.L'uso del filtro passa alto evita un'eccessivo e non necessario spreco di bit allocati alle bande in bassafrequenza aumentando la qualità della compressione audio, infatti l'orecchio umano non percepiscecome suoni le componenti del segnale con frequenza inferiore a 10 Hz.

3.4.3. Banco di Filtri di AnalisiIl banco di filtri si occupa di mappare i campioni dal dominio del tempo a quello della frequenza divisoin 32 sottobande.Il banco di filtri è campionato criticamente ovvero da 1152 campioni nel tempo che rappresentano 24ms di segnale ( a 48KHz) si ricavano 1152 componenti frequenziali divise in 32 sottobande equiampie

Ampiezza banda

F

Hzs

_ = = =232

2400032

750

Il processo di analisi spettrale per il calcolo dei campioni frequenziali di sottobanda procede nel modoseguente :

Page 84: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-9

1.. Inizializzazione vettore X[0..511] con valori nulli:FOR (i=0 ; i<512 ; i++)

X[i]=0

2.. Shifting dei valori di X in avanti di 32 posizioniFOR (i=511 ; i>=32 ; i--)

X[i]=X[i-32]

3.. Ingresso nelle prime 32 posizioni di X di 32 nuovi campioni PCMFOR (i=0 ; i<32 ; i++)

X[i]=Prossimo_campione_PCM

4.. Finestratura dell'array con un vettore C[0..511] con coefficienti tabulati ottenendo unvettore ZFOR (i=0 ; i<512 ; i++)

Z[i]=C[i]*X[i]

5.. Calcolo 64 valori Y[i]:FOR(i=0 ; i<64 ; i++)

Y i Z i jj

= +=

∑ 640

7

6.. Calcolo di 32 campioni frequenziali S[0..32] via matrixingFOR(i=0 ; i<32 ; i++)

S i M i k Y kk

==∑ , *

0

63

i= 0..31

i coefficienti della matrice M[i,k] sono:

FOR(i=0 ; i<32 ; i++)FOR(k=0 ; k<64 ; k++)

[ ] ( )( ) \64

1612cos,

−+=

πkikiM

7.. Uscita di 32 campioni in sottobanda S[0..31]

8.. Ripetere dal punto 2 per 36 volte ottenendo 36*32=1152 campioni di sottobanda

3.4.4. FFT (Fast Fourier Transform)La FFT può essere eseguita in parallelo ai banchi di filtri e si occupa di ottenere una rappresentazionefrequenziale accurata del segnale tale da poter essere utilizzata dal modello psicoacustico.Il modello, usando la rappresentazione frequenziale calcola il livello di componenti mascherate in ognisottobanda.I parametri per il calcolo della FFT dipendono dal modello psicoacustico ed un esempio è riportato nelCapitolo 4 "Modelli percettivi".

3.4.5. Modello PsicoacusticoIl modello psicoacustico calcola la distanza in dB tra segnale e maschera (SMR) usato per l'allocazionedi bit e determinare il numero di livelli di quantizzazione.I modelli psicoacustici suggeriti da MPEG sono due:

Il modello 1 usa una FFT di dimensione 1152 campioni.

Page 85: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-10

Il modello 2 esegue il calcolo in due successioni di 576 campioni ognuna, il maggiore deidue risultati ottenuti è usata come soglia di mascheramento.

MPEG consiglia l'uso del modello 1 per i layer I e II e del modello 2 per il layer III.Ogni modello fornisce come risultato l'SMR (signal to mask ratio) per ogni sottobanda.

I canali di un file stereo vengono analizzati in modo indipendente.

I modelli psicoacustici non sono soggetti a standardizzazione mentre invece è sottoposto a standardl'ingresso e l'uscita di tale blocco funzionale.Tali modelli psicoacustici sono trattati più approfonditamente nel capitolo 4 "Modelli percettivi".

3.4.6. Codifica Fattori di ScalaIl calcolo dei fattori di scala di ogni sottobanda viene eseguito ogni 12 campioni frequenziali successiviottenendo così 3 valori per sottobanda.Il massimo tra questi 12 campioni viene usato come fattore di scala e ne viene trovato l'indice nellatabella Tab.2.4 (corrispondenza tra indici di scalamento e fattori di scala) di quantizzazioneprendendo il valore appena superiore (ovvero l'indice minore).Per ridurre la quantità di bit necessari alla codifica di queste informazioni i fattori di scala entro 6 dBvengono codificati con l'uso della struttura SCFSI.

3.4.7. Calcolo Struttura Codifica Fattori di Scala Su IntervalliLa scelta di quanti e quali fattori di scala trasmettere (1,2 o 3) dipende dalla loro differenza e dalraggruppamento di quelli entro 6 dB (+/- 3dB) .Viene usata la tabella SCFSI indicante la quantità e la sequenza di informazioni trasmesse.Gli SCFSI hanno dimensione di 2 bit e vengono calcolati per tutte le bande che hanno bit allocati.

Gli SCFSI vengono calcolati secondo i passi indicati e si sfrutta il fatto che la tabella dei fattori di scala èquantizzata per valori equidistanti di 2 dB.

Il calcolo della struttura scfsi procede come di seguito:

1.. calcolo dei coefficienti DSFC1 e DSFC2 di differenza tra i 3 fattori di scala di ognisottobanda:

DSFC 1 =SCF1 - SCF2DSFC 2= SCF2 - SCF3

Tab 3.1 coefficienti per il calcolo della struttura SCFSI.

2.. in base alle differenze si assegnano le classi

VALORE DSFC CLASSE

DSFC<=-3 1-3<DSFC<0 2

DSFC=0 30<DSFC<3 4DSFC>=3 5

Tab 3.2 In base ai coefficienti della tabella precedente si trovano le classi diappartenenza

Page 86: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-11

3.. dalla combinazione delle classi di appartenenza per DSFC1 e DSFC2 si trova qualiscalefactor trasmettere ed in che ordine.

CLASSEDSFC 1

CLASSE

DSFC 2

SCALEFACTORTRASMESSI

VALORE SCFSI NUMERO DISCALEFACTOR

TRASMESSI

1 1 1 2 3 0 31 2 1 2 2 3 21 3 1 2 2 3 21 4 1 3 3 3 21 5 1 2 3 0 32 1 1 3 3 1 22 2 1 1 1 2 12 3 1 1 1 2 12 4 4 4 4 2 12 5 1 1 3 1 23 1 1 1 1 2 13 2 1 1 1 2 13 3 1 1 1 2 13 4 3 3 3 2 13 5 1 1 3 1 24 1 2 2 2 2 14 2 2 2 2 2 14 3 2 2 2 2 14 4 3 3 3 2 14 5 1 2 3 0 35 1 1 2 3 0 35 2 1 2 2 3 25 3 1 2 2 3 25 4 1 3 3 3 25 5 1 2 3 0 3

Tab. 3.3 Corrispondenza tra i FATTORI DI SCALA e la struttura per la loro codifica:SCFSI.I valori 1,2,3,4 nella colonna di fattori di scala trasmessi indicano ilprimo, secondo e terzo mentre il numero 4 indica il massimo tra i trefattori di scala che cadono entro 6 dB.

Una volta eseguita la codifica, di tutti i fattori di scala si trasmettono solo quelli indicati nella colonnaSCALEFACTOR TRASMESSI ed il relativo SCFSI.

3.4.8. Allocazione Dinamica BitIl codificatore dopo avere calcolato le strutture SCFSI, FATTORI DI SCALA, CAMPIONI FREQUENZIALIadatta la dimensione del FRAME al BITRATE trovando il numero di bit disponibili per la codifica deicampioni frequenziali.Tale numero è ottenuto dalla dimensione del FRAME meno lo spazio occupato da:

Page 87: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-12

STRUTTURA DIMENSIONE COMMENTO

Header 16 bit

[parola CRC] [16 bit]Parola opzionale la cui presenza dipende dal valore delbit CRC dell'Header.

Bit Allocation NBAL BitLa sua dimensione è fissa e determinata dallaparticolare tabella di livelli di quantizzazione (similealla Tab. 2.3) ovvero dalle sottobande allocabili e dailivelli di quantizzazione possibili.

Fattori di scala variabileL'occupazione di canale dei fattori di scala dipende dailoro valori (che determinano i valori di SCFSI).

SCFSI variabileStruttura di codifica dei fattori scala la cui dimensionedipende unicamente dal valore di bit allocation inquanto l'scfsi per una data sottobanda è presente se esolo se la relativa bit allocation è diversa da zero.

[Ancillary Data] [fissa/variabile]Il numero di bit occupati è a discrezione di ogniparticolare applicazione e può essere variabile daframe a frame oppure fisso per tutta la sequenza.

Tab. 3.4 Occupazione di canale delle strutture di codifica MPEG layer II.

La procedura di allocazione dei bit cerca di rendere costante la differenza in dB tra rumore diquantizzazione e rumore mascherante per tutte le sottobande (MNR).Il processo prosegue in modo iterativo aumentando l'allocazione per la banda con MNR minore fino araggiungere la dimensione del frame.

L'allocazione dinamica di bit sulle 32 sottobande dipende dunque da:

dimensione del FRAMEvalore dei CAMPIONI prodotti dal banco di filtriSMR calcolato dal modello psicoacusticoquantità di bit per l'HEADERquantità di bit per SCFSIquantità di bit per i FATTORI DI SCALAquantità di bit per CRCquantità di bit per i DATI AUSILIARI

I bit rimanenti vengono suddivisi tra le sottobande per quantizzare i campioni frequenziali in modo diottimizzare le necessità di mascheramento dell'audio.

Il calcolo numerico dei bit disponibili per la quantizzazione viene fatto come di seguito:

Dimensione del frame:Numero SLOT = 144 bitrate/frequenza campionamento (layer II )

Dimensione header:Fissa 32 bit = 4 SLOT layer II

Dimensione CRCFissa 16 bit

Dimensione struttura scfsiSomma su tutte le sottobande con bit_allocati

Somma su tutti i canali + 2 Bit

Page 88: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-13

Dimensione struttura fattori di scalaSomma su tutte le sottobande con bit allocati

Somma su tutti i canali 6*(numero fattori di scala codificati con scfsi)

Dimensione dati ausiliariDefinita dal progettista della particolare applicazione

Il numero di bit che rimangono disponibili per quantizzare tutti i campioni sulle sottobande in cui labit_allocation è diversa da zero è di adb:

adb = Dimensione frame(in bit) - (dimensione HEADER +dimensione CRC +dimensione SCFSI +dimensione SCALEFACTOR +dimensione DATI AUSILIARI )

Il principio usato da MPEG per l'allocazione di bit cerca di rendere costante il rapporto maschera-rumore(MNR) su tutte le sottobande con il vincolo di non eccedere la quantità di bit disponibili (adb) (neidocumenti originali si indica erroneamente che viene reso minimo l'MNR totale).Per tutte e 32 le sottobande si calcola MNR SNR SMRsb sb sb= −

La procedura di allocazione procede iterativamente incrementando (se possibile) il numero di bitallocati alla banda più rumorosa (con MNR minimo).

Si allocano zero bit a tutti i campioni e si ripetono i passi seguenti

1.. Calcolo minimo MNR tra i 32

2.. Incremento indice di quantizzazione secondo la Tab 2.3 (Corrispondenza traindici di bit_allocation e livelli di quantizzazione).

3.. Calcolo nuovo MNR per questa sottobanda

4.. Ricalcolo adb

5.. Ripetere fino a che qualsiasi incremento rende negativo il numero adb

Calcolato l'SMR il valore dell' MNR varia solo in funzione dell'SNR che è dato tabulato.

Page 89: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-14

LIVELLIQUANTIZZAZIONE

SNR

0 0.003 7.005 11.007 16.009 20.8415 25.2831 31.5963 37.75

127 43.84255 49.89511 55.931023 61.962047 67.984095 74.018191 80.03

19383 86.0532767 92.0165535 98.01

Tab. 3.5 Valori di SNR in funzione dei livelli di quantizzazione per il layer II

3.4.8.1. Diagramma di FlussoIl diagramma di flusso della procedura di allocazione dei livelli di quantizzazione3 alle sottobande è:

MODO=

Joint_stereoCalcola js_bound

bbal=Numero bit per allocation

MNR=SNR-SMR

seli=bit richiesti per struttura SCFSIbscf=bit richiesti per fattori di scala

berr=bit richiesti per CRCbanc=bit richiest per PAD

bspl=bit richiesti per campioni frequenziali

Trova banda con MNR minimo

Incrementa di 1 il numero di bitallocati a quella banda

Ripeti finchè bit_disponibili < (berr+banc+bbal+bspl+seli+bscf)

SI

NO

3procedura che nel software è definita in encode.c :II_main_bit_alloc( )

Page 90: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-15

Fig. 3.5 Rappresentazione schematica dell'algoritmo seguito da MPEG perl'allocazione dei livelli di quantizzazione alle sottobande

Si fa notare che la procedura cerca di allocare bit in modo che si raggiunga un MNR il più possibilecostante e positivo su tutta la larghezza di banda del segnale.Ci si può quindi aspettare che a meno del passo di un salto di quantizzazione (che dipende dallatabella dei livelli di quantizzazione) l'MNR sia costante su tutte le sottobande (se bitrate rendedisponibile un sufficiente numero di bit).

3.4.9. Normalizzazione e Quantizzazione Campioni FrequenzialiOgnuno dei 12 campioni di ogni sottobanda viene normalizzato con il valore di FATTORE DI SCALAdella Tab. 2.4 (corrispondenza tra indici di scalamento e fattori di scala)

..xvalore capione

valore fattore di scala=

__ _ _

I campioni normalizzati (x) vengono quantizzati (y) in base al numero di livelli della bit allocation:

.. y = A*x+B

.. si considerano solo gli N bit più significativi di y

.. si inverte il bit più significativo (MSB) di y

I coefficienti A e B sono dati dalla tabella che segue mentre N rappresenta il numero di bit necessari percodificare il numero di livelli (steps).

N.LIVELLI QUANTIZZAZIONE

COEFFICIENTEA

COEFFICIENTEB

3 0.750000000 -0.2500000005 0.625000000 -0.3750000007 0.875000000 -0.1250000009 0.562500000 -0.43750000015 0.937500000 -0.06250000031 0.968750000 -0.03125000063 0.984375000 -0.015625000

127 0.992187500 -0.007812500255 0.996093750 -0.003906250511 0.998046875 -0.0019531251023 0.999023438 -0.0009765632047 0.999511719 -0.0004882814095 0.999755859 -0.0002441418191 0.999877930 -0.000122070

19383 0.999938965 -0.00006103532767 0.999969482 -0.00003051865535 0.999984741 -0.000015259

Tab 3.6 Coefficienti usati nella formula di quantizzazione dei campionifrequenziali

L'inversione del bit più significativo (MSB) è fatta per ridurre la probabilità del formarsi della paroladi tutti '1' che potrebbe essere interpretata come una syncword in decodifica.

NOTA :Nei documenti originali si indica erroneamente che l'inversione dell'MSB evita ilformarsi della parola di tutti '1'.

Page 91: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-16

3.4.10. Protezione ErroriPuò essere usata opzionalmente per aumentare l' affidabilità del sistema di codifica.

L' influenza in ascolto di bit errati dipende fortemente dal significato attribuito all'informazionecodificata.Ad esempio la distorsione del bit meno significativo di un campione è molto meno catastrofica delladistorsione del bit più significativo di un fattore di scala.

Ricerche sul peso degli errori nella qualità soggettiva del segnale codificato hanno concluso che èsufficiente proteggere solo la parte di dati audio ed al limite i bit più significativi dei campioni in bassafrequenza per mantenere la qualità del segnale anche in presenza di interferenze.

Se il bit di protezione errori vale 1 viene calcolato anche il codice di rilevazione errori CRC a sedici bitcostruito secondo il già citato polinomio

G(x)= x16+x15+x2+1

Il CRC permette la rilevazione di errori su:

.. 16 bit header da BITRATE a ENFASI

.. un certo numero di dati audio corrispondenti ai bit che si trovano all'inizio del frameaudio ed il cui numero varia da 142 a 42 a seconda della frequenza di campionamentoe dal bitrate

Fig 3.6 Diagramma di flusso della costruzione del CRC

3.5. IL PROCESSO DI DECODIFICA Layer IISi occupa di tradurre la sequenza codificata nella forma PCM.

Fig. 3.7 Diagramma di flusso del decodificatore MPEG_Audio

Page 92: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-17

INGRESSO : sequenza compressa secondo lo standard ISO-MPEG-Audio (successione di frame) .

USCITA : segnale audio sotto forma di campioni PCM

Il processo di decodifica è indipendente dal modello psicoacustico usato in fase di codifica e consisteessenzialmente nell'applicare le formule di dequantizzazione e denormalizzazione per ottenere glioriginali campioni di sottobanda che devono essere riportati al dominio del tempo.

ALGORITMO DI DECODIFICA:

1 - La sequenza inviata al decodificatore viene demultiplexata

2 - Se è usata la protezione errori se ne verifica la consistenza

3 - Se si sono verificati errori si eseguono operazioni per minimizzarne l'effetto

4 - I campioni vengono dequantizzati

5 - I campioni vengono denormalizzati

6 - I campioni vengono riportati nel dominio del tempo ottenendone la rappresentazione PCM.

La complessità del decodificatore è inferiore a quella del codificatore dato che non dovrà eseguirenessuna analisi percettiva del segnale .

3.5.1. Diagramma di FlussoIl decodificatore è caratterizzato da una bassa complessità e quindi non richiede una alta potenza dicalcolo.

Le operazioni che deve svolgere sono:.. deformattazione dati dal frame.. dequantizzare e denormalizzare i campioni frequenziali.. ottenere la rappresentazione nel dominio del tempo dei campioni frequenziali

Page 93: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-18

Fig.3.8 Diagramma di flusso del decodificatore MPEG_Audio layer II

Nel seguito si analizzano i singoli passi.

3.5.2. Sincronizzazione FrameLa sincronizzazione è necessaria nel processo di decodifica per avere in ingresso esattamente un frame.La sincronizzazione viene fatta cercando la parola "1111 1111 1111" sulla sequenza MPEG-Audio.In caso di collisione dei dati codificati con la parola di sincronizzazione si stima la distanza tra duesyncword successive e si verifica che effettivamente la parola "1111 1111 1111" sia la realesincronizzazione.Talvolta alcuni bit dell' header sono noti e possono essere usati per estendere la parola disincronizzazione.Ad esempio se si conoscono i bit ID, LAYER, CRC, BITRATE, ...... si può cercare una syncword di 20 opiù bit ottenendo maggior sicurezza.Lo standard impone che la dimensione del frame (e quindi la distanza tra syncword successive) nellayer II sia costante e determinato unicamente dalla frequenza di campionamento e dal bitrate secondola formula:

NBitrate

Freq Campslot =144 *

. .

Se il risultato della precedente non è un numero intero è richiesto l' uso del BIT DI PADDING cheaumenta le dimensioni di uno slot su alcuni frame.

Se i bit di BITRATE hanno valore "0000" il bitrate NON È SPECIFICATO ed è ottenuto dalla distanza trasyncword successive (che però deve essere costante) e dalla presenza o meno dello slot di padding.

Una volta trovata la sincronizzazione, viene letto tutto il frame audio e si interpreta la sequenza di bit inmodo coerente con le specifiche del codificatore.

3.5.3. Decodifica HeaderL'header viene ottenuto dai primi 32 bit del frame (di cui i primi 12 sono la syncword).Alcuni bit dell'header sono di importanza fondamentale come i bit di modo e estensione modalità.

Page 94: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-19

Se il modo è 01 cioè joint stereo viene attribuito significato anche ai 2 bit di MODE_EXTENSION cheindicano il numero e quali bande sono in joint stereo.

3.5.4. Decodifica CRC ErroriSe il bit di protezione errori è vale '1' viene isolato anche il codice di rilevazione errori.Il metodo per la verifica del CRC confronta il codice letto dalla sequenza compressa con uno nuovo,costruito seguendo gli stessi criteri.Se i due CRC sono diversi si è verificato un errore.Notare che il sistema è abbastanza robusto perché sia sufficiente la rilevazione in quanto se ci sonoerrori viene ripetuto l'ultimo frame corretto oppure non viene prodotto nessun suono e grazie allapiccola granularità temporale (un frame equivale a 24 ms) il risultato è pressoché impercettibile per unoo due frame consecutivi errati.La codifica MPEG è per le sue caratteristiche applicabile sia per la trasmissione che per lamemorizzazione rendendo possibile l'utilizzo di un Personal Computer come efficiente stazione di lavoroper l'editing audio.

3.5.5. Decodifica Bit AllocationPer ogni sottobanda dalla Tab 2.3 (corrispondenza tra indice di bit allocation e livelli diquantizzazione) si conosce la dimensione della bit allocation in quanto fissa e tabulata (NBAL :Numero di Bit Allocati).Dai bit di MODO e di ESTENSIONE si ha il numero di canali e per quali sottobande.Per la decodifica della bit_allocation si fa riferimento alla relativa tabella (di struttura simile alla Tab.2.3) determinata dal bitrate e dalla frequenza di campionamento.

La decodifica vera e propria procede poi in due passi:

1.. viene trovato NBAL (2,3 o 4) per ogni sottobanda dalla tabella2.. in base al valore di NBAL si leggono un eguale numero di bit dalla sequenza codificata

che vanno a formare l'indice di colonna della tabella. Si ha così il numero di livelli diquantizzazione (NLEVEL)

3.5.6. Decodifica SCFSILe informazioni SCFSI (2 Bit) indicano quanti sono i fattori di scala di ogni sottobanda presenti soloper le bande con bit allocati.Il valore di scfsi condizionerà il numero di fattori di scala da leggere per ogni sottobanda e comeinterpretarli sui tre valori di ogni granulo (12 campioni della stessa sottobanda).

3.5.7. Decodifica Fattori di ScalaPer ogni sottobanda con bit allocati il numero di fattori di scala da leggere dipende dal valorecontenuto nella struttura scfsi (Struttura Codifica Fattori di Scala su Intervalli)

SCFSINUMERO

SCALEFACTORLETTI

SCALEFACTOR1

SCALEFACTOR2

SCALEFACTOR3

00 3 scalefactor primo secondo terzo01 2 scalefactor primo uguale al primo secondo10 1 scalefactor primo uguale al primo uguale al primo11 2 scalefactor primo secondo uguale al secondo

Tab 3.7 Numero di Fattori di Scala trasmessi in funzione del valore di SCFSI

I 6 bit così assegnati assumono il significato di indice della Tab 2.4 (Corrispondenza tra indici discalamento e fattori di scala) che restituisce il valore numerico compreso tra 0 e 1 da usare per ladenormalizzazione.

Page 95: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-20

3.5.8. Dequantizzazione CampioniLa riquantizzazione è la prima operazione per riportare i campioni alla forma originale PCM.I campioni vengono isolati dal resto del FRAME e vengono letti avendo cura di riseparare i campioniraggruppati (cioè per cui la bit_allocation indica un numero di 3,5,9 livelli) usando l'algoritmo seguente:

c : valore dei tre campioni raggruppatis[0..2] : valori dei tre campioni dopo l'estrazione dal gruppo

FOR (i=0 ; i<3 ; i++) {s[ i ] = c MOD (numero livelli) c = c DIV (numero livelli) }

Il numero di bit occupati da ogni campione segue direttamente dal numero di livelli di quantizzazione,per ogni campione l'MSB deve essere invertito per riavere il valore originale

Riottenuti tutti i 1152 campioni, si esegue la loro riquantizzazione calcolando: s C s D' ' '''* ( )= +dove s"' è il valore quantizzato e s" il dequantizzato; i coefficienti C e D dipendono dal numero di livellidi quantizzazione dalla seguente tabella:

PASSIQUANTIZZAZIONE

COEFFICIENTEC

COEFFICIENTED

GROUPING NUMEROCAMPIONI

BIT PERCAMPIONE

3 1.33333333333 0.500000000 si 3 55 1.60000000000 0.500000000 si 3 77 1.14285714286 0.250000000 no 1 39 1.77777777777 0.500000000 si 3 10

15 1.06666666666 0.125000000 no 1 431 1.03225806452 0.062500000 no 1 563 1.01587301587 0.031250000 no 1 6127 1.00787401575 0.015625000 no 1 7255 1.00392156863 0.007812500 no 1 8511 1.00195694716 0.003906250 no 1 9

1023 1.00097751711 0.001953125 no 1 102047 1.00048851979 0.0009765625 no 1 114095 1.00024420024 0.00048828125 no 1 128191 1.00012208522 0.00024414063 no 1 1319383 1.00006103888 0.00012207031 no 1 1432767 1.00003051851 0.00006103516 no 1 1565535 1.00001525902 0.00003051758 no 1 16

Tab 3.8 Coefficienti usati per la dequantizzazione in funzione delnumero di livelli di quantizzazione.

3.5.9. Denormalizzazione CampioniI campioni dequantizzati vengono portati alla loro forma originaria usando il fattore di scala.La denormalizzazione consiste nell'eseguire per tutti i campioni il prodotto:

( ) \*__ ''' sscaladifattores =

Dove s' è il valore dequantizzato e denormalizzato e s'' è il valore dequantizzato.

3.5.10. Filtro di Sintesi di SottobandaIl filtro di ha il compito di trasformare i campioni di sottobanda denormalizzati e dequantizzati nellaforma PCM.

Page 96: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-21

Dai campioni di sottobanda si ottengono 1152 campioni PCM nel dominio del tempo che rappresentanoil segnale audio originario prima della codifica.

In realtà ciò che si ottiene non è proprio la copia speculare del segnale ma per effetto della codificauna rappresentazione che in ascolto risulterà tanto più simile all'originaria tanto più:

.. Il bitrate disponibile alla codifica è alto

.. La qualità dell'audio originario era buono

.. Il modello percettivo usato nella codifica era accurato

Il confronto tra file originale e decodificato possono risultare diversi se confrontati numericamente.Per il confronto si consideri anche che il processo di co-decodifica impiegando dei filtri introduce uncerto ritardo.

I passi seguiti per il filtro di sintesi sono i seguenti:

Page 97: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 3 "Specifiche tecniche MPEG_Audio" Davide Cilano

Pag. 3-22

1.. Inizializzazione vettore V[0..1023] con valori nulli:FOR (i=0 ; i<1024 ; i++)

V[i]=0

2.. Inizializzazione vettore S[0..31] con i valori dei campioni:FOR (i=0 ; i<32 ; i++)

S[i]=prossimo_campione_frequenziale

3.. Shifting di 64 campioni del vettore V verso l'altoFOR (i=1023 ; i>=0 ; i--)

V[i]=V[i-64]

4.. Matrixing:

FOR (i=0 ; i<640 ; i++)

V i N i k S kk

==

∑ , *0

31

dove i valori di N[i,k] sono dati da :

FOR (i=0 ; i<64 ; i++)FOR (k=0 ; k<32 ; k++)

[ ] ( )( ) \64

1216cos,

++=

πkikiN

5.. Calcolo del vettore U[0..511]:FOR (i=0 ; i<8 ; i++)

FOR (j=0 ; i<32 ; j++)U[64i+j]=V[128i+j]U[64i+32+j]=V[128i+96+j]

6.. Finestratura con 512 coefficienti D[0..511] (tabulati) per calcolare ilvettore W[0..511]FOR (i=0 ; i<512 ; i++)

W[i]=U[i]*D[i]

6 Calcolo 32 campioni temporali S[0..32]FOR (j=0 ; j<32 ; j++)

S j W j ii

= +=∑ 32

0

15

7 Uscita 32 campioni temporali

8 Ripetere per 36 volte dal punto 2 ottenendo 32*36=1152 campionitemporali

Page 98: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4MODELLI PERCETTIVI

4.1.INTRODUZIONE ................................................................................................................................................ 14.2.MODELLO PSICOACUSTICO 1...................................................................................................................... 1

4.2.1.ALGORITMO DI CALCOLO ............................................................................................................. 24.2.1.1... FFT .............................................................................................................................. 34.2.1.2... Determinazione Spl (livello segnale) ................................................................... 34.2.1.3... Confronto Soglia in Quiete (statica) .................................................................... 44.2.1.4... Identificazione delle Componenti Tonali e Non Tonali .................................... 4

4.2.1.4.1.... Massimo Locale........................................................................... 54.2.1.4.2.... componenti Tonali ...................................................................... 54.2.1.4.3.... componenti Non Tonali ............................................................. 5

4.2.1.5... Decimazione delle Componenti Tonali e Non Tonali........................................ 64.2.1.6... Calcolo della Soglia di Mascheramento Individuale ....................................... 64.2.1.7... Calcolo della Soglia di Mascheramento Globale.............................................. 84.2.1.8... Determinazione della Soglia Minima di Mascheramento ................................ 84.2.1.9... Calcolo del Rapporto Segnale-Maschera ........................................................... 9

4.2.2.Accuratezza del Modello.................................................................................................................. 94.3.CENNI MODELLO PSICOACUSTICO 2........................................................................................................ 94.4.RELAZIONE TRA SMR, SNR E MNR.............................................................................................................. 104.5.RISULTATI........................................................................................................................................................... 12

Nel capitolo vengono descritti i modelli percettivi proposti da MPEG1 per il calcolo della soglia dimascheramento, si illustra il funzionamento e le specifiche del primo dei due modelli riportati neidocumenti originali [MPEG], che è consigliato per l'uso con il layer II.Il modello psicoacustico 2 è invece indicato per l'uso con il layer III ed è introdotto solosommariamente nelle specifiche distribuite da MPEG.

4.1.INTRODUZIONEL' efficienza della codifica MPEG_Audio dipende dall'accuratezza del modello psicoacustico.Il modello psicoacustico riceve in ingresso gruppi di 1152 campioni PCM (384 per il layer I) e forniscein uscita il valore numerico in deciBel della distanza tra Segnale e curva di mascheramento (SMR) perognuna delle 32 sottobande e per ogni canale monofonico.

Ingresso campioni PCMdel Frame Audio Modello Psicoacustico

Uscita di 32 valoridi SMR

subband

1Modelli percettivi che sono identificati con il nome di Modello psicoacustico 1 e Modellopsicoacustico 2.

Page 99: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-2

Fig. 4.1 Il modello psicoacustico è soggetto a standardizzazione solo riguardo aidati in ingresso ed ai risultati in uscita.

La rappresentazione con un modello matematico dell'apparato uditivo è possibile solo grazie alle recentiscoperte in campo psicoacustico che hanno permesso di esprimere con formule il comportamento degliorgani umani coinvolti nella percezione sonora2.Rilevanti sono stati soprattutto gli studi di Zwicker che hanno portato dapprima all'identificazione dellebande critiche e poi alla espressione della funzione di mascheramento ovvero alle iterazioni tra i toni diun segnale in funzione di: frequenza, intensità e tempo.La possibilità di eseguire tali calcoli in tempo reale ne ha permesso l'applicazione alla codifica MPEG.

4.2.MODELLO PSICOACUSTICO 1Il modello percettivo stima la soglia di mascheramento rappresentando i 1152 campioni di ogni FRAMEnel dominio della frequenza usando una FFT "ad hoc" per ottenere la rappresentazione su cui eseguireuna analisi psicoacustica sufficientemente accurata.

La complessità introdotta per ottenere la necessaria risoluzione in frequenza interessa solo ilcodificatore e non il decodificatore.

L'algoritmo di calcolo è piuttosto artificioso è un buon compromesso tra accuratezza dei calcoli ecomplessità algoritmica.

4.2.1.ALGORITMO DI CALCOLOL'algoritmo esegue una analisi psicoacustica delle componenti frequenziali del segnale e fornisce inuscita il valore SMR per ogni sottobanda e ogni canale del segnale audio.Il valore SMR è dato dalla differenza tra il massimo livello del segnale ed il minimo della soglia dimascheramento in ogni sottobanda, l'accuratezza del calcolo dipende dal layer in uso.

2l'argomento è trattato nel Capitolo 2 "Percezione del suono"

Page 100: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-3

Banda N-1 Banda N Banda N+1

dB SPL

Minimo della soglia nella banda

Massimo segnale nella banda

SMRBanda N

Funzionedimascheramento

Soglia staticaSoglia statica Soglia statica A

B

C

= D

EF

Funzionedi

eccitazioneG

Fig. 4.2 Rappresentazione schematica del calcolo dell'SMR nella generica bandaN:A - funzione di mascheramentoB - minimo della funzione di mascheramentoC - minimo della soglia staticaD - massimo tra i due valori dei punti B e CE - massimo livello del segnaleF - valore di SMR.G - impulso di eccitazione

Il valore di SMR serve per stabilire la quantità di bit necessari per quantizzare i campioni di sottobandasfruttando il fatto che è percettivamente ininfluente ottenere un livello di SNR superiore al valore diMNR.

Nel modello psicoacustico 1 il calcolo dell' SMR procede come di seguito:

1.. Calcolo della FFT per la rappresentazione frequenziale dei campioni PCM2.. Calcolo livello del segnale (in deciBel SPL) in ogni sottobanda3.. Confronto con la soglia statica in quiete (tabulata)4.. Identificazione delle componenti tonali (simili al seno) e non tonali (simili a rumore)5.. Decimazione dei toni di mascheramento per ottenerne solo i rilevanti6.. Calcolo soglia di mascheramento individuale per ogni componente spettrale7.. Calcolo soglia globale8.. Calcolo minimo della soglia di mascheramento in ogni sottobanda9.. Calcolo dell'SMR in ogni sottobanda.

Di seguito vengono esaminati dettagliatamente tutti i passi facendo riferimento alla frequenza dicampionamento di 48 KHz3 al layer II.

4.2.1.1... FFTLa soglia di mascheramento viene calcolata stimando la densità di potenza dello spettro ottenuto dauna FFT a 512 punti per il layer I e 1024 per il layer II e III.La FFT viene calcolata direttamente sui campioni audio PCM servendosi di una finestratura di Hann.

3La frequenza di campionamento influenza solo il contenuto di alcune tabelle di coefficienti mentrenon incide in nessun modo sul procedimento di calcolo.

Page 101: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-4

Per avere una coincidenza temporale i valori di bit_allocation ed i corrispondenti campioni in frequenza,i campioni PCM che entrano nella FFT devono essere ritardati.

1 .. Il ritardo del filtro di analisi è di 256 campioni ovvero 5.3 msec a 48 KHzcorrispondente ad uno scorrimento di finestratura di 256 campioni.

2.. La finestratura di Hann deve coincidere con i campioni in sottobande del Frame. Per illayer I corrisponde ad un ulteriore scorrimento di 64 campioni, per il layer II è unoscorrimento in diminuzione di 64 campioni.

Specifiche FFT:

Layer I Layer II

Dimensione trasformata 512 1024Dimensione finestra

32.0KHz 16ms 32ms 44.1KHz 11.6ms 23.2ms 48.0KHz 10.67ms 21.3ms

Risoluzione in frequenza fs/512 fs/1024

Densità di potenza dello spettroX k

nh l s l e dB

jklN

l

N

( ) log ( ) ( )=−

=

∑101 2

0

1 π

k= 0..N/2

Coefficienti finestra di Hann

−−=

12cos(1

38

21

)(N

iih π

0< i < N-1

Tab 4.1 Specifiche tecniche della FFT per l'analisi frequenziale usata nel calcolodella soglia di mascheramento

Il risultato della FFT viene normalizzato al livello di 90,309 dB SPL (Sound Pressure Level), ovvero ilmassimo valore della FFT viene fatto corrispondere a questo riferimento.

4.2.1.2... Determinazione Spl (livello segnale)In ogni sottobanda l'SPL viene calcolato sommando le componenti spettrali:

3090,9010101)1(16

16

10 309.90)(10

' +

= ∑

−+−

n

n

kXsb LogL

( )[ ]dBscfLMAXL MAXsbsb 1032768*log20,' −=

La sommatoria della prima espressione calcola i contributi in deciBel di tutte le eccitazioni presenti nellasottobanda, 512 / 32 = 16.

L'espressione scfMAX esprime per il layer II il massimo fattore di scala tra i tre della sottobanda, k è l'indice della linea spettrale e X(k) è la sua intensità.Ne segue che come valore di eccitazione viene tenuto il livello massimo tra quello delle eccitazioni e delsegnale, compatibilmente con quanto esposto al capitolo 1.2 "La percezione del suono".

4.2.1.3... Confronto Soglia in Quiete (statica)La soglia in quiete ( LTq ) rappresenta l'intensità minima udibile dall'orecchio umano in funzione dellafrequenza. Dato che la sua forma è invariante i valori numerici di soglia statica sono tabulati infunzione della frequenza di campionamento e del layer per ogni linea spettrale considerata nell'analisipsicoacustica.

Page 102: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-5

Viene usato un valore di scarto di -12dB per applicazioni con bitrate superiore a 96Kb/sec. per canalemonofonico.

4.2.1.4... Identificazione delle Componenti Tonali e Non TonaliÈ una operazione necessaria per l'analisi psicoacustica del segnale in quanto le componenti tonali enon tonali forniscono contributi differenti al formarsi della soglia di mascheramento.

La caratteristica di tonalità dipende dalla localizzazione frequenziale in quanto l'orecchio umano analizzail segnale diviso in bande critiche, e, come già visto, le bande critiche hanno una ampiezza variabile infrequenza.La larghezza delle bande critiche assume valori da 0.1KHz per basse frequenze fino a più di 4KHz allealte.

Le componenti TONALI vengono fatte corrispondere ai massimi globali dello spettro (ottenuto dallaFFT) entro un certo intervallo di frequenza.

L'intervallo di frequenza entro cui verificare se un massimo locale è anche globale e quindi identificauna componente tonale dipende dalla frequenza di campionamento, dal layer e dalla sualocalizzazione spettrale:

FREQUENZACAMPIONAMENTO

LAYER LARGHEZZAINTERVALLO

FREQUENZA

32 KHZ I 125 HZ 0.0 KHZ < f < 4.0 KHZ187.5 HZ 4.0 KHZ < f < 8.0 KHZ375 HZ 8.0 KHZ < f < 16.0 KHZ

II 62.5 HZ 0.0 KHZ < f < 3.0 KHZ93.75 HZ 3.0 KHz < f < 6.0 KHz187.5 HZ 6.0 KHz < f < 12.0 KHz375 HZ 12.0 KHz < f < 16.0 KHz

44.1 KHZ I 172.266 HZ 0.000 KHZ < f < 5.512 KHZ281.25 HZ 5.512 KHZ < f < 11.024KHZ562.50 HZ 11.024 KHZ < f < 19.982 KHZ

II 86.133 HZ 0.000 KHZ < f < 2.756 KHZ129.199 HZ 2.756 KHz < f < 5.512 KHz258.398 HZ 5.512 KHz < f < 11.024 KHz516.797 HZ 11.024 KHz < f < 19.982 KHz

48 KHZ I 187.5 HZ 0.0 KHZ < f < 6.0 KHZ281.25 HZ 6.00 KHZ < f < 12.0 KHZ562.50HZ 12.0 KHZ < f < 24.0 KHZ

II 93.750 HZ 0.0 KHZ < f < 3.0 KHZ140.63HZ 3.0 KHz < f < 6.0 KHz281.25HZ 6.0 KHz < f < 12.0 KHz562.50 HZ 12.0 KHz < f < 24.0 KHz

Tab 4.2 Intervalli di frequenza entro cui un massimo locale deve essere globaleper identificare le componenti tonali.

Per identificare le linee spettrali X(k) come tonali o non tonali, si seguono le tre operazioni seguenti:

4.2.1.4.1.... Massimo LocaleLa linea spettrale X(k) è considerata come massimo locale se

X k X k X k( ) ( ) ( )− < < +1 1

4.2.1.4.2.... componenti TonaliIl massimo locale viene aggiunto alla lista delle componenti tonali se

X k X k j dB( ) ( )− + ≥ 7

Page 103: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-6

Dove j è scelto in funzione di k :

valori di k valori di jLayer I 2<k<63 -2, +2

62<k<127 -3, -2, +2, +3126<k<250 -6, ... , -2, +2, ... , +6

Layer II 2<k<63 -2, +262<k<127 -3, -2, +2, +3126<k<255 -6, ... , -2, +2, ... , +6254<k<500 -12, ...... , -2, +2, ...... , +12

Tab 4.3 Valori di j (indice della linea spettrale) entro cui verificare se unacomponente è tonale . Questi valori possono essere derivati in base alladistanza in Hz tra le componenti frequenziali e contando il numero di talicomponenti che coprono gli intervalli di frequenza della tabella Tab. 4.2.I valori di j = +1 e -1 non vengono considerati in quanto sono già statiesaminati per identificare la componente come un massimo locale.

Di ogni componente che risulta TONALE si memorizza:

.. indice k della linea spettrale

.. Livello SPL X k X k X k X ktm ( ) ( ) ( ) ( )= − + + +1 1 in dB

.. flag di TONALE

le altre linee spettrali dell'intervallo di frequenze esaminato vengono poste a meno infinito.

4.2.1.4.3.... componenti Non TonaliLe componenti non tonali vengono estratte una ogni banda critica dalle rimanenti linee spettrali.L'intensità delle componenti non tonali (simili a rumore) viene calcolata sommando tutte le lineespettrali che non fanno parte di componenti tonali nell'intervallo di banda critica z(k) i cui confini infrequenza sono tabulati.

X k x jnmj Banda Criticaz k

( ) ( )_ ( )

=∀ ∈

In pratica si divide lo spettro del segnale udibile in

LAYER FREQUENZA DICAMPIONAMENTO

NUMERO BANDECRITICHE

I 32.0 KHz 2344.1 KHz 2448KHz 25

II 32.0 KHz 2444.1 KHz 2648KHz 26

Tab 4.4 Numero di bande critiche in funzione della frequenza di campionamento edel layer

In ogni banda critica si sommano le intensità di potenza delle linee spettrali ottenendo la componenteche viene considerata non tonale.La sua localizzazione spettrale viene trovata dalla linea spettrale più vicina alla media geometrica dellefrequenze estreme della banda critica.

Di ognuna delle componenti NON TONALI si memorizza:

.. indice k della linea spettrale più vicina alla media geometrica della banda critica

.. intensità SPL della linea k in dB Xnm(k)

.. flag di NON TONALE

Page 104: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-7

4.2.1.5... Decimazione delle Componenti Tonali e Non TonaliDi tutte le componenti tonali e non tonali trovate al passo 4.2.1.4 ne vengono isolate solo quelle chedanno un contributo rilevante all'aumento in intensità della soglia di mascheramento.In particolare le componenti tonali Xtm(K) o le non tonali Xnm(K) vengono tenute in considerazioneper il calcolo della soglia se e solo se:

1.. Hanno intensità superiore alla soglia statica ... X k LT ktm q( ) ( )≥ oppure X k LT knm q( ) ( )≥dove LTq(k) è la soglia assoluta in quiete o statica alla frequenza di indice k. I suoi valorisono tabulati4 e dipendono dal layer e dalla frequenza di campionamento.

2.. La distanza di due componenti tonali è maggiore di 0.5 Bark.In caso contrario (più componenti tonali in un intervallo di 0.5 Bark), si tiene solo quelladi maggiore intensità e si cancellano le altre. Per eseguire questa operazione si esegueuna finestratura nel dominio delle bande critiche di 0.5 Bark.

Nella parte seguente l'indice j viene usato per le sole componenti tonali e non tonali calcolo chesopravvivono alla decimazione, e che sono le uniche rilevanti per il calcolo della maschera.

4.2.1.6... Calcolo della Soglia di Mascheramento IndividualeDegli originali N/2 campioni nel dominio della frequenza solo un sottoinsieme viene considerato per ilcalcolo della soglia globale.I campioni usati sono tabulati5 e dipendono dal layer:

Layer IPer le linee in frequenza che corrispondono alla regione di frequenze coperte dalle prime 6

sottobande non si esegue nessun sotto campionamento (si considerano tutte e 16 lelinee spettrali di ogni sottobanda).

Per le successive 6 sottobande, viene considerata una linea spettrale ogni due.Per campionamenti a 44.1 e 48KHz nelle successive bande si considera una linea su quattro

fino a 20KHz. Nel caso di campionamento a 32 KHz si arriva solo a considerare lequarte linee fino a 15KHz.

4La tabella riporta:NumeroIndice

Frequenza[Hz]

Banda Critica[z]

Soglia Statica[dB]

0 46,88 0,463 42,101 93,75 0,925 24,17.. .............................. ................................ .................................

125 19875,00 24,564 68,00126 20250,00 24,597 68,00

5La tabella riporta :Numero Indice della tabella (2) Frequenza

[Hz]Bark[z]

0 1 46,875 0,4631 2 93,750 0,925.... .............................. ................................ .................................25 113 15375,00 23,99126 126 20250,00 24,597

Page 105: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-8

Layer IIPer le linee frequenziali che coprono le prime tre sottobande non si usa sotto

campionamento.Per le successive tre sottobande si considera ogni seconda componente spettrale.Per le altre sei sottobande si considera la quarta linea spettrale.Per le rimanenti bande si considerano le otto linee spettrali ma solo fino a 20KHz. Per 32KHz

si coprono solo le frequenze fino a 15KHz.

Il numero di campioni nel dominio della frequenza sotto campionata dipende ancora una volta dal layere dalla frequenza di campionamento.

LAYER FREQUENZACAMPIONAMENTO

NUMERO DI COMPONENTI SPETTRALIDEL DOMINIO SOTTOCAMPIONATO

I 32.0 KHz 10844.1 KHz 10648.0 KHz 102

II 32.0 KHz 13244.1 KHz 13048.0 KHz 126

Tab 4.5 Numero di linee considerate dopo la decimazione.

Ad ogni componente tonale e non tonale viene assegnato l'indice della linea spettrale più vicina neldominio sottocampionato.

La soglia di mascheramento individuale viene calcolata per ogni singola linea che sopravvive alladecimazione calcolando il contributo di ogni eccitazione TONALE o NON TONALE usando i seguentimodelli approssimati:

LT z i z j X z j av z j vf z i z j dBtm tm tm( ), ( ) ( ) ( ) ( ), ( )= + +LT z i z j X z j av z j vf z i z j dBnm nm nm( ), ( ) ( ) ( ) ( ), ( )= + +

Dove :- z(i) è la posizione in Bark del tono mascherante- z(j) è la posizione in Bark della linea su cui si vuole calcolare il mascheramento- LTtm e LTnm sono le soglie di mascheramento per le componenti tonali e non tonali che

devono essere calcolate.- Xtm[z(j)] è il livello di SPL della componente TONALE j.- Xnm[z(j)] è il livello di SPL della componente NON TONALE j.- av è detto indice di mascheramento- vf è la funzione di mascheramento della componente mascherante Xtm[z(j)] o Xnm[z(j)].

L'indice di mascheramento av è diverso per le componenti tonali e le non tonali (avtm e avnm).

av z j dBtm = − − −1 525 0 275 4 5. . * ( ) .av z j dBnm = − − −1 525 0 175 0 5. . * ( ) .

La funzione di mascheramento vf è caratterizzata da curve con diversa pendenza di salita e discesa, e,dipendono dalla distanza in Bark dz = z(i)-z(j) tra mascherante e linea spettrale mascherata.I valori in Bark di z(i) e z(j) corrispondenti alle linee spettrali i e j sono riportati in forma tabulata nellespecifiche di MPEG.

La funzione di mascheramento vf è uguale per le componenti tonali e non tonali ed è data dalleseguenti:

Page 106: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-9

Valore dz in Bark Formula− ≤ ≤ −3 1dz vf dz X z j= + − +17 1 0 4 6( ) ( . * ( ) )− ≤ ≤1 0dz vf X z j dz= +( . * ( ) )*0 4 60 1≤ ≤dz vf dz= 17*1 8≤ ≤dz vf dz X z j= − − −( )* ( . * ( ) )1 17 0 15 17

Tab 4.6 Espressione matematica della funzione di mascheramento

Il fenomeno di mascheramento è ritenuto ininfluente per tutte le componenti spettrali ad una distanzasuperiore di dz < -3Bark o dz > 8Bark ; fuori da tale intervallo LTtm e LTnm vengono inizializzati a -∞.

4.2.1.7... Calcolo della Soglia di Mascheramento GlobaleLa soglia globale di mascheramento LTg per ogni linea spettrale del dominio sottocampionato vienestimata sommando i contributi dei mascheranti entro l'intervallo di -3..8 Bark .

++= ∑ ∑

= =

m

j

n

j

jiLTjiLTiLTg

nmtmqiLT1 1

10 ),(10 ),(10 )( 101010log10)(

Dovem : numero di componenti TONALI

n: numero di componenti NON TONALI

LTtm : soglia di mascheramento individuale componente tonaleLTnm : soglia di mascheramento individuale componente non tonale

4.2.1.8... Determinazione della Soglia Minima di MascheramentoIl livello minimo di mascheramento LTmin in ogni sottobanda n è determinato come minimo dellafunzione di mascheramento globale all'interno della banda:

LT n MIN LT i dBgmin ( ) ( )=

dove i indica tutte le linee spettrali all'interno della sottobanda n.

4.2.1.9... Calcolo del Rapporto Segnale-MascheraIl valore viene calcolato applicando la seguente

SMR n L n LT n dBsb sb( ) ( ) ( )min= −

su tutte e 32 le sottobande (n).

La figura 4.2 può essere ridisegnata indicando le quantità calcolate ai passi precedenti :

Page 107: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-10

Banda N-1 Banda N Banda N+1

dB SPL

SMR(N)

LTq(N-1) LTq(N)LTq(N+1)

LTg(N)=Funzione (LTnm , LTtm)

LTmin(N)

Lsb(N)

LTmin(N-1)

Fig. 4.3 Rappresentazione schematica del calcolo della soglia di mascheramentocon indicate le quantità numeriche coinvolte.Nel calcolo reale si considera l'influsso di ogni eccitazione per 3 Bark asinistra e per 8 Bark a destra coprendo un numero di bande adiacenti chedipende dalla frequenza dell'eccitazione.

4.2.2.Accuratezza del ModelloIl modello percettivo 1 è il modello percettivo più semplice tra i due descritti e implementati6 da MPEG,la stima della maschera è sufficientemente accurata nonostante il modello percettivo la approssimi conuna forma triangolare indipendente dal livello di loudness.Il modello, inoltre, considera le Bande Critiche (Bark) fisse nel dominio frequenziale con mentre glistudi di Zwicker rivelano che le Bande Critiche sono mobili nella scala delle frequenze in modo diottenere il massimo mascheramento di ogni porzione di segnale.

4.3.CENNI MODELLO PSICOACUSTICO 2Il modello psicoacustico 2 è riportato solo in forma sommaria nelle specifiche di MPEG.Tale modello è ottimizzato per l'uso con il layer III e la sua complessità computazionale è superiore aquella del modello 1.Il modello psicoacustico 2 deve la maggior complessità ad una migliore risoluzione frequenziale chepermette stime della soglia di mascheramento più accurate.Rispettando le specifiche MPEG anche il modello 2 prende in ingresso N campioni PCM e fornisce inuscita 32 valori di SMR.Non ne vengono riportate le specifiche e si rimanda ai documenti originali, inoltre dato che la codifica èindipendente dal modello psicoacustico non si ritiene utile la sua esposizione.

4.4.RELAZIONE TRA SMR, SNR E MNRLa bit allocation è di fondamentale importanza, in quanto determina l'intensità del rumore diquantizzazione.In particolare dalla bit Allocation dipende il valore di SNR che può essere:

• maggiore dell' SMR e quindi il rumore di quantizzazione è impercettibile ( MNR > 0 )

6Implementati via software nella versione 3.5 del software distribuito da MPEG e descritti nellespecifiche 311171 rev 3 del Novembre 1992.

Page 108: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-11

• minore dell' SMR lasciando udibile parte del rumore di quantizzazione ( MNR < 0 )

Dal valore di SNR e di SMR (informazione disponibile solo nel codificatore) si possono verificare perogni FRAME codificato alcune delle seguenti situazioni :

SNM SMN MNS MSN NSM NMS

Segnale

Maschera

R u m

Fig. 4.4 Possibili situazioni che si possono presentare tra Segnale, Rumore eMaschera. Per ognuno di essi viene considerato l'effetto che se ne avrà inascolto tale effetto è solo teorico e la sua corrispondenza alla realtàdipende unicamente dall'accuratezza del modello percettivo.

Viene esaminata ciascuna delle possibili configurazioni spiegando le conseguenze teoriche a livellopercettivo.Si tenga presente che i valori di MNR, SNR e SMR variano per ogni sottobanda del FRAME e quindi laqualità totale della sequenza audio è data dall'insieme delle situazioni che si vengono a creare in tutte lesottobande e tutti i FRAME.

Come livello di segnale si intende quello che determina il fattore di scala ovvero il massimo tra i 36campioni frequenziali della sottobanda.

S_M_N

Segnale Maschera Rumore

Fig. 4.5 :

Caso ottimo in cui il rumore di quantizzazione èmascherato.In tale sottobanda la decodifica del segnale risultapercettivamente uguale al segnale originario.

Si ha:

MNR > 0

SNR > 0

SMR > 0

Tanto più MNR è grande e maggiore è il margine perelaborazioni del segnale.

Page 109: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-12

S_N_M

Segnale Maschera Rumore

Fig. 4.6 :

Il segnale ha l'intensità maggiore e il rumore diquantizzazione è sopra al valore della maschera cioènella sottobanda c'è del rumore di quantizzazione chepuò essere udito a seconda della forma del segnale edell'influenza delle bande adiacenti.

In questa situazione :

MNR < 0

SNR > 0

SMR > 0

M_N_S

Segnale Maschera Rumore

Fig. 4.7 :

Caso che non si può mai presentare perché èimpossibile che il rumore di quantizzazione ecceda invalore l'intensità del segnale infatti il rapporto SNR èsempre una quantità positiva ed indica la distanza indB tra Segnale e Rumore.

M_S_N

Segnale Maschera Rumore

Fig. 4.8 :

In tale situazione il segnale è impercettibile e il rumoredi quantizzazione essendo inferiore al segnale èmascherato.

Si ha :MNR > 0SNR > 0SMR < 0

La banda sarà allocata solo se il bitrate rendedisponibile un numero di bit in eccesso , ovvero sedopo avere allocato tutte le bande di tipo S_M_N cisono ancora disponibili dei bit nel Frame.La banda anche se ininfluente ai fini percettivi puòportare informazioni importanti per elaborazionifuture.

Page 110: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-13

N_S_M

Segnale Maschera Rumore

Fig. 4.9 :

Configurazione simile al caso N_M_S che non si puòmai presentare perché implica che il segnale è sopra lasoglia, e che il rumore di quantizzazione ha intensitàsuperiore al segnale (impossibile).

N_M_S

Segnale Maschera Rumore

Fig. 4.10 :

Situazione simile alla M_S_N ; è impossibile che ilrumore di quantizzazione sia superiore al segnale !

Quindi solo in caso di disponibilità di bit vengono allocate le bande con segnale mascherato.

4.5.RISULTATIDurante lo sviluppo della tesi ho compiuto una analisi in ascolto dei risultati di codifiche e decodifichea vari bitrate al layer II.Percettivamente ho trovato conferma dei risultati pubblicati nei test soggettivi di MPEG compiuti inSvezia, Inghilterra, Canada:

... sequenze a 64 KBit/sec. per canale sono leggermente distorte ma non molto disturbanti

... a bitrate di 96 KBit/sec. per canale il suono originale ed il decodificato sono molto simili

... a bitrate di 128 KBit/sec. per canale le sequenze sono praticamente indistinguibili7.

A bitrate bassi (64 KBit/sec. per canale) si possono apprezzare gli effetti della modalità joint stereo.

Per quanto riguarda i due modelli percettivi proposti da MPEG non ho trovato nessuna differenza inascolto anche se i risultati numerici dell' SMR sono spesso diversi come si può osservare dai seguentigrafici:

7 Le sequenze PCM 16 bit non compresse richiedono 768KBit/sec. per canale

Page 111: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 4 "Modelli Percettivi" Davide Cilano

Pag. 4-14

-30

-20

-10

0

10

20

30

40

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Modello 1

Modello 2

Sottobande

Fig. 4.11 Diagramma dei valori di SMR (Signal- Mask-Ratio) per un frame8

calcolati dal modello percettivo 1 e 2 . Si ricorda che i valori di SMR delmodello percettivo sono indipendenti dalla modalità e dal bitrate usato.

Il fatto che in ascolto i decodificati siano indipendenti dal modello usato nonostante i valori di SMRsiano diversi suggerisce che anche a bitrate medi (circa 100 KBit/sec. per canale) si abbia un certomargine di allocazione entro cui è possibile muoversi a parità di risultati percettivi.Inoltre dalla rappresentazione grafica è evidente che i due modelli psicoacustici danno risultati chesono diversi solo per un valore di scarto, fatto che non influisce sui valori assegnati alla bit_allocationdato che l'allocazione dei bit alle varie sottobande avviene in base ai valori relativi tra le sottobande.

8Canale sinistro del Frame 192 di bass.mpg codificato a 384 KBit/sec. per entrambi i canali

Page 112: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5INTRODUZIONE ALLE

ELABORAZIONI

5.1. INTRODUZIONE........................................................................................................................................... 15.2. POSSIBILI APPLICAZIONI......................................................................................................................... 4

5.2.1. Modifica del Bitrate .................................................................................................................... 45.2.2. Sincronizzazione.......................................................................................................................... 6

5.3. SEQUENZE AUDIO PER LE PROVE ........................................................................................................ 75.4. BITRATE USATI PER LE PROVE............................................................................................................... 85.5. TEMPI DI CO-DECODIFICA...................................................................................................................... 95.6. APPARECCHIATURE USATE IN ASCOLTO........................................................................................... 95.7. VALUTAZIONE RISULTATI ........................................................................................................................ 10

5.7.1. ... regole per valutazioni "oggettive" ...................................................................................... 125.7.2. Criteri di Confronto .................................................................................................................... 135.7.3. Valutazioni di Basso Livello...................................................................................................... 14

5.7.3.1. .LBA e .RBA............................................................................................................. 155.7.3.2. .MNR :...................................................................................................................... 165.7.3.3. .SMR......................................................................................................................... 175.7.3.4. .TAB.......................................................................................................................... 18

5.7.4. Valutazioni di Alto Livello......................................................................................................... 185.8. RITARDO INTRODOTTO DAI FILTRI ....................................................................................................... 205.9. NOTE SULL'ELABORAZIONE.................................................................................................................... 21

5.9.1. Formule di Quantizzazione e Normalizzazione...................................................................... 215.9.2. Calcolo Fattori di Scala ............................................................................................................ 215.9.3. Da Fattore di Scala a Intensità (dB) ....................................................................................... 225.9.4. Incremento Livelli per Segnali Quantizzati ............................................................................ 235.9.5. Normalizzazione Segnali Audio................................................................................................ 235.9.6. Aliasing per Bande Soppresse................................................................................................... 24

5.9.6.1. Bande Soppresse a Bassi Bitrate........................................................................ 25

Nel capitolo vengono esposte le basi per lo sviluppo di tecniche di elaborazione del segnalecodificato secondo la sintassi MPEG.Sono riportate alcune osservazioni che mettono in evidenza aspetti della codifica MPEG non evidentinelle specifiche e vengono riassunti alcuni dei problemi, con relative soluzioni, incontrati durante losviluppo del software.

5.1. INTRODUZIONELo scopo della tesi è lo sviluppo e la valutazione di tecniche per l'elaborazione del segnale compressonel dominio della codifica MPEG_Audio, indicando alcuni vincoli che devono essere rispettati perottenere risultati efficienti.

Page 113: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-2

Il lavoro ha richiesto parecchio tempo soprattutto per quanto riguarda le valutazioni dei risultati. Inoltrela mancanza di pubblicazioni riguardo all'elaborazione dell' audio codificato MPEG1 se da un lato hastimolato il lavoro dall'altro ha richiesto la completa risoluzione dei problemi che si sono presentati.

Partendo dal presupposto che i segnali sono memorizzati e trasmessi solo in forma compressa2,l'elaborazione del segnale MPEG è una alternativa alla elaborazione sulle sequenze PCM, sequenzePCM che possono essere ottenute dalla decodifica dei formati compressi.

La scelta del dominio in cui elaborare i segnali dipende dalla bontà dei risultati e dalle necessitàdell'applicazione, infatti se da una parte l' elaborazione nel dominio del tempo (PCM) si avvale diconsolidate tecniche e apparecchiature per manipolare il segnale mantenendone inalterata la qualità, iprocessi di decodifica e ricodifica per loro natura introducono una certa indeterminazione che siripercuote in una possibile perdita di qualità del segnale audio.

La possibilità di operare direttamente sulle sequenze compresse permette invece l'eliminazione dellefasi di decodifica e ricodifica delle sequenze MPEG, codifiche e decodifiche che portano a:

perdita di accuratezza → perdita di qualitàintroduzione del ritardo dei filtri → intervallo temporale aggiunto per avere i risultatinecessità di una alta potenza di calcolo → per eseguire codifiche e decodifiche in tempo realegrandi dispositivi di memorizzazione → per manipolare le sequenze PCM

da ciò nasce la richiesta di studio di metodi per l'editing del segnale codificato.

La necessità di non aggiungere ritardo è fondamentale per un gran numero di applicazioni ed implicache l'elaborazione del segnale audio deve avvenire nel formato compresso senza poter applicare i filtridi sintesi, problema rilevante soprattutto per la trasmissione di contributi in tempo reale.

Per le trasmissioni televisive i vantaggi sono più evidenti in quanto se all'audio viene introdotto delritardo si perde la sincronizzazione con le immagini e si induce disturbo nel ricevente.

Tipo dielaborazione

DominioCampioni

Dati in ingresso Dati in uscita Ritardo

PCM Tempo Sequenza codificataMPEG

Sequenza codificataMPEG

Decodifica (Filtri) +Decodifica (Elab.) +

Elaborazione PCM +Codifica (Filtri) +Codifica(Elab.) .

MPEG Sottobande Sequenza codificataMPEG

Sequenza codificataMPEG

Solo ElaborazioneMPEG

Tab. 5.1 Confronto dei metodi di codifica del segnale compresso nel dominio deltempo (PCM) e sottobande (MPEG).

L'efficienza dell'elaborazione nel dominio frequenziale MPEG è limitata dalla granularità della codificache complica i processi di elaborazione per segnali di dimensione non multipla di 1152 campioni per illayer II3 e 384 per il layer I.

1Dalle informazioni disponibili la presente tesi è l'unico lavoro in fase di sviluppo riguardo allostudio di tecniche di elaborazione del segnale MPEG.

2Dato che si vuole sfruttare al massimo la capacità dei canali di trasmissione e memorizzazione.

3 Equivalenti a 24 ms. per il layer II campionato a 48 KHz : 1152 * 1/48000=24 msec.

Page 114: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-3

Questa limitazione è trascurabile in alcune applicazioni se si considerano i vantaggi introdotti dastrumenti software per l'editing del segnale in forma codificata, inoltre non è esclusa la possibilità diincludere nelle tecniche di elaborazione di segnali MPEG la sincronizzazione, ovvero eliminare ilproblema della granularità temporale permettendo lo shifting4 dei campioni tra Frame successivi.

Archivio

Codifica

Elaborazione

PCMElaborazione

Codificati

Decodifica

MPEG

MPEG

Decodifica

MPEG

Contributi Esterni

Fig. 5.1 Rappresentazione schematica delle operazioni necessarie per elaborareun segnale compresso nel dominio del tempo (Elaborazione PCM) e neldominio della frequenza (Elaborazione MPEG).

Dalla rappresentazione di Fig. 5.1 è evidente che il processo di editing nel dominio MPEG riduce ilnumero di operazioni che devono essere eseguite.

4Per "shifting" si intende lo spostamento dei campioni codificati nel frame successivo (oprecedente) che a sua volta verrà riformattato shiftando un egual numero di campioni nelframe a lui successivo (precedente). Tutta l'operazione potrebbe essere compiuta nel dominioMPEG (vedi Capitolo 8"Elaborazioni Psicoacustiche").

Page 115: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-4

5.2. POSSIBILI APPLICAZIONILa disponibilità di tecniche di elaborazione del segnale in formato compresso si presta ad un grannumero di applicazioni pratiche.

Ad esempio permette la realizzazione di uno studio di editing audio su un normale Personal Computercon una scheda per la Compressione/Decompressione in tempo reale (schede basate su 1, 2 o 3 DSPgià disponibili ad es schede : PC-X3 o CompreSound) e un disco fisso da 200 MByte; operazioneimpensabile se si deve operare nel dominio PCM (per la grande quantità di dati da elaborare).

Altre applicazioni possono essere la modifica del bitrate (utile per la distribuzione radiofonica) o lasincronizzazione (per la costruzione del segnale audio da distribuire5).

5.2.1. Modifica del BitrateUna possibile applicazione delle elaborazioni del segnale MPEG è la modifica del bitrate di unasequenza compressa; tale operazione è necessaria ad esempio nella distribuzione DAB in quanto leconnessioni

Sorgente ð Studio ð Trasmettitore ð Ripetitore

richiedono normalmente una diversa qualità del segnale che si ripercuote in bitrate diversi su un unicopercorso di distribuzione.

5Spesso i segnali radiofonici ricevuti dall'utente finale vengono costruiti in studio sovrapponendopiù segnali audio indipendenti, detti anche contributi.

Page 116: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-5

Contributi

Contributi

384384

256

Studio diEditing

384

384

256

Satellite

384

256

Fig. 5.2 Possibili bitrate per la distribuzione di servizi codificati MPEG.Si può notare che sono previsti almeno due bitrate per le connessioni didistribuzione :

384 KBit/sec. per contributi verso lo studio256 KBit/sec. per trasmissione da studio a trasmittenti

Probabilmente con la disponibilità di modelli percettivi più efficienti infuturo si useranno anche bitrate più bassi per la distribuzione domestica.

Page 117: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-6

5.2.2. SincronizzazioneIl problema della sincronizzazione sorge nelle elaborazioni che coinvolgono più studi di registrazione,in tal caso è necessario che tutte le sequenze audio siano sincronizzate (o temporizzate) rispetto agliistanti di inizio.

Per una valida elaborazione del segnale MPEG_Audio il problema deve essere risolto studiandotecniche per la sincronizzazione che eliminino i vincoli di granularità temporale della codifica.Infatti se più segnali audio devono essere elaborati è necessario che le loro frequenze dicampionamento siano uguali e sincronizzate affinché le operazioni aritmetiche sui campioni sianocoerenti.

... per il PCM ... [Gilchrist]All'interno di un singolo studio il problema può essere risolto usando un master clock6 comune a tuttele apparecchiature ma il problema rimane per trasmissione tra studi diversi dove acquista importanza ilritardo di trasmissione.Per ovviare al problema della sincronizzazione di segnali PCM la soluzione adottata dalla B.B.C.(Inghilterra) è di usare un buffer per ritardare i segnali e sincronizzarliIn tal modo si aumenta significativamente il ritardo fino a rendere tale tecnica inapplicabile per ilcontrollo in tempo reale dei programmi trasmessi o dell'audio associato alle immagini.

Un ritardo eccessivo nella distribuzione di programmi audio "live" può causare notevoli disturbi, adesempio:

• Nella distribuzione di servizi di emittenti radio il presentatore ascolta la musica da un normalericevitore e controlla il segnale trasmesso prima di presentare il programma.Ci sono notevoli problemi se il presentatore facendo l'annuncio ascolta la sua voceritardata di più di qualche millisecondo (ritardi tipici sono dell'ordine di 20 millisecondi,ritardi più elevati distraggono il presentatore), una connessione diretta con il segnaletrasmesso senza ricezione via etere potrebbe causare la mancata rilevazione di eventualicadute o disturbi nella trasmissione.Il problema a livello locale può essere risolto alternando l'ascolto del presentatore sulsegnale in trasmissione durante le presentazioni e sul segnale esterno nel resto dellasessione.

• Per i contributi esterni (ad esempio un evento sportivo) l'inviato ascolta il segnale da unnormale apparecchio ricevente e deve colloquiare in tempo reale con il presentatore instudio. Se l'inviato ascolta un segnale con eccessivo ritardo viene distratto e si hannolunghe pause.La soluzione in tal caso è di usare un collegamento di ritorno privilegiato tra studio edesterno.

I problemi di sincronizzazione vengono esasperati nel caso in cui si usi la radio FM per trasmetterel'audio di una trasmissione televisiva (come accade ad esempio per la trasmissione sulle reti RAI delfestival di Sanremo: Televisione RAI 1: video +audio, Radiodiffusione RAI STEREO 1 per segnaleaudio FM) . In tal modo l'utente finale può ottenere una maggior qualità del segnale usando la partevideo della distribuzione televisiva e quella audio della distribuzione radiofonica.

Per stabilire il massimo ritardo che non crea scompensi al presentatore (cioè che ascolta sé stessoritardato), sono stati fatti negli anni passati alcuni studi ed i risultati indicano che si deve porreparticolare attenzione a contenere il ritardo in valori più piccoli possibile.

6Il termine Master Clock indica un temporizzatore generale per la sincronizzazione di tutte leapparecchiature di uno stesso studio di produzione-editing.

Page 118: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-7

... per segnali compressi MPEG ...Il problema della sincronizzazione aumenta di complessità per le sequenze compresse MPEG per viadella granularità temporale della codifica.Infatti l'atomo base della codifica è il Frame che raggruppa 1152 campioni frequenziali (per il layer II) eelaborazioni dirette possono essere eseguite solo a grani di un tale numero di campioni.È però possibile (almeno teoricamente) operare su particelle più piccole di campioni (fino al singolocampione) servendosi dello shifting tra i campioni di FRAME successivi.Il problema verrà affrontato dettagliatamente nel Capitolo 8 "Elaborazioni Psicoacustiche".

5.3. SEQUENZE AUDIO PER LE PROVEPer verificare l'affidabilità e qualità dei risultati del software per l'elaborazione dei segnali MPEG sonostate usate alcune tra le sequenze audio risultate maggiormente critiche per la codifica in base alleprove svolte dalla Swedish Broadcasting Corporation nel 1992.

La caratteristica di essere critiche indica la necessità di alti bitrate per conservare la "qualità CD"mentre a bitrate bassi (64-96 KBit/sec. per canale monofonico) la struttura dei segnali è tale che ladimensione del Frame non permette una quantizzazione dei campioni che mascheri totalmente il rumoredi quantizzazione.

La scelta di utilizzare le sequenze critiche è dovuta al voler garantire il funzionamento delle tecniche dielaborazione per qualsiasi segnale audio, ovvero per la più ampia gamma di suoni e generi musicali:pop, rock, jazz, classica, ecc...

Ne segue che se le tecniche funzionano per le sequenze critiche sicuramente funzioneranno efunzioneranno meglio sulle sequenze di largo consumo (commerciali).

Le sequenze usate sono riassunte nella seguente tabella :

Page 119: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-8

NOME FormatoFrequenzaCampion.

Durata secondi

NumeroCampioni

PCMCaratteristiche

BASS PCM 16 bitstereo

48 KHz 20 1.961.932 Giro di basso

COLEMAN PCM 16 bitstereo

48 KHz 19 1.830.500 Due sax Piatti batteria

VOICE PCM 16 bitstereo

48 KHz 17,5 1.727.114 Parlato inglese maschile

ASA PCM 16 bitstereo

48 KHz 16,5 1.607.420 Musica tirolese con triangoli efisarmoniche

TONK PCM 16 bitstereo

48 KHz 22 2.146.726 Musica prodotta da strumentidigitali

CLAV PCM 16 bitstereo

48 KHz 18,5 1.801.742 Arpeggio di clavicembalo

CLIP PCM 16 bitstereo

48 KHz 6,5 629.646 Assolo di Sax

SUSAN PCM 16 bitstereo

48 KHz 19,5 1.900.210 Susan Vega "Tom's Diner" solovoce

LR PCM 16 bitstereo

48 KHz 3 149.680 Voce femminile inglese diversa suidue canali stereofonici

Tab.5.2 Sequenze usate per le prove di elaborazione dei segnali e lorocaratteristiche.Queste sequenze si sono dimostrate tra le più critiche7 da codificare

NOTA: Tipicamente le sequenze più critiche per la codifica sono quelle con attacchi esuoni percussivi ben distinguibili ovvero tali che il fenomeno di mascheramentoviene minimizzato.

Come si può notare tutte le sequenze sono stereofoniche e campionate a 48KHz, infatti al fine dellavalutazione di qualità le tecniche di elaborazione del segnale compresso sono del tutto indipendenti da:

modalità audio → le sequenze stereofoniche vengono trattate come due monofoniche intercalatefrequenza di campionamento → influisce unicamente sulla qualità del segnale PCM in ingresso

5.4. BITRATE USATI PER LE PROVEPer la verifica dei risultati delle procedure di elaborazione si è scelto di operare principalmente a bassibitrate.Tale scelta deriva da un'esame dei risultati numerici di codifiche e decodifiche a vari bitrate inparticolare si è verificato che con bitrate superiori a 128KBit/sec per canale la codifica mascheraeventuali scorrettezze compiute durante l'elaborazione. Infatti a tali bitrate si ottengono valori di MNRmolto maggiori di zero che rendono disponibile un certo margine di editing entro cui è possibilecommettere approssimazioni di allocazione senza che diventano udibili (secondo la stima del modellopsicoacustico).

7Per sequenza critica si intende un segnale audio che deve essere codificato ad alti bitrate permantenere la qualità CD in decodifica.

Page 120: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-9

Invece usando bitrate di 64 - 96 KBit/sec. per canale l' MNR globale ha valori prossimi allo zero equindi sono subito udibili eventuali elaborazioni scorrette del segnale.

Per tali motivi il funzionamento delle tecniche di editing a bitrate bassi implica la loro applicabilità abitrate alti conservando il margine per future elaborazioni.

Quindi si è stabilito di costruire e verificare tecniche a bitrate bassi lasciando ad un secondo tempo lavalutazione dei risultati anche a bitrate maggiori.

Si tenga presente che mentre il lavoro di tesi si è svolto principalmente su sequenze codificate a 64-96KBit/sec. per canale, il bitrate che probabilmente verrà usato per la distribuzione commerciale è dialmeno 128 KBit/sec. (per canale monofonico) e di 196KBit/sec. per il materiale professionale.

5.5. TEMPI DI CO-DECODIFICACome indicazione della complessità degli algoritmi di codifica e decodifica scritti da MPEG, siriportano i tempi di esecuzione sulle diverse macchine :

AMBIENTE F

OPERAZIONE H

DOS

486-33MHz

NeXT

68040-25MHz

VAX

Silicon Graphics4D280

8 MIPS R 3000

CODIFICAModello Percettivo 1

1820 sec. 1380 sec. 629 sec.

CODIFICAModello Percettivo 2

2050 sec. 1480 sec. 680 sec.

DECODIFICA 1010 sec. 730 sec. 410 sec.

Tab 5.3 Valori tipici di tempo di processing di 800 frame stereo codificati a48KHz equivalenti a 24*800 ms =19.2 secondi di musica(1152 * 800 = 921.600 campioni PCM per canale = 1.7MByte per canale).Ho verificato che i risultati ovvero la precisione dei calcoli è la stessa sututte le macchine.Il software utilizzato è la versione 3.5.

Emerge subito che una delle operazioni temporalmente più impegnative nello sviluppo della tesi èstata la verifica e valutazione dei risultati dato che le maggior parte delle elaborazioni sono statefatte su NeXT con conseguenti alti tempi di attesa tra elaborazione del segnale e una suavalutazione.

5.6. APPARECCHIATURE USATE IN ASCOLTOPer le prove e le verifiche in ascolto sono state usate le seguenti apparecchiature messe a disposizionedal - LIM Laboratorio di Informatica Musicale (Università degli Studi di MILANO) - e dalla - RAI(Radiotelevisione Italiana) Centro Ricerche TORINO -

Page 121: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-10

LIM

Archiviazione :Hard Disk 600MByteDischi Magneto-Ottici 256 MByte

Ascolto in cuffia:DSP 56001 su scheda NeXT (68040 25 MHz)Convertitore Digitale-Analogico NeXTCuffie collegate al convertitore

Ascolto amplificato:AmplificatoreCuffie collegate all'amplificatoreCasse acustiche

Ambiente per ascolto amplificato:Laboratorio piuttosto rumoroso

RAI

Archiviazione :Hard Disk 200 MByteDyaxis due dischi 600 MByte l'uno

Sala ascolto:Convertitore Digitale-AnalogicoCuffie elettrostaticheCasse acustiche

Ambiente per ascolto amplificato:Sala d'ascolto insonorizzata

5.7. VALUTAZIONE RISULTATINei paragrafi seguenti vengono esposti i criteri seguiti per valutare l'efficienza dei metodi dielaborazione del segnale compresso, il software di elaborazione ed i risultati vengono illustrati neicapitoli seguenti.

I requisiti affinché l'elaborazione del segnale compresso sia efficiente sono difficilmente misurabili; inparticolare si vuole che

- i risultati siano percettivamente in alta qualità - si conservi un certo margine per future elaborazioni - non si introduca ritardo

Proprio il carattere percettivo della codifica rende complessa una valutazione :

valutazioni percettive : non sono applicabili durante lo sviluppo della tesi perché richiedonolunghe sessioni di ascolto da parte di individui affidabili acusticamente.

valutazioni numeriche : non sono in generale utili per codifiche percettive perché perdefinizione i risultati della codifica sono solo percettivamente indistinguibili daglioriginali e numericamente non si ha nessun vincolo.

Page 122: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-11

La valutazione ottima potrebbe venire da strumenti automatici di misurazione della qualità percettivadi un segnale audio, ma tali modelli sono di complessa progettazione coinvolgendo fenomeni percettiviumani che non sono ancora del tutto stati studiati.Attualmente non è disponibile nessuno strumento affidabile per la valutazione automatica della qualità.

Un interessante modello oggettivo di valutazione della qualità è stato proposto da Beerens eStendermink ma non ne esiste una implementazione utilizzabile [Beerends].Tale modello si basa su una rappresentazione interna delle due sequenze da confrontare,rappresentazione interna che simula il comportamento dell'apparato uditivo ed è in grado di indicare laqualità percettiva della sequenza di raffronto rispetto a quella di riferimento.

Per la valutazione della qualità del segnale audio abbiamo così cercato delle tecniche "numeriche-percettive" affidabili.La definizione "numeriche-percettive" deriva dal fatto che si usano confronti numerici di grandezzetipicamente percettive come l'SMR o MNR.Tali metodi sono basati sul confronto tra alcuni parametri numerici delle:

• forma codificata del segnale originario (riferimento)• forma codificata del segnale elaborato (raffronto).

La codifica della sequenza di riferimento permette l'estrazione delle grandezze percettive (SMR, MNR).

Anche se in tale processo entrano in gioco considerazioni percettive (sequenze diverse possono averela stessa qualità in ascolto) è vero che due sequenze sono tanto più simili in ascolto tanto più la lorocodifica numerico-percettiva è uguale.

Elaborazionesegnali

MPEG

Elaborazione

segnali originali

PCM

CODIFICA

CONFRONTO

Estrazione grandezze

"percettive": SMRMNR

Estrazione grandezze

"percettive": SMRMNR

Valutazione

Fig. 5.3 Schema per la valutazione numerica-percettiva.Si fa notare che come riferimento si considera la sequenza ottenutadall'elaborazione sugli originali PCM, sequenze che non sono disponibilinel caso reale di applicazione della codifica MPEG per la memorizzazionedei segnali audio.

Per valutare la bontà dei risultati, una vota verificato il corretto funzionamento delle procedure ci si èaffidati all'esame della forma codificata pur eseguendo una verifica supplementare in ascolto dellasequenza decodificata e di riferimento.

Page 123: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-12

Rimangono ancora da definire i criteri su cui viene compiuto il confronto e quindi su quali basi si fa lavalutazione, tali aspetti saranno affrontati nel seguito di questo capitolo e avranno come scopol'ottenere una valutazione il più possibile "oggettiva".

Ovviamente le codifiche per essere significative devono essere fatte con le stesse caratteristiche(stessi : layer, bitrate, modelli psicoacustici, ......)

5.7.1. ... regole per valutazioni "oggettive" ...Come riferimento ovvero come massima qualità raggiungibile si considera la sequenza ottenutadall'elaborazione degli originali PCM (X) e la relativa forma codificata (Y).

PCM Codifica

PCM Codifica

Elaborazione

PCMCodifica

Trasmissione

Decodifica

Ascolto

X

Y

Fig. 5.4 Sequenze audio usate come riferimento ; ci si basa sulle sequenze originaliPCM elaborate e della relativa forma codificata.

Come caso reale di elaborazione PCM avendo a disposizione i codificati , ovvero le reali operazioni chedevono essere eseguite per l'elaborazione in mancanza di tecniche per l'elaborazione del segnalecompresso si sono prese le sequenze (C) e (D) che sono rispettivamente la forma codificata MPEG ela forma PCM disponibile in ascolto (decodificata)

PCM

MPEG

CodificaMemorizzazione

PCM Codifica

Decodifica

Decodifica

Elaborazione

PCM Codifica

Trasmissione

Decodifica

Ascolto

D

C

Fig. 5.5 Sequenze audio usate come riferimento usando come ingresso le sequenzecodificate MPEG e ricodificandole per ricostruire il caso reale in cui unsegnale dopo l'elaborazione deve essere memorizzato o trasmesso.

Come ultime sequenze di confronto si sono usate quelle ottenibili nel caso in cui sia disponibile unmetodo (quello costruito durante lo sviluppo della tesi) di elaborazione del segnale MPEG, che daorigine alle sequenze (A) e (B)

Page 124: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-13

Elaborazione

MPEG Trasmissione

Decodifica

Ascolto

PCM

MPEG

CodificaMemorizzazione

PCM Codifica

A

B

Fig. 5.6 Sequenze audio usate come riferimento usando come ingresso le sequenzecodificate MPEG ed elaborandole nel dominio codificato MPEG .

Per confermare la validità generale del metodo di elaborazione del segnale MPEG si vuole che ilrisultato sia non peggiore dell'elaborato sui PCM decodificati e potrà essere peggiore dell'elaborazioneottima sui sorgenti PCM.Dico validità generale perché per alcune applicazioni può essere accettabile anche un risultato peggioredell'elaborazione sui decodificati PCM pur di non introdurre ritardi (caso tipico è la trasmissione dicontributi in tempo reale).

Inoltre non necessariamente un risultato peggiore è disturbante infatti può essere (e capita quasisempre a bitrate alti) che la codifica sia numericamente peggiore ma suoni percettivamente allo stessomodo ad esempio perché vi è un certo margine di elaborazione8.Tutto ciò va ad aumentare la richiesta di metodi per l'elaborazione del segnale codificato.

5.7.2. Criteri di ConfrontoPer eseguire i confronti ed ottenere una valutazione dei risultati si è verificata la possibilità di controllinumerici algoritmici sulle forme codificate ma tale confronto non fornisce risultati significativi perché se(A), (D), (X) differiscono, non si ha nessuna informazione su dove, perché ed in che misura.Tali confronti possono essere significativi solo come conferma e raffinamento delle tecniche dielaborazione, quindi i metodi algoritmici funzionano solo come conferma finale ma non come base sucui sviluppare metodi di elaborazione.

Le valutazioni sono state divise in :

di basso livello : basate sul confronto delle forme numeriche Frame a Framedi alto livello : basate sui dati riassuntivi di tutti i Frame della sequenzain ascolto : ascolto delle sequenze per una conferma dei risultati numerici

Ne segue che per le prime valutazioni si è optato nella comparazione manuale (confronto di bassolivello) di alcuni Frame scelti tra gli 800 tipici di una sequenza codificata9 e di verificare gli effettidell'elaborazione in ascolto, confronti molto laboriosi ma che sono stati necessari per capire comevengono codificate le sequenza e verificare la bontà delle tecniche adottate.

8Margine di elaborazione che dipende da quanto il valore di MNR è maggiore di zero.

9 Corrispondenti a circa 20 secondi di musica che sono indicati come tempo ottimale per le provesoggettive. Sequenze più corte non permettono una accurata analisi mentre intervalli piùlunghi sono difficilmente confrontabili per via della capacità limitata della memoria a brevetermine dell'uomo.

Page 125: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-14

Una volta verificata la validità delle tecniche di elaborazione con i confronti Frame a Frame di bassolivello, una conferma generale della bontà della codifica è stata trovata valutando gli scarti quadratici diSMR, BIT ALLOCATION e FATTORI DI SCALA per tutta la sequenza e rappresentandoli in forma grafica(confronto di alto livello) .Secondo tale criterio è anche stata preliminarmente verificata la degradazione del segnale per co-decodifiche in cascata e l'influenza della fase sui risultati della codifica.

La conferma dei dati numerici è stata ottenuta dall'ascolto delle sequenze elaborate.

Nei sottoparagrafi che seguono si illustra e si motiva l'organizzazione dei dati e la forma di esposizioneusata per i confronti

5.7.3. Valutazioni di Basso LivelloPer il confronto delle forme codificate ho scritto alcune funzioni 'C' per la memorizzazione su file(identificati dai suffissi .LBA, .RBA, .SMR, .MNR, .TAB) delle principali strutture dati della formacodificata MPEG.Nei paragrafi seguenti si espongono solo le tecniche di valutazione mentre i risultati delle valutazionisaranno esposte nei Capitoli seguenti.

Page 126: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-15

5.7.3.1. .LBA e .RBACopia su due file delle bit allocation e dei livelli di quantizzazione di ogni sottobanda dei canali destro esinistro.Sono usati soprattutto per confrontare il numero di livelli di quantizzazione associati alle bande di ogniFrame delle sequenze codificate:

Frame 192 Bass.lba384 KBit/sec

+8 : snr 55.930000+6 : snr 43.840000+5 : snr 37.750000+7 : snr 37.750000+6 : snr 31.590000+6 : snr 31.590000+6 : snr 31.590000+4 : snr 20.840000+6 : snr 31.590000+5 : snr 25.280000+6 : snr 31.590000+7 : snr 98.010000+5 : snr 25.280000+3 : snr 16.000000+6 : snr 31.590000+4 : snr 20.840000+4 : snr 20.840000+5 : snr 25.280000+5 : snr 25.280000+5 : snr 25.280000+3 : snr 16.000000+1 : snr 7.000000+1 : snr 7.000000+0 : snr 0.000000+0 : snr 0.000000+1 : snr 7.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000

Frame 192 Bass.rba384 KBit/sec

+7 : snr 49.890000+5 : snr 37.750000+5 : snr 37.750000+7 : snr 37.750000+6 : snr 31.590000+6 : snr 31.590000+7 : snr 37.750000+4 : snr 20.840000+6 : snr 31.590000+6 : snr 31.590000+6 : snr 31.590000+7 : snr 98.010000+4 : snr 20.840000+4 : snr 20.840000+5 : snr 25.280000+4 : snr 20.840000+4 : snr 20.840000+5 : snr 25.280000+5 : snr 25.280000+5 : snr 25.280000+3 : snr 16.000000+1 : snr 7.000000+1 : snr 7.000000+0 : snr 0.000000+0 : snr 0.000000+1 : snr 7.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000+0 : snr 0.000000

Fig. 5.7 File .LBA e .RBA per la sequenza bass.mpg, per ogni banda sono riportatii valori di BIT ALLOCATION ed il corrispondente valore di SNR memorizzatoin una tabella in funzione del numero di livelli di quantizzazione.

Page 127: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-16

5.7.3.2. .MNR :Riporta l'MNR calcolato con [MNR = SNR - SMR] dove l'SMR è quello calcolato dal modellopsicoacustico e l'SNR è dato tabulato in dipendenza dei livelli di quantizzazione.Tale file viene usato anche per avere informazioni sull'SMR .

Frame : 192 vers.3.00 FILE bass.mpg 384 KBit/sec. layer II

Sb MNR | B_a | SMR | [Fattori di scala] | 0 19.16 , 13.34 | 8 , 7 | 36.8 36.6 |[ 6 6 6] [ 6 6 6] | 1 19.10 , 13.44 | 6 , 5 | 24.7 24.3 |[22 16 16] [22 16 16] | 2 16.50 , 16.90 | 5 , 5 | 21.2 20.8 |[26 17 17] [25 17 17] | 3 14.55 , 14.94 | 7 , 7 | 23.2 22.8 |[28 18 14] [27 18 14] | 4 15.67 , 16.05 | 6 , 6 | 15.9 15.5 |[31 14 14] [31 14 14] | 5 16.70 , 17.08 | 6 , 6 | 14.9 14.5 |[28 10 10] [27 10 10] | 6 13.74 , 18.29 | 6 , 7 | 17.8 19.5 |[27 10 10] [27 9 12] | 7 14.48 , 14.87 | 4 , 4 | 6.4 6.0 |[24 14 14] [24 14 14] | 8 15.84 , 16.25 | 6 , 6 | 15.8 15.3 |[24 10 10] [24 10 10] | 9 13.82 , 18.56 | 5 , 6 | 11.5 13.0 |[33 12 16] [33 11 15] |10 16.66 , 17.09 | 6 , 6 | 14.9 14.5 |[23 14 14] [23 14 14] |11 78.60 , 79.03 | 7 , 7 | 19.4 19.0 |[27 12 12] [27 12 12] |12 17.22 , 13.21 | 5 , 4 | 8.1 7.6 |[29 17 17] [29 17 17] |13 13.72 , 16.97 | 3 , 4 | 2.3 3.9 |[31 20 20] [31 19 22] |14 19.06 , 13.17 | 6 , 5 | 12.5 12.1 |[36 16 21] [36 16 21] |15 14.44 , 14.85 | 4 , 4 | 6.4 6.0 |[31 20 24] [31 20 24] |16 13.46 , 13.87 | 4 , 4 | 7.4 7.0 |[37 19 25] [37 19 25] |17 16.53 , 16.95 | 5 , 5 | 8.8 8.3 |[33 19 24] [33 19 23] |18 16.05 , 16.45 | 5 , 5 | 9.2 8.8 |[34 20 24] [34 20 23] |19 13.52 , 13.86 | 5 , 5 | 11.8 11.4 |[34 19 26] [34 19 25] |20 13.87 , 13.96 | 3 , 3 | 2.1 2.0 |[40 22 22] [40 22 22] |21 14.82 , 14.83 | 1 , 1 | -7.8 -7.8 |[34 22 22] [34 22 22] |22 18.82 , 18.82 | 1 , 1 |-11.8 -11.8 |[36 21 21] [36 21 21] |232425 18.82 , 18.82 | 1 , 1 |-11.8 -11.8 |[41 21 21] [41 21 21] |

Fig. 5.8 Esempio dei dati di un frame scritto sul file Bass.MNR .MNR, BIT ALLOCATION, SMR e FATTORI DI SCALA sono riportati per i duecanali stereofonici.

Page 128: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-17

5.7.3.3. .SMRRiporta i valori di SMR calcolati dal modello psicoacustico ed il valore della soglia per ogni sottobandanormalizzata al livello di 90,390 dB (valore indicato dalle specifiche).Tale soglia si intende per il file moltiplicato per il livello di elaborazione.Esempio :

File SMRFrame numero : 192 File : Livello: 0.5

SB|Smr [dB Mask*lvl] |Smr [dB Mask*lvl] | 0|36.8 [ 5 5 5] |36.5 [ 6 6 6] | 1|24.7 [ 1 7 7] |24.3 [ 2 8 8] | 2|21.2 [ 1 10 10] |20.9 [ 2 10 10] | 3|23.2 [ -3 7 11] |22.8 [ -2 7 11] | 4|15.9 [ 1 18 18] |15.5 [ 2 19 19] | 5|14.9 [ 5 23 23] |14.5 [ 7 24 24] | 6|17.9 [ 3 20 20] |19.5 [ 2 20 17] | 7| 6.4 [ 18 28 28] | 6.0 [ 18 28 28] | 8|15.8 [ 8 22 22] |15.3 [ 9 23 23] | 9|11.5 [ 4 25 21] |13.0 [ 2 24 20] |10|14.9 [ 10 19 19] |14.5 [ 11 20 20] |11|19.4 [ 2 17 17] |19.0 [ 2 17 17] |12| 8.1 [ 11 23 23] | 7.6 [ 12 24 24] |13| 2.3 [ 15 26 26] | 3.9 [ 13 25 22] |14|12.5 [ 0 20 15] |12.1 [ 0 20 15] |15| 6.4 [ 11 22 18] | 6.0 [ 11 22 18] |16| 7.4 [ 4 22 16] | 7.0 [ 4 22 16] |17| 8.8 [ 6 20 15] | 8.3 [ 7 21 17] |18| 9.2 [ 5 19 15] | 8.8 [ 5 19 16] |19|11.8 [ 2 17 10] |11.4 [ 3 18 12] |20| 2.1 [ 6 24 24] | 2.0 [ 6 24 24] |21|-7.8 [ 22 34 34] |-7.8 [ 22 34 34] |22|-11.8[ 24 39 39] |-11.8[ 24 39 39] |23|24|25|-11.8[ 19 39 39] |-11.8[ 19 39 39] |26|

Fig. 5.9 Esempio dei dati di un frame scritto sul file bass.SMR la soglia indica ilvalore in dB normalizzato a 90,390 dB del valore della soglia dimascheramento riferita al segnale per il livello 0.5 :(Valore_segnale_livello_dB - SMR).Il valore in dB del segnale viene trovato direttamente dal valore del fattoredi scala ( tre per ogni sottobanda) e moltiplicando in deciBel per il fattorelivello(0.5).

( ) ( )livLoglivA AdB *10*10* 10

10=

Page 129: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-18

5.7.3.4. .TABRiporta in forma riassuntiva gran parte dei dati di ogni frame ed in particolare la bit allocation, il numerodi livelli corrispondenti, i fattori di scala , l'SNR, l'SMR e MNREsempio:

File bass.TABDati frame 192 FILE HDR: s=FFF, id=1, l=2, ep=1, br=E, sf=1, pd=0,pr=0, m=0, js=0, c=0, o=0, e=0layer=II, tot bitrate=384,sfrq=48.0,mode=stereo,sblim=27,jsbd=27,ch=2

Sb-> Liv(B_a) | Fattori Scala | SNR | MNR | SMR 0->511(8)255(7)| 6 6 6 : 6 6 6|55.9 49.9 |+19.2 +13.3|+36.8 +36.5 1->127(6) 63(5)|22 16 16 : 22 16 16|43.8 37.8 |+19.1 +13.4|+24.7 +24.3 2-> 63(5) 63(5)|26 17 17 : 25 17 17|37.8 37.8 |+16.5 +16.9|+21.2 +20.9 3-> 63(7) 63(7)|28 18 14 : 27 18 14|37.8 37.8 |+14.6 +14.9|+23.2 +22.8 4-> 31(6) 31(6)|31 14 14 : 31 14 14|31.6 31.6 |+15.7 +16.0|+15.9 +15.5 5-> 31(6) 31(6)|28 10 10 : 27 10 10|31.6 31.6 |+16.7 +17.1|+14.9 +14.5 6-> 31(6) 63(7)|27 10 10 : 27 9 12|31.6 37.8 |+13.7 +18.3|+17.9 +19.5 7-> 9 (4) 9(4)|24 14 14 : 24 14 14|20.8 20.8 |+14.5 +14.9| +6.4 +6.0 8-> 31(6) 31(6)|24 10 10 : 24 10 10|31.6 31.6 |+15.8 +16.2|+15.8 +15.3 9-> 15(5) 31(6)|33 12 16 : 33 11 15|25.3 31.6 |+13.8 +18.6|+11.5 +13.010-> 31(6) 31(6)|23 14 14 : 23 14 14|31.6 31.6 |+16.7 +17.1|+14.9 +14.511-> 31(6) 31(6)|27 12 12 : 27 12 12|31.6 31.6 |+16.7 +17.1|+14.9 +14.512-> 15(5) 9(4)|29 17 17 : 29 17 17|25.3 20.8 |+17.2 +13.2| +8.1 +7.613-> 7 (3) 9(4)|31 20 20 : 31 19 22|16.0 20.8 |+13.7 +17.0| +2.3 +3.914-> 31(6) 15(5)|36 16 21 : 36 16 21|31.6 25.3 |+19.1 +13.2|+12.5 +12.115-> 9 (4) 9(4)|31 20 24 : 31 20 24|20.8 20.8 |+14.4 +14.8| +6.4 +6.016-> 9 (4) 9(4)|37 19 25 : 37 19 25|20.8 20.8 |+13.5 +13.9| +7.4 +7.017-> 15(5) 15(5)|33 19 24 : 33 19 23|25.3 25.3 |+16.5 +16.9| +8.8 +8.318-> 15(5) 15(5)|34 20 24 : 34 20 23|25.3 25.3 |+16.0 +16.4| +9.2 +8.819-> 15(5) 15(5)|34 19 26 : 34 19 25|25.3 25.3 |+13.5 +13.9|+11.8 +11.420-> 7 (3) 7(3)|40 22 22 : 40 22 22|16.0 16.0 |+13.9 +14.0| +2.1 +2.021-> 3 (1) 3(1)|34 22 22 : 34 22 22| 7.0 7.0 |+14.8 +14.8| -7.8 -7.822-> 3 (1) 3(1)|36 21 21 : 36 21 21| 7.0 7.0 |+18.8 +18.8|-11.8 -11.823->24->25-> 3 (1) 3(1)|41 21 21 : 41 21 21| 7.0 7.0 |+18.8 +18.8|-11.8 -11.826->

Fig. 5.10 Esempio di un frame scritto sul file bass.TAB, vengono riportati informato decimale i valori di : bit_allocation, numero di livelli diquantizzazione, fattori di scala, SMR, SNR, MNR..Mancano i dati di SCFSI (perché ridondanti) e dei campioni frequenziali(perché privi di significato dal punto di vista della codifica).

Come si può notare i dati sono ripetuti ed i file dati sono spesso ridondanti ma si è scelto di usare lediverse forme per mettere in evidenza un particolare aspetto della codifica.

Gli esami manuali compiuti sono stati fatti sulle .TAB .SMR .*BA del file di riferimento e di quello diraffronto; si è cercato un riscontro generale su tutti gli 800 frame dall' ascolto dell'intera sequenza siadegli originali che della differenza.In tal modo la valutazione è stata ritenuta sufficientemente indicativa sul comportamento del softwaredi elaborazione.

5.7.4. Valutazioni di Alto LivelloPer le valutazioni di alto livello si sono usate rappresentazioni grafiche di alcuni parametri di qualitàdella codifica.Le strutture principali che determinano la qualità della codifica sono la BIT_ALLOCATION e l'SMR chetra l'altro sono strettamente dipendenti dato che la bit allocation dipende dai valori di SMR in ognisottobanda e dai bit disponibili per la codifica dei campioni frequenziali.Seguendo tale osservazione una valutazione in qualità delle sequenze elaborate è stata ottenutaconfrontando gli scarti quadratici dei valori numerici VAL rispetto al riferimento RIF.

Page 130: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-19

( )[ ] ( ) ( )[ ]NFrame

SUBBAND

ixxx ValRifNFrameSQM

_0

2_ ∑

=

−=

Come riferimento sono stati considerati BIT ALLOCATION, SMR e FATTORI DI SCALA dellaelaborazione compiuta sulle sequenze originali in PCM mentre come valori di confronto si usano icorrispondenti dei file elaborati nel dominio MPEG:

BIT_ALLOCATION : per analizzare i livelli di quantizzazione in ogni sottobanda, livelli chedanno un indicazione del rumore di quantizzazione e di quella che sarà la qualitàfinale del segnale decodificato.

SMR : è la struttura che contiene le misure "percettive" ovvero i valori della distanza in dB trasegnale e maschera stimata dal modello psicoacustico.

FATTORI DI SCALA : possono contribuire al degradamento del segnale per via dellaquantizzazione su 2 dB e del raggruppamento con la struttura SCFSI di quellientro 6 dB.

Per ottenere i dati necessari a quest'ultima analisi si è costruita una procedura che leggendo i file di tipo".MNR" della sequenza di riferimento e della sequenza da analizzare, produce un nuovo file in unaforma importabile da pacchetti grafici, ovvero con i valori numerici di SQM (SMR) e SQM (Bitallocation) per entrambi i canali monofonici in colonna separati da delimitatori.Vengono di seguito introdotte le rappresentazioni grafiche usate per la valutazione, l'analisi dei risultativiene affrontata nei capitoli successivi.

Le rappresentazioni grafiche usate sono:

LINEARE : La rappresentazione lineare rappresenta i valori di SQM per ogni frame ed i rapportiquantitativi tra SQM di elaborazioni successive.Generalmente in tale rappresentazione verranno riportati solo una parte di dati per nonrendere incomprensibile il tracciato.

SQM(SMR) canale sinistro

0

50

100

150

200

250

300

Passata 1

Passata 3Passata 5

Fig. 5.11 Rappresentazione lineare dei valori di SQM(SMR) calcolati per co-decodifiche in cascata della sequenza coleman.snd solo per le passatedispari ovvero per codifiche e decodifiche eseguite 1, 3, 5 volte.I dati rappresentati si riferiscono al canale sinistro di tale sequenza.In ascissa sono riportati i frame, in ordinata i valori di SQM.

Page 131: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-20

TRIDIMENSIONALE : Riporta su piani paralleli verticali ogni curva di rappresentazione di SQM.

Passata 1Passata 2

Passata 3Passata 4

Passata 50

100

200

300

SQM(SMR) canale sinistroPassata 1

Passata 2

Passata 3Passata 4

Passata 5

Fig. 5.12 Rappresentazione in forma tridimensionale dei valori ritenuti"rappresentativi" della qualità audio.

Nei capitoli successivi le rappresentazioni saranno usate per analizzare i risultati di co-decodifiche incascata e dell'influenza della fase sull'analisi del modello percettivo, inoltre con gli stessi metodi puòessere valutata l'efficienza delle tecniche di elaborazione del segnale codificato costruite durante losviluppo della tesi.

5.8. RITARDO INTRODOTTO DAI FILTRIPer il confronto tra sequenze elaborate MPEG e PCM bisogna tenere presente che il ritardo introdottodal processo di co-decodifica è di 481 campioni per canale al layer II ; tale ritardo si manifesta conl'aggiunta di campioni non significativi nella sequenza decodificata.

Il ritardo corrisponde nel dominio del tempo a 481*1/48000 = 10.002 msec.Ogni elaborazione del dominio PCM richiede quindi l'aggiunta di 10.002 msec al ritardo globale che èstato stimato in 40 msec per il layer II10.

Sequenza PCM Codifica e DecodificaSequenza PCM Decodificata

Aggiunta di

481 campionimonofonica

Fig. 5.13 Campioni di ritardo aggiunti dal processo di codifica e decodifica allayer II.Ogni passaggio di codifica e decodifica aggiunge 481 campioni nonsignificativi in testa alla sequenza decodificata.

Per molte applicazioni già il ritardo di 40 ms è critico e quindi è necessario non aumentarlo ogni voltache si devono compiere elaborazioni del segnale.Si tenga presente che per confrontare i codificati MPEG con i codificati PCM ottenuti elaborando isegnali decodificati i 481 campioni vanno eliminati prima dell' elaborazione PCM o appena dopo.Tale problema è fondamentale per codifiche e decodifiche in cascata.

Se non si eliminano i 481 campioni le elaborazioni in cascata perderanno in accuratezza perchéconsiderando nei Frame diversi gruppi di campioni si compie una analisi percettiva diversa per ognicodifica e decodifica.

10Ritardo dato dal tempo di elaborazione di sincronizzazione e delle trasformate tempo-frequenza.

Page 132: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-21

5.9. NOTE SULL'ELABORAZIONENei paragrafi che seguono sono riporate una serie di annotazioni fondamentali per l'elaborazione deisegnali MPEG.Si motivano le scelte fatte e se ne illustrano le conseguenze sia sulle procedure che sui risultati delleelaborazioni.

5.9.1. Formule di Quantizzazione e NormalizzazioneVengono riassunte le formule di quantizzazione e normalizzazione dei campioni di sottobanda perevidenziarne la natura non direttamente utilizzabile.

Per completezza si riportano anche le formule di dequantizzazione e denormalizzazione che andrannoapplicate per riottenere i campioni da memorizzare nella sequenza MPEG.Nelle formule riportate i coefficienti A, B, C, D sono tabulati nel Capitolo 3 "Specifiche tecnichecodifica MPEG" e dipendono unicamente dal numero di livelli su cui vengono quantizzati i campionifrequenziali della sottobanda.

QUANTIZZAZIONE:[ ] [ ]

( ) )int(_*

_ invertitoMSBsamplesamplequantlivelliBlivelliAsamplesample

=+=

DEQUANTIZZAZIONE:

( ) [ ][ ]livelliCsamplesampledequant

livelliDsamplesample invertitoMSB

*__

=

+=

NORMALIZZAZIONE :

norm samplesample

multiple Scale factor_ (int )

_=

DENORMALIZZAZIONE :denorm sample sample multiple Scale Factor_ * _=

Elaborando un segnale la situazione più frequente è di dovere compiere operazioni lineari sui campioni.Eseguire operazioni lineari su campioni denormalizzati e quantizzati è molto più semplice che compierele stesse operazioni su dati quantizzati e normalizzati; infatti in tal caso si dovrebbero ricavare nuoveformule che saranno di tipo non lineare dato che la quantizzazione e la normalizzazione in deciBelrichiedono l'uso di logaritmi ed esponenziali.

Quindi la forma dei campioni scelta per l'elaborazione è la forma denormalizzata e dequantizzataconsiderando anche il fatto che tale rappresentazione non introduce nessun tipo di ritardo per filtraggie richiede un modesto aumento della complessità di calcolo.

5.9.2. Calcolo Fattori di ScalaSe l'elaborazione del segnale codificato richiede una normalizzazione del segnale per un certo fattore(livello), bisogna ricalcolare i fattori di scala.

Tale operazione può essere eseguita in almeno in due modi:

Page 133: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-22

1. In modo diretto trovando delle formule che permettano di ottenere direttamente il nuovo fattoredi scala:Se indichiamo con old_indice il fattore di scala prima della normalizzazione e new_indice ilricalcolato dopo la normalizzazione, la formula che ho trovato è:

new indice old indice Loglivello

_ _= + FH IK101

if (new_indice > SCALE_INDEX) new_indice = SCALE_INDEX;

if (new_indice < 0) new_indice = 0;

I campioni frequenziali rimangono invariati.

2. In modo indiretto ricalcolando i fattori di scala dai valori dei campioni frequenziali.Le operazioni da seguire sono:

- Moltiplicare i campioni denormalizzati e dequantizzati per livello

- Ricalcolare i fattori di scala chiamando la function II_scale_factor_calc()11:

L'esame delle due possibilità porta a preferire la seconda soluzione dato che dal paragrafo precedentesi è evidenziata la convenienza di operare sui campioni frequenziali denormalizzati e dequantizzati.Inoltre tale modo di operare porta anche a risultati più accurati in quanto la soluzione 1 produce unvalore che deve essere quantizzato ancora su 2 dB ma di cui non si sa se considerare l'approssimazioneo il troncamento.

NOTA : Indipendentemente dalla tecnica usata per il ricalcolo dei FATTORI DI SCALA, la strutturaSCFSI deve essere ricalcolata.

5.9.3. Da Fattore di Scala a Intensità (dB)La tabella Tab 2.4 usata per memorizzare i valori dei FATTORI DI SCALA (corrispondenti agli INDICIDI SCALAMENTO) è quantizzata in modo uniforme con passo di 2 dB.Infatti si può notare che il rapporto tra due valori successivi è costante:

multiple jmultiple j

dB

+= =

11 258925412 10220, ∀ ∈j 0 62,

La quantizzazione dei fattori di scala su 2 dB può essere sfruttata per ottenere direttamente l'intensità indeciBel del segnale moltiplicando l'indice di scalamento per 2 e normalizzando al livello di riferimento.

Secondo le specifiche MPEG il valore di riferimento è di 90,390 dB , dunque la formula per passare dalvalore di INDICE DI SCALAMENTO al valore in deciBel è :

( ))-(-. 3__*239090 _ scalamentodiIndicedBvalore =

11La funzione II_scale_factor_calc( ) calcola come fattore di scala per ogni gruppo di 12 campioni ilmaggior indice j (valore in dB quantizzato appena superiore) al massimo campione tra i 12.Ovvero massimo j tale che (massimo_campione)<multiple[j].

Page 134: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-23

la sottrazione di 3 all'indice di scalamento dipende dal formato del file PCM in ingresso che èquantizzato su 16 bit.

5.9.4. Incremento Livelli per Segnali QuantizzatiIn questo paragrafo viene valutata la validità di aumentare il numero di livelli per un segnale giàquantizzato.Sicuramente non si ha vantaggio per un file codificato e non elaborato, altrimenti si avrebbe cheaumentando il numero di livelli di quantizzazione ovvero aumentando il bitrate la qualità del segnaleaumenta.Questo è assurdo dato che la quantizzazione è un processo irreversibile e quindi per una singolasequenza anche aumentando il numero di livelli la qualità rimane la stessa perché la maggior precisionedi livelli va solo a quantizzare un segnale con già del rumore intrinseco.La stessa cosa non è più vera per segnali elaborati (a meno che i segnali abbiano lo stesso numero dilivelli nella sottobanda) in particolare se ad esempio si mixano due file quantizzati su 5 e 7 livelli puòessere significativo assegnare al risultato 15 o 32 livelli dato che la quantizzazione non è lineare eentrano in gioco i fattori di scala .

5.9.5. Normalizzazione Segnali AudioUna caratteristica della codifica che è interessante esaminare è l'effetto sui valori numerici della sogliadi mascheramento quando si moltiplicano i campioni audio per un fattore (Normalizzazione) inferioread 1 ; operazione che è necessaria in molte elaborazioni.

Gli effetti di tale operazione sono differenti a seconda che i campioni siano nella forma PCM o sianoquelli di sottobanda della forma codificata.

... in PCM ...comporta la perdita di accuratezza della codifica perchè non tutti i livelli di quantizzazionevengono usati, in particolare non vengono usati i livelli di codifica dei segnali più intensi. Ilprocedimento non è reversibile perchè se si amplifica un file PCM precedentemente scalatosi amplifica anche il rumore di quantizzazione.

Livelli di quantizzazionenon usati

Intensita'

Tempo

PCM

N

K

Fig. 6.14 Rappresentazione di segnale come campioni PCM quantizzati su N livellie del segnale ottenuto moltiplicando l'originario per un fattore inferiore aduno.I livelli di quantizzazione più alti ( >K ) non vengono usati. Quindi ilsegnale scalato risulta quantizzato solo su N-K livelli.

Questo succede perchè la codifica è fissa (ogni campione è quantizzato su 16 bit) e lineare(non si usano fattori di scala).

... in MPEG ...

Page 135: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-24

non si ha la perdita del caso precedente ed anzi il processo diventa reversibile, ovviamentefinchè non si torna alla rappresentazione PCM.Tale risultato si ottiene grazie alla presenza del fattore di scala che è l'unica informazione damodificare.

Per fattori moltiplicativi molto minori di 1 può accadere che la forma codificata sia diversa daquella ottenibile con la stessa operazione in PCM (di riferimento).Tale comportamento può essere giustificato con il diverso contributo della soglia statica dimascheramento e non deve essere interpretato come un errore della codifica.Infatti se il segnale viene ridotto di intensità può succedere che assuma valori inferiori allasoglia statica in alcune zone dello spettro e quindi si ottengano diversi valori di SMR equindi di bit allocation sulle diverse bande.Per la forma della soglia statica le maggiori diversità si hanno nelle frequenze limiti dellospettro,

..... alle alte frequenze , dove tipicamente sono allocati un basso numero di livelli siottiene la soppressione di alcune bande

..... nelle bande basse diminuisce il numero di livelli allocati.

..... il guadagno di bit va a vantaggio delle bande intermedie per cui il numero di livelliallocati aumenta sensibilmente.

5.9.6. Aliasing per Bande SoppresseL'aliasing è stato definito nel Capitolo 1.1 "Il fenomeno suono" e consiste nelle componenti frequenzialierronee che si vengono a creare quando si campiona un segnale sotto la frequenza di Nyquist.

La codifica MPEG usando una divisione in 32 sottobande sottocampiona il segnale ad una frequenzaFs/32 in ogni sottobanda.Dato che i filtri realizzabili non possono avere una caratteristica perfettamente rettangolare quello chesuccede in pratica è che le sottobande non sono perfettamente affiancate ma sovrapposte:

Banda NBanda N-1 Banda N+1

Zona di sovrapposizione Zona di sovrapposizione

Fig. 6.15 Caratteristica dei filtri per la divisione in sottobande, l'intorno dellefrequenze di confine vengono campionate due volte.

Quindi la zona di confine tra due sottobande viene campionata due volte.

Questo campionamento sovrapposto implica che se viene soppressa l'allocazione di una sottobanda(ad esempio per diminuire il bitrate di una sequenza) possono diventare udibili alcune componentierronee di aliasing perchè viene a mancarne l'effetto di mascheramento.

L'affermazione precedente è dimostrata da simulazioni fatte da MPEG che confermanosperimentalmente che l'aliasing in ogni sottobanda rimane a livelli comparabili con il rumore diquantizzazione e quindi viene mascherato se il bitrate è sufficiente ad assegnare un numero di livelli cherendono impercettibile il rumore di quantizzazione.

5.9.6.1. Bande Soppresse a Bassi BitrateLe sequenze codificate a bassi bitrate hanno tipicamente le bande alte quantizzate su un limitatonumero di livelli (per effetto della soglia statica e del mascheramento delle bande adiacenti).

Page 136: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 5 "Introduzione alle elaborazioni" Davide Cilano

Pag. 5-25

Nell'elaborazione di sequenze audio può capitare che la dimensione del frame elaborato eccede ilnumero di bit disponibili per la memorizzazione, in tale situazione si deve decidere quali bandedecrementare tenendo presente che per le bande quantizzate con pochi livelli, il loro decremento portaalla loro soppressione con il possibile manifestarsi dell'aliasing secondo livelli imprevedibiliacusticamente.Infatti nella forma codificata non sono disponibili informazioni psicoacustiche per dedurre se l'aliasingsarà udibile o no e quindi la selezione di quali decrementare potrà essere fatta solo su base numerica.Se al contrario si sceglie di non sopprimere nessuna banda può succedere che si devono decrementaremolti livelli sulle rimanenti rendendo udibile del rumore di quantizzazione; infatti la soppressione di unabanda porta ad un alto guadagno di bit perchè si evita di memorizzare le strutture SCFSI, SCALEFACTOR

e CAMPIONI, mentre il semplice decremento fa risparmiare bit solo nell'allocazione dei CAMPIONI12.

Le tecniche di elaborazione devono tenere ben presente questa osservazione al fine di conservare laqualità dei segnali audio.

12Vedi a tale proposito la procedura II_dec_bit nell'Appendice C "Software di post_produzione".

Page 137: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6ELABORAZIONI NUMERICHE

6.1. FORMA NUMERICA DEL FRAME...............................................................................................16.2. PROBLEMI AFFRONTATI............................................................................................................46.3. SCHEMA ELABORAZIONE ..........................................................................................................56.4. DIFFICOLTÀ DI UNA ANALISI PSICOACUSTICA.....................................................................66.5. MPEG E IL JOINT_STEREO.........................................................................................................76.6. MODIFICA E COSTRUZIONE DELLA BIT_ALLOCATION........................................................7

6.6.1. Modifica Bit_Allocation:.................................................................................................86.6.2. Costruzione Bit_Allocation: ............................................................................................9

6.7. ELABORAZIONI NUMERICHE ....................................................................................................9

In questo capitolo si illustrano alcune tecniche di elaborazione del segnale codificato che non usanoinformazioni psicoacustiche (SMR, MNR) e se ne valutano i risultati.Alcune di esse si sono rivelate non immediatamente applicabili ma sono servite per riusciremanipolare in sicurezza la codifica senza usare la parte di informazioni ausiliarie (PAD).A renderne necessario lo studio è la mancanza di precedenti lavori in tale campo e l'assenza didocumentazione da cui trarre informazioni.

6.1. FORMA NUMERICA DEL FRAMELa forma numerica di un FRAME è piuttosto criptica; la sua memorizzazione o trasmissione è informato binario ed ogni singolo dato può occupare un numero di bit variabile da 2 a 16 . Una letturadiretta delle sequenze MPEG in formato binario, decimale o esadecimale è praticamenteincomprensibile.A confondere ancora di più la forma contribuisce la sintassi di codifica che non segue un formatofisso; il numero di bit con cui è memorizzata una informazione dipende spesso dai dati precedenti (adesempio è il caso dei campioni frequenziali che sono quantizzati con un numero di bit dipendente dalvalore di bit allocation e dalla tabella di quantizzazione).

Page 138: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-2

FFFDA400883333445522434433333349B6D20090000000000000AF0F1FFFFF5FFF0F24859A59A61D81872069F69E5997567598198187987577D77DC85C85989989F91F9239E39E0AA0AA3A62A63B298ECA63A62A2754377CC270F2EA5EB57717712749D55C55C0E1E729717859D72B88341B058254A8542B86A36CD8679C4702F44164A488E88F2B72B6FEBFB0750748D18FB98441105AAD645229A4D28508DC6ED72B7EFECD2D9E928774829A31A318E14A15755D6216216952205430C4312BB5A6D36DD6EF3E6DB6DD52A7730BD88A522E13CB362613E13BBBBBBB8EE3D48D483D7A3DD655354E251271B8E271368D1B6DB51B8DF3E635B6EF95385E5231CA1CAE3AD491A0C2E84B869121D6361F67DB55AB1A8958AC50201C0E1A3D1F7EF085C793F5AF69F98F22F22D70D505FA20EF0EF10201654A8AE2B8542AD96C4E2769526DB6E3B1DC321ADEEE52A5B8BDD136D3B0E95A95912449D9DD9E7CF955AA5B95C9A4D2753B1B8DA54B5AAD389C4E28B5B40A5D5E6B3EA41468C73B43B455354BCBBC3AF2C70688DB369269371B8DB6DB7CFDA6D36DB6D53E6B662EE54CA5E2B77397395A15A1220DA1C50D5B3656589BC2F0B6DA6DB6DB91C6F9F46E36DB6DA54AD6A3118A14FA7D630EB0EB2F32F2ADAB6B4AB6ADDBA616B4651989C4E45222F179CD272B95168B56ADAD562BD56BA5E2E61F21F62A62A5C4716C6EC7058B5D1C75354CEC764221151A8CD9B49A4254AB4689CEAF5E32578C76906B06B216A16A58922DB2DB3D7B33A95473D8E63395CACCC66589D389CB1D8E040BDC00

Fig. 6.1 Rappresentazione esadecimale di un frame MPEG (Frame 55 Bass.mpg)codificato stereo a 96KBit/sec per canale.La frequenza di campionamento è di 48KHz e determina (con il Bitrate)la dimensione di 576 Slot = 576 Byte = 4608 Bit = 1152 cifreesadecimali.È evidente che una tale rappresentazione è poco significativa.In grassetto è evidenziato l'header corrispondente ai primi 32 Bit al cuiinterno è chiaramente identificabile la syncword "FFF" corrispondente a12 '1' consecutivi.

Lo stesso frame interpretato secondo la sintassi di codifica in base decimale viene rappresentato nellaforma .TAB (vedi Capitolo 5 "Elaborazione segnale codificato") nel modo seguente:

Page 139: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-3

Dati frame 55 FILE HDR: s=FFF, id=1, l=2, ep=1, br=A, sf=1, pd=0,pr=0, m=0, js=0, c=0, o=0, e=0layer=II, tot bitrate=192,sfrq=48.0,mode=stereo,sblim=27,jsbd=27, ch=2

Sb Livelli(B_a)| Fattori Scala | SNR | MNR | SMR 0-->511(8) 511(8)| 9 9 9: 8 8 8|55.9 55.9|+13.3 +13.3|+42.6 +42.6 1--> 15(3) 15(3)|22 26 26:22 26 26|25.3 25.3| +8.6 +8.6|+16.7 +16.7 2--> 15(3) 15(3)|24 29 32:24 28 32|25.3 25.3|+16.5 +16.5| +8.8 +8.8 3--> 9(4) 9(4)|26 31 31:26 30 30|20.8 20.8|+11.5 +11.5| +9.3 +9.3 4--> 15(5) 15(5)|22 25 29:22 22 29|25.3 25.3| +9.9 +9.9|+15.3 +15.4 5--> 5(2) 5(2)|25 32 32:25 32 32|11.0 11.0| +7.9 +7.9| +3.1 +3.1 6--> 9(4) 7(3)|24 30 30:24 29 29|20.8 16.0|+13.2 +8.4| +7.6 +7.6 7--> 9(4) 9(4)|23 31 31:23 31 31|20.8 20.8|+12.1 +12.1| +8.8 +8.8 8--> 7(3) 7(3)|28 33 33:28 33 33|16.0 16.0|+11.9 +11.9| +4.1 +4.1 9--> 7(3) 7(3)|25 34 34:25 34 34|16.0 16.0| +8.4 +8.4| +7.6 +7.610--> 7(3) 7(3)|31 31 36:31 31 36|16.0 16.0| +8.7 +8.7| +7.3 +7.311--> 5(2) 5(2)|35 39 39:35 39 39|11.0 11.0| +7.8 +7.8| +3.2 +3.212--> 7(3) 7(3)|32 42 42:32 42 42|16.0 16.0|+11.2 +11.1| +4.8 +4.913--> 7(3) 7(3)|35 41 41:34 41 41|16.0 16.0|+12.7 +12.7| +3.3 +3.314--> 5(2) 5(2)|35 44 41:35 44 41|11.0 11.0|+11.5 +11.1| -0.5 -0.115-->16--> 3(1) 3(1)|35 41 41:34 40 40| 7.0 7.0|+14.4 +14.1| -7.4 -7.117-->18-->19-->20-->21-->22-->23-->24-->25-->26-->

Fig. 6.2 Rappresentazione di alcuni dati del FRAME di figura 6.1 in formadecimale secondo il formato .TAB.Come è evidente tale rappresentazione è più leggibile ed è stata ottenutainterpretando la sequenza binaria secondo la sintassi MPEG esposta alCapitolo 3 "Codifica MPEG Audio" in base decimale.Tutte le informazioni sono riportate per entrambi i canali stereofonici.

I valori calcolati dal modello psicoacustico possono essere rappresentati in forma grafica,evidenziandone le correlazioni.Sono riportati in ordinata i valori in deciBel ed in ascissa le sottobande.

-40

-20

0

20

40

60

80

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

SNRSMRMNR

Page 140: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-4

Fig. 6.3 Rappresentazione dei valori di SNR, SMR e MNR per il canale sinistrodel frame delle figure precedenti (Frame 55 di bass.mpg a 192 KBit/sec.).Si può osservare che l' SNR approssima l'andamento dell' SMR e questocomportamento è evidente dalla tecnica di allocazione (illustratanell'appendice B "Analisi del software" ) che cerca di rendere il piùpossibile piatto l' andamento dell' MNR..In questa particolare situazione si ha che l'MNR è sempre positivo e ciòsignifica che secondo l'analisi del modello psicoacustico nel frame nonc'è rumore di quantizzazione udibile.

Il valore di Bitrate è quello che più influenza la forma del frame, infatti più il bitrate è alto e maggiorisono i bit disponibili, quindi aumentano i livelli di quantizzazione allocabili ad ogni sottobanda.

Di seguito viene riportato lo stesso frame ad un bitrate superiore (192 KBit/sec. per canale) perillustrarne le conseguenze sul risultato della forma codificata.

-40

-20

0

20

40

60

80

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

S NRS MRMNR

Fig. 6.4 Rappresentazione grafica di MNR, SNR e SMR dello stesso frame dellafigura 6.3 ad un bitrate superiore ( 192 KBit/sec. per canale).

L'SMR ovvero il risultato del modello psicoacustico rimane invariato1 mentre l'MNR assume valoripressoché costanti e maggiori di zero, ciò dipende dall'alto bitrate che permette una quantizzazione supiù livelli (maggiore SNR) aumentando la qualità del segnale codificato.L'ottenere valori di MNR maggiori garantisce (se il modello percettivo è accurato) un buon margineper compiere elaborazioni sul segnale senza rendere udibile il rumore di quantizzazione.

La forma completa del frame di figura 6.4 nella forma .TAB è la seguente:

1Aumentano però il numero di bande allocate estendendosi fino alla 19_esima

Page 141: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-5

Dati frame 55 FILE HDR: s=FFF, id=1, l=2, ep=1, br=E, sf=1, pd=0,pr=0, m=0, js=0, c=0, o=0, e=0layer=II, tot bitrate=384,sfrq=48.0,mode=stereo,sblim=27,jsbd=27,ch=2

Sb Livelli(Bit_a) | Fattori Scala | SNR | MNR | SMR 0-->4095(11)4095(11)| 9 9 9: 8 8 8|74.0 74.0|+31.4 +31.4|+42.6 +42.6 1--> 255( 7) 255( 7)|22 26 26:22 26 26|49.9 49.9|+33.2 +33.2|+16.7 +16.7 2--> 63( 5) 63( 5)|24 29 32:24 28 32|37.8 37.8|+28.9 +28.9| +8.8 +8.8 3--> 63( 7) 63( 7)|26 31 31:26 30 30|37.8 37.8|+28.4 +28.4| +9.3 +9.3 4--> 127( 8) 127( 8)|22 25 29:22 22 29|43.8 43.8|+28.5 +28.5|+15.3 +15.4 5--> 31( 6) 31( 6)|25 32 32:25 32 32|31.6 31.6|+28.5 +28.5| +3.1 +3.1 6--> 63( 7) 63( 7)|24 30 30:24 29 29|37.8 37.8|+30.2 +30.2| +7.6 +7.6 7--> 63( 7) 63( 7)|23 31 31:23 31 31|37.8 37.8|+29.0 +29.0| +8.8 +8.8 8--> 63( 7) 63( 7)|28 33 33:28 33 33|37.8 37.8|+33.6 +33.6| +4.1 +4.1 9--> 63( 7) 63( 7)|25 34 34:25 34 34|37.8 37.8|+30.2 +30.2| +7.6 +7.610--> 63( 7) 63( 7)|31 31 36:31 31 36|37.8 37.8|+30.4 +30.4| +7.4 +7.311--> 31( 6) 31( 6)|35 39 39:35 39 39|31.6 31.6|+28.4 +28.3| +3.2 +3.312--> 31( 6) 31( 6)|32 42 42:32 42 42|31.6 31.6|+28.4 +28.4| +3.2 +3.313--> 31( 6) 31( 6)|35 41 41:34 41 41|31.6 31.6|+28.3 +28.3| +3.3 +3.314--> 31( 6) 31( 6)|35 44 41:35 44 41|31.6 31.6|+32.1 +31.7| -0.5 -0.115--> 9( 4) 9( 4)|36 47 40:36 46 40|20.8 20.8|+29.4 +29.0| -8.5 -8.116--> 15( 5) 15( 5)|35 41 41:34 40 40|25.3 25.3|+32.7 +32.3| -7.4 -7.117--> 7( 3) 9( 4)|34 42 42:34 41 41|16.0 20.8|+29.6 +34.0|-13.6 -13.118--> 3( 1) 3( 1)|36 43 43:36 43 43| 7.0 7.0|+35.1 +34.8|-28.1 -27.819-->20-->21-->22-->23-->24-->25-->26-->

Fig. 6.5 Rappresentazione .TAB del frame 55 di bass.mpg codificato stereo con192 KBit/sec per canale.Notare che anche numericamente i valori di SMR sono uguali a quellidella codifica con 96 KBit/sec. per canale riportati in figura 6.2

I valori di SMR e di MNR non sono disponibili nel decodificatore mentre è noto l'SNR perchédipende unicamente dal numero di livelli allocati.Dall'esame delle due codifiche ( 96 e 192 KBit/sec.) si nota che anche ad alti bitrate le bande allocatenon sono tutte 32 ma solo le prime 19 (0:18).Questo comportamento di allocazione è generalizzabile e modellizza la minore risoluzionedell'orecchio umano alle alte frequenze.Solo alcune persone particolarmente dotate (golden ear) riescono a percepire i suoni nelle bande alteche in ogni caso rimangono poco significativi nel contesto generale dello spettro sonoro.

La codifica si basa su modelli percettivi funzionanti per un ascoltatore medio dimensionato in base adanalisi statistiche delle capacità percettive di un gran numero di individui, questo basta a spiegare ilperché le tabelle di quantizzazione considerano solo le prime 27 sottobande scartando del tutto lapossibilità di allocare bit per suoni di frequenza superiore a 20250 Hz2.

6.2. PROBLEMI AFFRONTATIPer costruire tecniche di elaborazione del segnale codificato sono stati definiti alcuni casi particolariper valutare sia in ascolto che su base numerica la validità degli algoritmi.Lo scopo della tesi è però costruire tecniche applicabili alla più vasta classe di elaborazioni e quindigli studi sono stati fatti tenendo presente che devono essere applicabili nel caso generale.

Le elaborazioni del segnale considerate sono :

2Risultato ottenuto dal seguente calcolo:

Dimensione sottobanda in Hertz = (48000/2) / 32 = 750 HzFrequenza corrispondente alla 27_esima banda = (750 Hz) * 27 = 20250

Page 142: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-6

- Trasformazione di una sequenza da stereo a monoper ottenere il dimezzamento della capacità di canale richiesta.

- Modifica del bitrateoperazione che può essere necessaria per adattarsi alla capacità di un canale, adesempio è una operazione indispensabile nella distribuzione DAB dato che i bitrate tratrasmettitore, studio e ripetitore sono diversi e corrispondenti a una differente fedeltàdel segnale.

- Mixing di fileelaborazione che ha come scopo la sovrapposizione di un certo numero di segnalimoltiplicati per opportuni livelli.

- Mixing con livelli di loudnessoperazione simile alla precedente che comporta la modifica dei pesi moltiplicativi diogni file con dei fattori ottenuti dalle curve di loudness (in funzione della frequenza);cambiano solo le operazioni matematiche da compiere sui campioni in sottobanda.

- Sincronizzazioneshifting di campioni di sottobanda tra frame successivi, utile per ridurre il ritardo disincronizzazione.

La soluzione a tali problemi particolari può essere la base per una grande classe di elaborazioni dipost-produzione su segnali compressi secondo le specifiche MPEG.

6.3. SCHEMA ELABORAZIONEIndipendentemente dalla tecnica di elaborazione e dai risultati che si vogliono ottenere, l'elaborazionedi sequenze MPEG viene fatta seguendo il diagramma di flusso riportato:

Inizializzazione Strutture

Lettura file da elaborare

Controllo validita' dati immessi

Per tutti i FRAME

Elabora i frame dei file in ingresso

Scrivi il risultato su file

Leggi prossimi FRAME

FRAME File 1 FRAME File 2

FRAME Elaborato

Fig. 6.6 Schema delle operazioni seguite per compiere per l'elaborazione di unao più sequenze MPEG

L'elaborazione del segnale può essere ottenuta con operazioni matematiche lineari sui campioni disottobanda che si rifletteranno invariate nel dominio PCM.

Page 143: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-7

Infatti il filtro di sintesi ha la proprietà di linearità e quindi operazioni lineari sui campioni insottobanda si ripercuotono invariate sui campioni temporali.

Si riportano come esempio le operazioni matematiche per alcune elaborazioni sui campioni insottobanda :

STEREO MONO:

0_2

___

=

���

� +=

elaborato

elaborato

destrocanale

destrocanalesinistrocanalesinistrocanale

2 Sequenze stereo MIXING 1 sequenza stereo( )( )2211

2211

**_**_

livdestrolivdestrodestriocanalelivsinistrolivsinistrosinistrocanale

elaborato

elaborato

+=+=

2 Sequenze stereo MIXING 1 sequenza mono

0_2

**2

**_ 22112211

=

++

+=

elaborato

elaborato

destriocanale

livdestrolivdestrolivsinistrolivsinistrosinistrocanale

La parte più problematica delle elaborazioni è la ricostruzione dei livelli di quantizzazione(bit_allocation) per conservare la qualità in ascolto del segnale.Tali livelli devono adattarsi alla curva di mascheramento del segnale che è nota nella fase di codificama incognita in quella di decodifica.Ne segue che, mentre in fase di codifica si può stabilire una allocazione senza rumore udibile, neldecodificatore tale operazione diventa ardua a meno di studiare tecniche 'ad hoc' che hanno comeproblema principale:

"Come costruire la bit_allocation del segnale elaborato perconservare la qualità in ascolto ?"

6.4. DIFFICOLTÀ DI UNA ANALISI PSICOACUSTICANel decodificatore un modo immediato per ottenere informazioni sulla funzione di mascheramento èuna ulteriore analisi psicoacustica del segnale rappresentato nel dominio PCM.Tale soluzione non è applicabile se si vuole evitare di introdurre il ritardo dovuto all'applicazione delfiltro di sottobanda3 per la trasformazione dei campioni di sottobanda nel dominio PCM:

- l'uso del filtro introduce ritardo, cosa che si vuole a tutti i costi evitare- il riottenere direttamente i campioni per il modello psicoacustico dai campioni in sottobanda

non è una operazione semplice per via della diversa finestratura e accuratezzarichiesta nei due casi

- se anche venissero accettate le precedenti condizioni sfavorevoli, rimane il fatto chel'operazione di ricostruzione dei campioni frequenziali sarebbe più accurata esemplificata decodificando in PCM e ricodificando che equivale alla elaborazionenel campo PCM (operazione che si vuole evitare).

3Il filtro deve compiere l'operazione inversa al filtro di analisi che trasforma 1152 campioni di

sottobanda nel dominio del tempo. Per una descrizione dettagliata si rimanda al Capitolo 3del presente scritto ed alle reference di MPEG 11172 citate in bibliografia.

Page 144: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-8

6.5. MPEG E IL JOINT_STEREOL'unico suggerimento disponibile su come elaborare i segnali compressi è la procedura seguita daMPEG per implementare la modalità joint stereo.In tale modalità i due canali stereofonici sono tenuti separati fino a che si esegue l'allocazionedinamica e vengono valutate disponibilità e necessità di bit affinché non ci siano bande con rumore diquantizzazione udibile.Se la necessità supera la disponibilità vengono messe in joint stereo un certo numero di bande in altafrequenza per ridurre il numero di bande con rumore di quantizzazione udibile.L'operazione può essere assimilata alla trasformazione di un segnale compresso da stereo a monoanche se in effetti i fattori di scala vengono tenuti separati.

L'algoritmo di trasformazione da stereo a joint_stereo considera come unico valore di SMR ilmaggiore tra quelli dei due canali ovvero tiene per valida la bit allocation maggiore tra le due.

La reale trasformazione da stereo a mono differisce però da tale procedimento in quanto il segnalestereofonico viene mediato e si memorizza un solo fattore di scala variando l'intensità del segnale e diconseguenza anche il livello di mascheramento.

Per dimostrare come tale tecnica non sia applicabile si riporta come esempio il Frame 179 del filecoleman.mpg sia in formato stereo che nella modalità monofonica ottenuta dalla forma PCM primadella codifica a 192KBit/sec per canale.

STEREO MONOFrame : 179 vers.3.00

Sb MNR |b_a| SMR [ Soglia ]| SMR [ Soglia ]

0 18.35,19.94|7,7|31.5 [25 25 25]|29.9 [28 28 28] 1 23.81,22.33|5,6|13.9 [32 32 32]|21.5 [27 27 27] 2 17.68,19.60|4,5|13.9 [32 32 32]|18.2 [24 24 24] 3 19.98,18.96|5,5| 5.3 [33 33 33]| 6.3 [32 32 32] 4 23.23,19.06|6,5| 8.4 [32 32 32]| 6.2 [26 26 26] 5 18.45,19.96|5,5| 6.8 [27 27 27]| 5.3 [25 25 25] 6 18.82,22.51|5,6| 6.5 [24 24 24]| 9.1 [25 25 25] 7 17.80,21.50|4,5| 3.0 [25 25 25]| 3.8 [25 25 25] 8 23.80,18.40|6,5| 7.8 [31 31 31]| 6.9 [25 25 25] 9 19.36,20.98|5,5| 5.9 [30 26 26]| 4.3 [26 26 26]10 18.86,18.82|5,5| 6.4 [30 28 28]| 6.5 [26 26 26]11 20.09,18.36|5,5| 5.2 [29 29 29]| 6.9 [25 25 25]12 17.71,19.33|5,5| 7.6 [29 29 29]| 6.0 [30 24 24]13 23.86,23.48|6,6| 7.7 [29 29 29]| 8.1 [24 24 24]14 18.07,19.75|5,5| 7.2 [29 29 29]| 5.5 [27 27 27]15 19.89,18.21|5,3| 5.4 [31 31 31]|-2.2 [25 31 31]16 18.35,18.95|3,2|-2.3 [33 33 33]|-7.9 [34 34 34]17 20.51,22.59|1,1|-13.5[42 42 42]|-15.6[42 36 36]

Frame : 179 vers.3.00

Sb MNR |b_a|SMR [ Soglia ]

0 19.20| 7 |30.7 [26 26 26] 1 23.35| 5 |14.4 [30 30 30] 2 20.01| 5 |17.7 [25 25 25] 3 18.60| 5 | 6.7 [28 28 28] 4 23.93| 6 | 7.7 [27 27 27] 5 23.81| 6 | 7.8 [21 21 21] 6 17.80| 5 | 7.5 [19 19 19] 7 20.27| 5 | 5.0 [21 21 21] 8 23.92| 6 | 7.7 [19 27 27] 9 19.65| 5 | 5.6 [23 23 23]10 23.58| 6 | 8.0 [22 22 22]11 19.60| 5 | 5.7 [25 25 25]12 19.35| 5 | 5.9 [24 24 24]13 23.80| 6 | 7.8 [25 25 25]14 18.40| 5 | 6.9 [23 23 23]15 19.86| 4 | 1.0 [31 31 31]16 24.38| 3 |-8.4 [35 35 35]

Fig. 6.7 Confronto tra SMR e allocazione di un file stereo (Frame 179 dicoleman.mpg a 256 KBit/sec. modello 2) e della equivalente codificadopo la trasformazione mono in PCM (128 KBit/sec.)

Dal confronto tra codifica stereo e mono è evidente che non valgono le considerazioni per latrasformazione in joint_stereo.Dalla figura 6.7 si può anche osservare che i valori della soglia (SMR) del file mono e stereo sonodiversi; quello del file stereo non è la minima tra i dei due canali.

6.6. MODIFICA E COSTRUZIONE DELLA BIT_ALLOCATIONI valori di bit_allocation possono essere dedotti dalla forma codificata delle sequenze in ingressoseguendo almeno due criteri; Modifica e Costruzione.

Page 145: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-9

6.6.1. Modifica Bit_Allocation:

Si calcola la bit allocation del file elaborato dai valori delle bit allocation dei file coinvoltinell'elaborazione:

Frame sequenza 1 Frame sequenza 2

Frame elaborato

Operazioni matematiche sui campioni frequenziali

Bit allocation 1 Bit allocation 2

Bit allocation nuova sequenza

Per la stima della bit allocation si può seguire una delle seguenti:

1 - Considerare la massima tra le bit allocation dei sorgenti

La scelta deriva dall'osservazione del procedimento seguito da MPEG per la modalitàjoint-stereo per garantire la massima qualità della sequenza elaborata, qualità che peròviene confinata dalla dimensione del frame che limita la possibilità di assegnazione dilivelli.La validità di tale criterio dipende dalla bontà della tecnica di decremento della bitallocation fino a rientrare nella dimensione del frame.

2 - Considerare la bit allocation del segnale ad intensità maggiore

Tale tecnica deriva dalla considerazione che la maschera nella sequenza codificata edelaborata sarà sempre maggiore di quella di ognuna dei file sorgenti [Humes] e quinditenendo la bit allocation del segnale più intenso implicitamente equivale a considerare lamaschera maggiore e quindi ad aspettarsi che la sequenza codificata abbia unmascheramento molto simile al massimo tra i due mascheranti.Per intensità si considera quella corrispondente al massimo fattore di scala.

- La bit allocation stimata deve essere adattata alle dimensioni del frame

Page 146: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-10

6.6.2. Costruzione Bit_Allocation:

Si usano le informazioni contenute nelle sequenze codificate ed in base a considerazioniteoriche viene stimato il valore di soglia globale della sequenza da produrre.Dal valore di SMR si può così ricostruire la bit allocation richiamando la procedura diMPEG per l'allocazione dinamica.

Frame sequenza 1 Frame sequenza 2

Frame elaborato

Operazioni matematiche sui campioni frequenziali

Bit allocation nuova sequenza

Informazioni o stima SMR

Allocazione usandola procedura di MPEG

con l' SMR stimato

Le tecniche che appartengono alla classe di modifica sono alla base delle elaborazioni "Numeriche"mentre quelle di costruzione identificano le tecniche definite "Psicoacustiche".

6.7. ELABORAZIONI NUMERICHELe tecniche illustrate di seguito sono state implementate per modificare i valori di bit allocation erientrare nelle dimensioni del Frame.I valori di bit allocation vengono inizialmente dedotti da quelli dei file sorgenti secondo uno dei duecriteri di modifica.

Le tecniche di elaborazione sono state realizzate algoritmicamente e valutate confrontando i valori dibit allocation con quelli della sequenza di riferimento (ottenuta eseguendo la stessa elaborazione suglioriginali PCM e successivamente codificati):

Page 147: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-11

No

Si

Ingresso sequenze daelaborare

Elaborazione campionidi sottobanda

Estrazione valori bit_allocation

Stima nuova bit_allocation

Dim(Sequenza)>

Dim (Frame)

Formattazione e memorizzazione

Tecnica numerica di decremento

Fig. 6.8 Diagramma di flusso delle operazioni per l'elaborazione numerica disegnali compressi.

Sono state studiate più tecniche di modifica della bit allocation per rientrare nella dimensione delframe:

1 - Privilegiando nel decremento le bande alte dove l'orecchio ha minor sensibilità,tale criterio è nato dallo studio delle sequenze codificate a vari bitrate osservandoche diminuendo il bitrate di una sequenza diminuisce sia il numero di livelli allocatiglobalmente ma soprattutto diminuisce il numero di bande allocate venendo escluse lealte, infatti si può osservare che i valori di SMR minori sono localizzati nelle bandealte.

2 - Tenendo costante il rumore di quantizzazione introdotto dal decremento dei livelli diquantizzazione nelle sottobande.Il rumore di quantizzazione introdotto può essere misurato come differenza tra i valoriin deciBel dell'SNR prima e dopo il decremento.

3 - Decrementando con maggior priorità le bande in cui la bit allocation delle due sequenzein ingresso è maggiormente diversa, ovvero ipotizzando che la necessità di livelli diallocazione sia dipendente da entrambe quelle in ingresso.

Nessuna di queste tecniche ottiene risultati soddisfacenti tali da essere applicabili a reali elaborazionidi post-processing.La valutazione delle tecniche ed i risultati ottenuti indicano che una elaborazione efficiente devebasarsi su informazioni psicoacustiche stimate o fornite alla fase di decodifica.

I problemi principali nella tecnica di modifica della bit allocation su sola base numerica sonoimputabili all'errata ipotesi che i metodi di stima della nuova bit allocation si adattino alle capacitàpercettive dell'orecchio umano inoltre i metodi falliscono perché:

Page 148: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 6 "Elaborazioni Numeriche" Davide Cilano

Pag. 6-12

- I valori di bit_allocation dipendono dal bitrate, quindi elaborare sequenze con bitratediversi è insensato.

- I valori di bit_allocation di una sequenza stereofonica dipendono più dalla distribuzionedel segnale sui due canali monofonici, che non da reali parametri psicoacustici(si pensi agli enormi problemi dell'elaborazione della sequenza left-right)

- la bit allocation non dipende dai valori assoluti della funzione di mascheramento ma daivalori relativi tra quelli delle 32 sottobande.

Anche nell'ipotesi non reale che la stima della bit_allocation sia esatta, i metodi per raggiungere ladimensione del frame non ottengono risultati validi per il fatto che non può essere trovato un accuratocriterio per dedurre da che banda cominciare a decrementare, questa indeterminazione è esaltata nelcaso in cui (molto frequente a bitrate medi e bassi) ci siano bande allocate con valore unitario; un lorodecremento equivale alla soppressione della stessaSe forzatamente si evita di eliminare tali bande può essere necessario decrementare molte dellerimanenti rendendo udibile del rumore di quantizzazione.Infatti la soppressione di una banda porta ad un gran guadagno di bit perché non si memorizzano leinformazioni riguardo a :

... scfsi,

... scalefactor

... campioni.

invece il decremento di un indice di bit allocation permette di guadagnare solo bit sullamemorizzazione dei campioni frequenziali.

Come considerazione finale si indicano come non applicabili le tecniche di elaborazione basateunicamente su deduzioni dai valori di bit allocation e si configura indispensabile la conoscenza o lastima di quelle che sono state definite informazioni psicoacustiche (SMR, MNR).

Page 149: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-6

Capitolo 7COMPORTAMENTO

CODIFICA7.1. CALCOLO TEORICO INDETERMINAZIONE MEDIA ........................................................................... 1

7.1.1. Indeterminazione sui campioni di sottobanda....................................................................... 27.1.2. Indeterminazione sui Fattori di scala...................................................................................... 37.1.3. Indeterminazione raggruppamento Fattori di Scala............................................................ 47.1.4. Conclusioni................................................................................................................................... 5

7.2. EFFETTI DELLA FASE................................................................................................................................ 67.2.1. Risultati Sperimentali ................................................................................................................. 67.2.2. Algoritmo....................................................................................................................................... 77.2.3. Grafici ............................................................................................................................................ 77.2.4. Analisi Risultati ........................................................................................................................... 11

7.3. CO-DECODIFICHE IN CASCATA SENZA SFASAMENTO .................................................................. 137.3.1. Effetti delle co-decodifiche......................................................................................................... 137.3.2. Risultati Sperimentali ................................................................................................................. 137.3.3. Algoritmo....................................................................................................................................... 147.3.4. Grafici ............................................................................................................................................ 147.3.5. Analisi Risultati ........................................................................................................................... 18

7.4. ANALISI CO-DECODIFICHE IN CASCATA SFASATE ......................................................................... 207.4.1. Algoritmo....................................................................................................................................... 207.4.2. Grafici ............................................................................................................................................ 207.4.3. Analisi Risultati ........................................................................................................................... 24

Prima di proseguire lo studio di tecniche di elaborazione si ritiene utile esaminare il comportamento delsistema di codifica in situazioni di "disturbo", per dimensionare l' ineliminabile indeterminazioneintrodotta da ogni ciclo di codifica e decodifica.

Tale indeterminazione è dovuta sia all'eliminazione delle informazioni psicoacusticamente irrilevantiche alle quantizzazioni necessarie alla codifica digitale.In questo capitolo viene studiata l'indeterminazione deducendo i valori di approssimazione eesaminando le distribuzioni di:

• livelli di quantizzazione assegnati alle bande• scarti tra fattori di scala successivi

ottenute per via sperimentale.

Per esaminare il comportamento della codifica sono state ricreate ed esasperate per via algoritmicaalcune situazioni che possono verificarsi nell'elaborazione di segnali audio compressi.

Le diverse situazioni sono state studiate teoricamente si sono confrontate le aspettative con i risultatisperimentali ottenuti dalle seguenti simulazioni:

Page 150: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-7

• codifica della sequenza cambiando la fase• codifiche e decodifiche in cascata della stessa sequenza eliminando lo sfasamento del filtro• codifiche e decodifiche in cascata della stessa sequenza senza porre rimedio allo

sfasamento.

L'osservazione dei risultati porta ad identificare le situazioni e le caratteristiche audio più critiche per lacodifica ed i loro effetti sulle quantità numerico-percettive.

Di tutti i risultati sia teorici che numerici si è cercata una conferma in ascolto.

7.1. CALCOLO TEORICO INDETERMINAZIONE MEDIAL'indeterminazione ineliminabile presente nel procedimento di codifica può essere ottenutanumericamente dai valori in deciBel di quantizzazione.Le quantizzazioni eseguite nella codifica riguardano:

• valori dei campioni di sottobanda• valori dei fattori di scala• raggruppamento dei fattori di scala

CODIFICA

Indeterminazione

DECODIFICAPCM MPEG PCM

Fig. 7.1.1 Nella fase di codifica la quantizzazione digitale produce unaindeterminazione sulla codifica MPEG.Indeterminazione che influisce sulla accuratezza della sequenza PCMdecodificata.

Vengono analizzate in dettaglio le tre cause.

7.1.1. Indeterminazione sui campioni di sottobandaI campioni di sottobanda sono rappresentati in forma digitale con una indeterminazione media ugualealla metà del passo di quantizzazione.

Il suo dimensionamento numerico non è di immediata formulazione in quanto le 32 sottobande in cui ilsegnale è diviso, sono quantizzate su un numero di livelli variabile.Una stima del valore medio può essere ottenuto per via sperimentale osservando per una sequenza diriferimento quale è la distribuzione dei livelli di quantizzazione.Il valore reale può essere ottenuto ipotizzando che l'intervallo di osservazione sia rappresentativodell'allocazione di segnali generici ed applicando la :

Indeterminazione quantizzazione P quantizzazione livello rumore livellolivello 3

65535

_ ( ) * ( )= ==

∑12

Page 151: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-8

dove:- P(quantizzazione=livello) è la probabilità che il segnale nella sottobanda sia quantizzato

su un numero [livello] di passi- rumore(livello) è il rumore di quantizzazione usando [livello] passi e può essere ottenuto

dalla tabella di valori di SNR (Capitolo 3 "Specifiche tecniche MPEG_Audio"Tab3.5).

Per l'estrazione dei valori sperimentali si è usata come riferimento la sequenza audio di arpeggio diclavicembalo e si sono contati i livelli allocati alle 32 sottobande per 300 frame.I risultati ottenuti sono riportati nel grafico seguente che indica in ascissa i possibili livelli diquantizzazione ed in ordinata le occorrenze.Ogni occorrenza indica il livello di allocazione per tutti i 36 campioni di ogni sottobanda

0

200

400

600

800

1000

1200

1400

Fig 7.1.2 Distribuzione delle occorrenze dei livelli di quantizzazione per 300 framedella sequenza clavicembalo.Ogni occorrenza si riferisce ai 36 campioni di ogni sottobanda allocata.Il bitrate usato è di 256KBit/sec.

Dal grafico si può dedurre l'intensità media e la distribuzione del rumore di quantizzazione per ognicampione di sottobanda codificato secondo le specifiche MPEG.La distribuzione dei livelli è fortemente dipendente dal bitrate.Il grafico si riferisce ad un bitrate di 128 KBit/sec. per canale ovvero corrispondente alla qualità CD(PCM 16 bit).La distribuzione di livelli è concentrata su piccoli valori (9, 15, 31) e dimostra come, in primaapprossimazione, la codifica PCM (16 bit) sprechi una enorme quantità di bit quantizzandoindistintamente 65535 livelli ad ogni campione temporale.

Applicando le formule precedentemente riportate l'indeterminazione media in deciBel calcolata è di:

Indet_quant = (0.0596*7 + 0.0667*4 + 0.172*5 + 0.2565*4.84 + 0.1821*4.44 + 0.1382*6.31 +

0.0735*6.16 + 0.0410*6.09 + 0.0094*6.05 + 0.0025*6.04 + 0.0002*6) * 0.5 = 5.2 * 0.5

= 2.6 dB

dove i valori di rumore[livello] sono stati calcolati come scarto tra valori successivi di SNR associatoad ogni livello.

Page 152: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-9

7.1.2. Indeterminazione sui Fattori di scalaPer ogni banda vengono calcolati tre fattori di scala usando il massimo campione di sottobanda traogni gruppo di 12.Il valore ottenuto viene espresso mediante un indice di scalamento servendosi della tabella diconversione MULTIPLE[0..63].La tabella MULTIPLE[..] ha valori quantizzati ad una distanza di 2 dB per ogni indice, sufficienti acoprire una dinamica di 128dB per la codifica di segnali in formato PCM fino a 20 Bit per campione.Ne segue che ogni fattore di scala viene approssimato a 2 dB superiori e tale operazione introduce unaindeterminazione media di 1dB .Dato che ogni campione di sottobanda viene normalizzato dal valore di fattore di scala si aggiunge unerrore medio di 1dB al già presente rumore di quantizzazione su ogni campione.

7.1.3. Indeterminazione raggruppamento Fattori di ScalaL'ultima causa di indeterminazione in ordine di esposizione è quella dovuta al raggruppamentoattraverso la struttura SCFSI dei valori di indice di scalamento successivi che sono entro 6dB.Questa operazione è definita dallo standard ed è motivata da :

1. L'orecchio umano non è in grado di percepire variazioni in intensità inferiori a 6 dB2. I segnali audio melodici tipicamente presentano poche (rispetto alla durata dell'intera

sequenza) variazioni improvvise di intensità e quindi il raggruppamento permetteun alto guadagno di bit.MPEG indica che solo il 10% dei fattori di scala NON può essere raggruppatoperché oltre 6dB.

Per trovare conferma del punto 2 e delle indicazioni di MPEG è stata eseguita una simulazione sullasolita sequenza clavicembalo e per gli stessi frame della figura 7.1.2.Si sono contate le occorrenze del valore di scarto [conta] nel modo seguente:

• conta[|scf0-scf1|] ++• conta[|scf1-scf2|] ++

per ogni sottobanda allocata dei 300 Frame, i risultati sono riportati in forma grafica con in ascissa ivalori di scarto ed in ordinata le occorrenze.

0

2000

4000

6000

8000

10000

12000

14000

Page 153: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-10

Fig. 7.1.3 Distribuzione delle differenze in indici di scalamento tra i tre fattori discala di ogni sottobanda prima del raggruppamento con la strutturaSCFSI.Sono riportate sole le differenze fino al valore 34 sia per ragioni dileggibilità e sia a maggior ragione perché nella sequenza esaminata noncompaiono scarti superiori a tale valore.

Tale simulazione conferma le indicazioni di MPEG ovvero che è molto frequente il raggruppamento chese sotto un aspetto permette di risparmiare bit nella memorizzazione dall'altraintroduce una ennesima indeterminazione nella codifica.

Si ricorda che la differenza di un indice corrisponde a 2dB , quindi il raggruppare quelli entro 6dBequivale a tenere solo l'indice minore tra quelli in uno scarto entro 3 indici di scalamento.Si può osservare che il numero di differenze compatibilmente con le indicazioni di MPEG sonoconcentrate nei primi tre indici.

Il valore numerico in deciBel dell'indeterminazione può essere calcolato dai risultati precedentiapplicando la :

∑=

=3

0scarto

scartoazioneindeterminscartoPSCFSIazioneIndetermin )(*)(_

dove :• P(scarto) è la probabilità che due fattori di scala successivi abbiano indici diversi del

valore [scarto]• Indeterminazione(scarto) rappresenta il valore in dB dell'indeterminazione del

raggruppamento di due valori ad una distanza di [scarto]

Applicando la formula il valore che si ottiene è di :

Indeterminazione_SCFSI = (0.323*0 + 0.413*2 + 0.172*4 + 0.017*6) = 1.6 dB

7.1.4. ConclusioniOgni campione PCM passato attraverso i processi di codifica e decodifica presenta le seguentiindeterminazioni (per la sequenza di arpeggio di clavicembalo):

... 2.6 dB sulla quantizzazione dei campioni di sottobanda

... 1 dB sul livello del fattore di scala

... 1.6 dB per effetto del raggruppamento dei fattori di scala

I tre valori si può ipotizzare che sono distribuiti come i grafici riportati in figura 7.1.2 e figura 7.1.3,Ogni volta che un segnale viene codificato e decodificato è influenzato da tali fluttuazioni chediventeranno più o meno percepibili a seconda di come si compongono.La composizione delle tre indeterminazioni non è ottenibile in modo diretto in quanto:

... la quantizzazione dei campioni dipende dal bitrate e dalla sottobanda di appartenenza

... l'effetto del raggruppamento dei fattori di scala dipende dall'inviluppo temporale del segnale

... Non è possibile determinare una legge di correlazione tra livello di quantizzazione edindeterminazione di raggruppamento.

Ad ogni ciclo di codifica e decodifica le indeterminazioni stimate si sommano contribuendo alladegradazione del segnale.Questo aspetto fa da stimolo allo studio di tecniche di elaborazione nel dominio MPEG che almenoteoricamente dovrebbe essere interessato da un solo passaggio di codifica e decodifica ma che puòessere influenzato da indeterminazioni sulla stima delle grandezze psicoacustiche.Errore. Il segnalibronon è definito.Errore. Il segnalibro non è definito.Errore. Il segnalibro non è definito.

Page 154: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-11

7.2. EFFETTI DELLA FASEL'indeterminazione intrinseca in ogni sequenza dipende dall'inviluppo tempo-frequenziale del segnale.A seconda della forma del segnale audio gli effetti di indeterminazione possono venire più o menoamplificati e corrompere la qualità del segnale.Per studiare il comportamento della codifica e come si verificano numericamente gli effetti sovrappostidelle inaccuratezze di codifica sono state eseguite delle simulazioni su segnali sfasati.

Per fase del segnale si intende in questo paragrafo il diverso raggruppamento dei 1152 campioni di ogniFRAME, lo sfasamento di un segnale può essere ottenuto ad esempio aggiungendo in testa al segnalePCM un numero casuale (non multiplo di 1152) di campioni nulli, in tal modo la finestratura di 1152campioni risulterà diversa.

Cambiando la fase al segnale ovvero cambiando il raggruppamento dei campioni in ogni frame, cambiala porzione del segnale su cui viene eseguita sia l'analisi psicoacustica sia l'analisi spettrale della FFT.

Gli effetti che possono essere previsti teoricamente sono:

- I fattori di scala dovrebbero subire distorsioni nei punti di attacco di note percussive oisolate cioè dove percettivamente si ha la sensazione di aumento di intensità delsegnale audio.Questo comportamento deriva dal fatto che i fattori di scala vengono calcolati dopo ladivisione del segnale in sottobande e come già illustrato tale analisi produce unadistorsione con conseguente perdita di informazioni sulle componenti del segnale chesi trovano sui confini delle sottobande.

- La FFT ipotizza periodico il segnale nell'intervallo di osservazione (1152 campioni) , comeconseguenza si potrebbero avere valutazioni dello spettro corrotte per quantoriguarda le componenti agli estremi della finestra, soprattutto se la forma del segnaletemporale presenta componenti rilevanti e diverse ai limiti dell'intervallo diosservazione dei 1152 campioni.Infatti per poter eseguire la FFT il segnale viene ipotizzato periodico nell'intervallo diosservazione e quindi le componenti ai limiti vengono interpolate per poter avere laperiodicità.Tanto più tali componenti ai limiti dell'intervallo erano rilevanti e tanto saràamplificata l'indeterminazione nella codifica.

- Il modello psicoacustico stima la funzione di mascheramento sia dai fattori di scala(perottenere il livello del segnale) che dalla FFT ( per i valori di mascheramento), quindialmeno teoricamente si può prevedere che i risultati del modello saranno piuttostosensibili alla fase soprattutto per quei segnali definiti critici cioè con molti suonipercussivi o con note di attacco ben isolate e ben distinguibili in ascolto come rapideaumenti di intensità del segnale.

7.2.1. Risultati SperimentaliPoste le basi teoriche si è passati all'osservazione dei risultati sperimentali utilizzando una sequenzacritica quale l'arpeggio di clavicembalo ed analizzandone la forma codificata su passate successivecon fase diversa.Il bitrate usato è di 256 KBit/sec. e influisce solo sul numero di bande allocate ed eventualmente sulledifferenze di bit allocation (per via delle anomalie di allocazione su 3 livelli che possono sopprimere oallocare una banda in modo alquanto instabile).

I risultati ottenuti sono statati rappresentati in una forma grafica per una immediata interpretazione.La forma migliore che si è trovata è quella tridimensionale riportando le diverse analisi di fase (passate)nel modo seguente:

Page 155: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-12

• asse z: passate sfasate• asse x: frame• asse y: somma degli scarti quadratici di tutte le sottobande

Sono stati esaminati 130 frame (di più sarebbero stati non rappresentabili graficamente e ridondantinumericamente) estratti dalla parte della sequenza che anche in ascolto da i maggiori problemi ovveroquattro note arpeggiate su ottava alta.Sono stati analizzati i valori numerici della codifica che riguardano

• bit allocation• fattori di scala• SMR

tali informazioni sono state individuate come rappresentative della forma codificata, gli scarti quadraticisono stati ottenuti tenendo come riferimento la codifica della sequenza PCM.

7.2.2. AlgoritmoPer chiarire le operazioni seguite per ottenere i risultati della forma grafica si riporta in modo schematicol'algoritmo eseguito per ottenere tali dati.In pratica si aggiunge un numero casuale di campioni alla sequenza di raffronto, la si codifica edecodifica, si elimina il ritardo dei filtri e la si riporta in fase per eseguire il confronto.

1. Inizializza generatore numeri casuali

2. RAFFRONTO.SND=RIFERIMENTO.SND

3. Codifica file RIFERIMENTO.SND ottenendo RIFERIMENTO.MPG e RIFERIMENTO.MNR

4. Ciclo di ripetizione

5. Estrai un numero casuale #RND

6. Aggiungi #RND campioni nulli in testa a RAFFRONTO.SND ottenendo

RAFFRONTO.AGG

7. Codifica RAFFRONTO.AGG ottenendo RAFFRONTO.AGG-MPG

8. Decodifica RAFFRONTO.AGG-MPG ottenendo RAFFRONTO.AGG-DEC

9. Taglia 481 campioni di ritardo da RAFFRONTO.AGG.DEC ottenendo RAFFRONTO.TG

10. Taglia #RND campioni aggiunti per lo sfasamento a RAFFRONTO.TG ottenendo

RAFFRONTO. 2TG

11. Codifica RAFFRONTO.2TG ottenendo RAFFRONTO.2MPG e RAFFRONTO.2MNR

12. Calcolo SQM confrontando i file RIFERIMENTO.MNR e RAFFRONTO.2MNR

13. Ripeti dal punto 2

7.2.3. Grafici

Page 156: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-13

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06 Smr_07

Smr_08 Smr_09

0

100

200

300

400

500

600

Fase [F1]

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06

Smr_07

Smr_08

Smr_09

Fig.7.2.4 Rappresentazione grafica dei valori di scarto quadratico (SQM) di SMR della sequenza clavicembalo.Come riferimento si considera la codifica della sequenza PCM.Il grafico riporta solo i dati del canale 0 (sinistro) ma i risultati sono generalizzabili anche per il canale destro.

Page 157: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-14

B_A_00

B_A_0 1

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06 B_A_07

B_A_08 B_A_09

0

2

4

6

8

10

12

14

16

18

Fase [F1]

B_A_00

B_A_0 1

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06

B_A_07

B_A_08

B_A_09

Fig. 7.2.5 Rappresentazione grafica degli scarti di bit allocation della sequenza clavicembalo. La forma di rappresentazione è uguale a quella della figura precedente.

Page 158: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento codifica" Davide Cilano

Pag. 7-15

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06 scf_07

scf_08 scf_09

0

100

200

300

400

500

600

700

800

Fase [F1]

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06

scf_07

scf_08

scf_09

Fig. 7.2.6 Rappresentazione grafica dei valori di SQM dei fattori di scala per effetto dei raggruppamenti e della modifica della struttura del segnale dopo due co-decodifiche sfasate (la prima è usata come riferimento)

Page 159: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-13

7.2.4. Analisi RisultatiI risultati sperimentali sembrano confermare quelle che erano state annunciate come anticipazioniteoriche.

Rappresentando i precedenti grafici in una forma a due dimensioni (che evidenzia i numeri di frame incui si hanno i maggiori SQM) affiancati all'inviluppo in deciBel dei campioni temporali relativi agli stessi130 frame, è evidente che i maggiori scarti si hanno sugli attacchi e sui decadimenti delle note, questocomportamento può essere motivato a posteriori con l'osservazione che nei decadimenti è moltoimportante la microstruttura del segnale che è fatta di molte fluttuazioni mentre la stessa struttura èmeno importante negli attacchi.La microstruttura del segnale viene approssimata per effetto delle quantizzazioni.

Codecodifiche in cascata con sfasamento [CD2]

0

100

200

300

400

500

600

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06

Smr_07

Smr_08

Smr_09

Inviluppo segnale

0

10

20

30

40

50

60

Page 160: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-14

Fig. 7.2.7 Rappresentazione lineare dei valori di SQM di SMR e inviluppotemporale del segnale, possono essere confrontati i maggiori errori distima con la forma del segnale.In ascissa sono rappresentati i Frame.

La dipendenza della codifica dalla fase ne è un aspetto negativo in quanto la fase delle sequenze è deltutto casuale e questa dipendenza può creare dei problemi, considerazione che aumenta ancora unavolta i vantaggi di metodi di elaborazione nel dominio MPEG.

7.3. CO-DECODIFICHE IN CASCATA SENZA SFASAMENTONel precedente paragrafo si è valutata le indeterminazione di codifica su elaborazioni ad un solo passo.Eseguendo in successione più elaborazioni sulle stesse sequenze (più codifiche e decodifiche incascata) gli effetti già esaminati si compongono amplificandosi o compensandosi, aumentando di moltol'indeterminazione nel segnale finale con risultati imprevedibili in intensità ma ben motivabiliteoricamente alla luce dei precedenti risultati.

Nelle prime simulazioni si valuta l'influsso di co-decodifiche in cascata di segnali audio eliminando icampioni di ritardo aggiunti dal filtro.Questo mette il codificatore nella condizione ottima di poter eseguire sia l'analisi frequenziale che disottobanda sempre sulle stesse porzioni di segnale senza alcuno sfasamento.In tale situazione le degradazioni del segnale che si possono osservare sono dovute a :

• raggruppamento fattori di scala• successive quantizzazioni del segnale (bit_allocation)• quantizzazione del segnale su 2 dB

e viene ridotta al minimo la dipendenza dall'inviluppo del segnale.

7.3.1. Effetti delle co-decodificheCome effetto si può prevedere che :

I fattori di scala approssimati ad ogni passata a 2 dB e raggruppati entro 6 dB possonosubire sbalzi notevoli

I campioni di sottobanda ad ogni passata possono venire allocati su un numero diverso dilivelli di quantizzazione ed in tale situazione si può avere la modulazione del rumoredi quantizzazione con effetti disturbanti in ascolto.

La stima di SMR del modello psicoacustico dovrebbe degradare solo per effetto dell'erroresui fattori di scala in quanto dato che non c'è sfasamento l'analisi psicoacusticadovrebbe essere invariante sul numero di passate

I problemi per fattori di scala e SMR (e quindi bit_allocation) dovrebbero essere confinatinelle zone maggiormente critiche del segnale (decadimenti e attacchi improvvisi),quindi dovrebbero essere concentrati su particolari Frame.

7.3.2. Risultati SperimentaliLe prove sperimentali sono state eseguite servendosi di un algoritmo per la codifica e decodifica insuccessione della stessa sequenza.Ad ogni passata i dati ritenuti di rilevanza psicoacustica vengono memorizzati su file che può essereusato per il calcolo dei valori di SQM.Come riferimento si sono tenuti i dati della prima passata ovvero della codifica degli originali PCM.

Page 161: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-15

È da notare come la degradazione del segnale è intrinseca nella codifica ed INELIMINABILE.Essa è dovuta principalmente alla soppressione delle informazioni ritenute irrilevanti ed eliminate perraggiungere la dimensione del Frame.Anche per queste valutazioni si è analizzato l'arpeggio di clavicembalo perché particolarmentesignificativo.I Frame esaminati sono gli stessi 130 dell'analisi precedente (paragrafo 7.2).

7.3.3. AlgoritmoL'algoritmo usato per valutare l'effetto di co-decodifiche in cascata è il seguente:

1. Inizializza generatore di numeri casuali

2. Codifica file RIFERIMENTO.SND ottenendo RIFERIMENTO.MPG e RIFERIMENTO.MNR

3. Codifica file RAFFRONTO.SND ottenendo RAFFRONTO.MPG

4. Decodifica RAFFRONTO.MPG ottenendo RAFFRONTO.DEC

5. Taglia ritardo 481 campioni ottenendo RAFFRONTO.TG

6. Codifica RAFFRONTO.TG ottenendo RAFFRONTO.TG-MPG e RAFFRRONTO.TG-MNR

7. Calcolo SQM confrontando RAFFRONTO.TG-MNR e RIFERIMENTO.MNR

8. Copia RAFFRONTO.TG su RAFFRONTO.SND

9. Ripeti dal punto 3

Il riferimento è il risultato della codifica della sequenza originale PCM, il raffronto è la sequenzaottenuta di volta in volta dalle decodifiche del segnale.

7.3.4. GraficiI valori di SQM calcolati dai file .MNR sono stati rappresentati in una forma grafica per una immediataesposizione ed analisi.La forma usata è la solita tridimensionale che riporta :

• Frame• Passate successive• Valori di SQM

Nel seguito sono riportate tali rappresentazioni per gli SQM calcolati su:

• SMR• Bit allocation• Fattori di Scala

Page 162: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-16

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06 Smr_07

Smr_08 Smr_09

0

20

40

60

80

100

120

140

160

Codecodifiche in cascata senza sfasamento [CD1]

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06

Smr_07

Smr_08

Smr_09

Fig. 7.3.8 Rappresentazione dei valori di SQM di SMR per codifiche in cascata dell'arpeggio di clavicembalo al bitrate di 256KBit/sec totale (2 canali stereofonici). Sonorappresentati i valori di SQM di 130 Frame su passate di co-decodifica in cascata.

Page 163: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-17

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06 scf_07

scf_08 scf_09

0

50

100

150

200

250

300

350

Codecodifiche in cascata senza sfasamento [CD1]

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06

scf_07

scf_08

scf_09

Fig. 7.3.9 Rappresentazione dei valori di SQM di fattori di scala per codifiche in cascata dell'arpeggio di clavicembalo.

Page 164: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag 7-18

B_A_00

B_A_01

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06 B_A_07

B_A_08 B_A_09

0

2

4

6

8

10

12

14

Codecodifiche in cascata senza sfasamento [CD1]

B_A_00

B_A_01

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06

B_A_07

B_A_08

B_A_09

Fig. 7.3.10Rappresentazione dei valori di SQM di Bit allocation per codifiche in cascata dell'arpeggio di clavicembalo.

Page 165: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-20

7.3.5. Analisi RisultatiLe considerazioni che possono essere dedotte dai grafici concordano con le prove soggettive eseguite nelmaggio 1993 dalla RAI- Centro Ricerche di Torino-.Tali prove sono state fatte per dimensionare la degradazione del segnale a seguito di co-decodifiche disegnali critici a diversi bitrate, prove che hanno evidenziato la criticità della codifica per bitrate medi oltre lecinque o sei co-decodifiche in cascata.L'esame incrociato con i grafici di inviluppo temporale del segnale mette in risalto dove sono concentrati iproblemi.

0

50

100

150

200

250

300

350 scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06

scf_07

scf_08

scf_09

Inviluppo segnale

0

10

20

30

40

50

60

Page 166: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-21

Fig.7.3. 11 Rappresentazione comparata (bidimensionale) dei valori di SQM per ifattori di Scala, confrontati con l'inviluppo dei fattori di scala per la sestabanda della sequenza di arpeggio di clavicembalo.La figura superiore riporta gli stessi valori di SQM riportati nelle pagineprecedenti in forma tridimensionale.La figura inferiore riporta l'inviluppo dei fattori di scala per la sesta bandadella sequenza clavicembalo, banda rappresentativa dell'inviluppo dell'interosegnale.

I problemi sui fattori di scala sono concentrati in alcune bande confinate ai punti in cui ci sono bruschevariazioni di intensità del segnale, siano esse sugli attacchi o sui decadimenti; coerentemente con leosservazioni teoriche.

7.4. ANALISI CO-DECODIFICHE IN CASCATA SFASATEDopo avere studiato gli effetti di sfasamento e codifica separatamente il passo successivo è di osservare ilcomportamento con entrambe le situazioni sovrapposte, che rappresentano la condizione reale dielaborazione per la distribuzione radiofonica "live".

Le osservazioni a priori che si possono fare sono:

- Si dovrebbero rilevare gli stessi problemi dati dalla codifica dello stesso segnale sfasato. Infattii 481 campioni aggiunti come ritardo del filtro non vengono rimossi e producono queglieffetti già esaminati di sfasamento del segnale con conseguente perdita di accuratezzasugli attacchi e decadimenti improvvisi del segnale.

- I problemi dovrebbero amplificarsi sulle diverse passate per effetto dell'indeterminazioneintrinseca in codifiche e decodifiche in cascata esaminata al paragrafo 1.

- Gli errori dovrebbero sommarsi in modo abbastanza imprevedibile amplificandosi in alcunipunti e compensandosi in altri, rimane il fatto che le parti più critiche del segnale devonocoincidere con variazioni di intensità del segnale.

7.4.1. AlgoritmoViene riportato di seguito l'algoritmo seguito per ottenere le sequenze audio da valutare.

Page 167: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-22

0. RAFFRONTO.SND = RIFERIMENTO.SND

1. Inizializza generatore di numeri casuali

2. Codifica file di confronto RAFFRONTO.SND ottenendo RAFFRONTO.MPG

3. Decodifica RAFFRONTO.MPG ottenendo RAFFRONTO.DEC

4. Elimina ritardo 481 campioni da RAFFRONTO.DEC ottenendo RAFFRONTO.TG

5. Codifica RAFFRONTO.TG ottenendo RAFFRONTO.2MPG e RIFERIMENTO.2MNR

6. Codifica file di riferimento RIFERIMENTO.SND ottenendo RIFERIMENTO.MPG e

RIFERIMENTO.MNR

7. Calcolo SQM tra RIFERIMENTO.MNR e RAFFRONTO.2MNR

8. Estrai numero casuale #RND

9. Aggiungi #RND campioni a RIFERIMENTO.SND

10. Aggiunta #RND campioni a RAFFRONTO.SND

11. Ripeti dal punto 2

I confronti vengono quindi eseguiti tra la prima codifica (riferimento) e la seconda (raffronto) che è unmodo per poter avere a disposizione informazioni di tipo psicoacustico da confrontare.

7.4.2. Grafici

Page 168: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-23

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06 Smr_07

Smr_08 Smr_09

0

50

100

150

200

250

300

350

Codecodifiche in cascata con sfasamento [CD2]

Smr_00

Smr_01

Smr_02

Smr_03

Smr_04

Smr_05

Smr_06

Smr_07

Smr_08

Smr_09

Fig. 7.4.12 Rappresentazione dei valori di SQM per SMR per i 120 frame della sequenza clavicembalo. Sull'asse z sono riportate le passate dicodifica/decodifica successive.

Page 169: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-24

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06 scf_07

scf_08 scf_09

0100200300400500600700

800900

1000

Codecodifiche in cascata con sfasamento [CD2]

scf_00

scf_01

scf_02

scf_03

scf_04

scf_05

scf_06

scf_07

scf_08

scf_09

Fig. 7.4.13 Rappresentazione dei valori di SQM per fattori di scala. Sull'asse z sono riportate le passate di codifica/decodifica successive.

Page 170: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica"

Pag. 7-25

B_A_00

B_A_01

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06 B_A_07

B_A_08 B_A_09

05101520253035

4045

50

Codecodifiche in cascata con sfasamento [CD2]

B_A_00

B_A_01

B_A_02

B_A_03

B_A_04

B_A_05

B_A_06

B_A_07

B_A_08

B_A_09

Fig. 7.4.14 Rappresentazione valori SQM per la Bit Allocation calcolati come differenza con la sequenza di riferimento (codifica della sequenzaPCM originale)

Page 171: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 7 "Comportamento Codifica" Davide Cilano

Pag. 7-20

7.4.3. Analisi RisultatiI risultati confermano le anticipazioni teoriche e questo grazie soprattutto all'osservazione dei risultati sullafase che hanno permesso di apprendere e ampliare le conoscenze sul comportamento della codificamettendo in evidenza quali sono le parti e le caratteristiche del segnale che creano i maggiori problemi allacodifica.

Come considerazione generale si deve osservare che sia la fase che le codecodifiche presentano i maggiorivalori di scarto dal riferimento verso gli ultimi Frame del gruppo di 130 esaminati.Questi Frame corrispondono alle note più acute dell'arpeggio ovvero i maggiori problemi di elaborazionedelle sequenze si hanno in alta frequenza, mentre alle basse il sistema MPEG conservi maggiormente lecaratteristiche del segnale.Questo comportamento non lineare può andare a vantaggio della qualità in ascolto in quanto è già statodetto che l'orecchio umano ha una maggior risoluzione alle basse frequenze, mentre alle alte, la sogliastatica assume valori intensi, tali da mascherare le componenti inferiori a circa 70 dB.

Page 172: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8ELABORAZIONI

PSICOACUSTICHE

8.1. ENTROPIA MNR = ENTROPIA SMR........................................................................................................ 18.2. TRASMISSIONE MNR IN UN CANALE SEPARATO.............................................................................. 28.3. MODIFICA BITRATE ................................................................................................................................... 28.4. MIXING SEQUENZE.................................................................................................................................... 3

8.4.1. Studio Mascheramento............................................................................................................... 38.4.2. Applicazione alle Elaborazioni MPEG................................................................................... 58.4.3. Stima Livello di Mascheramento .............................................................................................. 58.4.4. Mascheramento tra Bande adiacenti....................................................................................... 78.4.5. Corrispondenza Bande - Bark................................................................................................... 98.4.6. Applicazione Formule di Pendenza ......................................................................................... 118.4.7. Localizzazione Mascheranti e loro intensità ......................................................................... 168.4.8. Confronto con la Soglia Statica ............................................................................................... 178.4.9. Algoritmo....................................................................................................................................... 19

8.5. SINCRONIZZAZIONE .................................................................................................................................. 218.5.1. Studio del Problema.................................................................................................................... 218.5.2. Rappresentazione Grafica.......................................................................................................... 22

Le elaborazioni numeriche (basate sui valori della bit allocation) non ottengono risultati soddisfacenti,per via della mancanza di informazioni sugli effetti psicoacustici dell'onda sonora.Per l'elaborazione di segnali compressi è utile avere a disposizione o perlomeno stimare le quantitàpsicoacustiche (SMR e MNR) per assegnare in modo appropriato i livelli di quantizzazione allesottobande ed ottenere una allocazione che sia percettivamente in alta qualità.Qualità che deve essere misurata rispetto a quella di riferimento ottenuta elaborando le sequenze inPCM.

I metodi definiti psicoacustici hanno come scopo principale il buon utilizzo dei valori numerici di MNRche saranno ipotizzati disponibili al processo di decodifica.

Una volta trovato un metodo efficiente per l'uso delle informazioni psicoacustiche ci si occuperà dicome dedurre o trasmettere queste informazioni nella sequenza codificata ed a quale prezzo (capacità dicanale).

8.1. ENTROPIA MNR = ENTROPIA SMRLa necessità di avere informazioni sulle caratteristiche psicoacustiche del segnale può trarre vantaggiodal fatto che per il decodificatore l'informazione portata dall' MNR è la stessa portata dall' SMR infattivale la seguente:

MNR = SNR - SMR

Page 173: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-2

Segnale

Maschera

Noise

SMR ( b_a)

MNR = SNR - SMR

SNR [quant]

Fig. 8.1 Diagramma dei valori ottimali qualitativi di Segnale, Maschera e Rumore. Nella figura si evidenzia il fatto che l'SMR. influenza direttamente il valoredella bit_allocation e che l'SNR dipende unicamente dal numero di livelli diquantizzazione assegnati alla sottobanda.

L' SNR dipende unicamente dal numero di livelli di quantizzazione (bit_allocation) secondo valoritabulati1

Al decodificatore l'informazione sul numero di livelli di ogni sottobanda è totalmente disponibile infattiè contenuta nella bit_allocation , quindi l' SNR è un'informazione nota, invece per una sequenzastandard non si ha nessuna informazione sui valori di SMR e di MNR ma dalla conoscenza di uno deidue si può ricavare l'altro.

Ne segue che la quantità di informazione portata dall' MNR è esattamente la stessa contenuta nell'SMR, da qui l'affermazione che l'entropia legata alle due strutture è numericamente la stessa.

8.2. TRASMISSIONE MNR IN UN CANALE SEPARATOPer l'elaborazione psicoacustica del segnale è necessario avere informazioni sui valori di MNR o SMR.Per verificare la validità dei metodi si è deciso di occuparci prima del loro utilizzo e di lasciare ad unsecondo studio la soluzione del problema di come e dove trasmetterle.Seguendo tale schema le elaborazioni che vengono riportate nel seguito si avvalgono dei valori diMNR trasmessi in un canale separato (.MNR)Viene trasmesso un valore di MNR per ogni canale e sottobanda con bit allocati, e, la precisioneadottata è fino al primo decimale.Si è scelto di trasmettere i valori di MNR e non di SMR per la maggior regolarità dei primi che quindi siprestano maggiormente ad essere compressi.

Il canale dedicato che viene usato ha una dimensione indicativa di :

2 canali_stereofonici * 20 Sottobande * 10 Bit = 400 Bit per frame

Che tradotti in bitrate :

400*42 = 16800 = 16.8 KBit/sec.

Il fatto di ipotizzare mediamente solo 20 bande allocate corrisponde al caso reale di codifica a 256KBit/sec. per una sequenza stereofonica.

Notare che la richiesta di canale per la trasmissione dell'MNR dipende dal numero di bande allocate equindi indirettamente dal Bitrate usato in codifica.

1Vedi i valori riportati nella tabella 4. costruita da MPEG.

Page 174: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-3

8.3. MODIFICA BITRATEAvendo a disposizione le informazioni sull'MNR, l'elaborazione di modifica del bitrate viene risolta inmodo immediato.Infatti si può eseguire una allocazione ottimale in base ai valori di SMR ottenuti dalla:

SMR=SNR-MNR

richiamando la stessa procedura usata da MPEG (II_main_bit_allocation).

Sequenza Codificata MPEG Valori MNR

Estrazione SNR

Calcolo SMR

II_main_bit_allocation

Modifica Header con nuovo bitrate

Sequenza codificata con NUOVO Bitrate

Fig. 8.2 Operazioni per la modifica del Bitrate di una sequenza codificata senzaoperarne una decodifica.L'ipotesi è di avere a disposizione i valori di MNR.

Questo procedimento equivale a diminuire la dimensione del frame (e quindi il bitrate) decrementando lebande con i maggiori valori di MNR (maggior margine di editing) cioè dove il rumore di quantizzazione èmolto inferiore al livello di mascheramento.

L'unico problema che rimane da risolvere è come trasmettere i valori di MNR e con quale precisione madi questo ci si occuperà nel capitolo seguente.

8.4. MIXING SEQUENZERisolto il problema della modifica di bitrate, in questo paragrafo si propone una possibile soluzione alproblema del mixaggio di due o più sequenze ovvero della loro somma normalizzata per valori inferioriad 1.

Per le elaborazioni di mixing e sincronizzazione rimane la richiesta di tecniche efficienti di elaborazione.Ad esempio per il mixing bisogna studiare metodi validi per stimare il valore della soglia dimascheramento a partire dai valori numerici di quelle coinvolte nell'elaborazione.

8.4.1. Studio MascheramentoPer elaborazioni che richiedono la sovrapposizione di più sequenze (mixing) è stato studiato un criterioper stimare la nuova forma di mascheramento in funzione delle soglie delle sequenze da elaborare.

Page 175: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-4

La maschera da stimare assume valori costanti in ogni sottobanda corrispondenti al minimo dellafunzione di mascheramento (continua) in ogni banda.

Dagli studi sperimentali compiuti da [Green] [Lutfi] [Moore-B] [Humes] [Penner] sul comportamento delmascheramento tra toni puri è stato dedotto un criterio di stima da applicare all'elaborazione di segnaliMPEG.Gli autori sopraccitati indicano che in presenza di più toni puri sovrapposti o successivi la forma delmascheramento finale può essere calcolata dai valori di mascheramento indotti separatamente da ognieccitazione.

Le prove sperimentali eseguite a partire dal 1967 [Green] hanno indicato che il mascheramento finale èmolto superiore alla somma dei singoli contributi ed il valore numerico dipende fortemente dalleintensità relative tra i toni.Il mascheramento massimo si ottiene quando i due toni hanno la stessa intensità, in tal caso ilmascheramento totale risulta superiore di circa 10 dB rispetto a quello indotto da ogni impulso singolo,invece dei 3 dB che ci si potrebbe aspettare sommando i contributi.

Fig. 8.3 Rappresentazione grafica dell'incremento della soglia di mascheramentoin seguito alla sovrapposizione di due mascheranti (a) e (b) [Humes].Le curve dipendono dal parametro p.

Un modello matematico approssimato di questo comportamento è stato formulato in modo semplificato[Humes] dipendente da un parametro (p) sul cui valore si sono accese intense discussioni edimostrazioni sperimentali ma da cui non è ancora emerso (per le informazioni a nostra disposizione) unvalore applicabile al caso reale o una riformulazione più accurata del modello.Il modello formulato da Moore stima l'intensità di mascheramento Xabche risulta dalla composizione deidue mascheranti Xa e Xb:

F X F X F X

F X X

ab a b

a ap

( ) ( ) ( )

( )

= +

=

dove:• p è un parametro che può assumere valori tra 0.1 e 1.• x è l'intensità del mascherante in dB• a e b sono gli identificatori di mascherante

La dipendenza del modello dal parametro p è una conferma che l'apparato uditivo umano presentaancora molti aspetti sconosciuti .

Page 176: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-5

Ci si può aspettare che un'eventuale approfondimento della conoscenza sul comportamento degliorgani coinvolti nella percezione porterà a formulare modelli percettivi più accurati che indirettamenteaumenteranno le performance della codifica MPEG_Audio (che non ha standardizzato la partepsicoacustica).

8.4.2. Applicazione alle Elaborazioni MPEGDalle pubblicazioni sulla composizione degli effetti di mascheramento è stato dedotto che sicuramenteil mascheramento sarà maggiore di ognuno di quelli delle sequenze coinvolte nelle elaborazioni.Nel nostro caso non è possibile fare assunzioni sull'intensità del mascherante in quanto taleinformazione è stata ritenuta irrilevante dal codificatore ed eliminata, inoltre il livello del mascherantenon può essere riottenuto:

.. non dal livello del segnalein quanto esaminando le stime numeriche del modello psicoacustico si può osservareche le intensità dei mascheranti dipendono più dall'inviluppo sonoro (rappresentatoda 1152 campioni) piuttosto che dalle intensità in dB del segnale e tale invilupposonoro è stato trasformato dal filtro in inviluppo di sottobanda.

.. non da una FFT del segnale diviso in sottobandein quanto per effetto dell'applicazione del filtro e della divisione in sottobande leintensità spettrali sui confini delle sottobande vengono perse o quantomeno distorte.Lo spettro del segnale viene appiattito modificando di conseguenza le intensitàspettrali da cui dedurre i livelli di componenti tonali e non tonali.Inoltre i campioni in ogni sottobanda sono 36 che non essendo potenza di due nonpossono essere analizzati tramite una FFT e si è obbligati ad operare una DFT(richiede alta potenza di calcolo).

Tali ostacoli sembrano per il momento di non facile soluzione ed hanno come effetto l'impossibilità dicalcolare le intensità dei mascheranti in modo diretto e quindi diventa azzardato stimare la funzione dimascheramento del file mixato applicando i modelli presentati da [Humes] [Penner] [Moore].

Si sono studiati metodi per ovviare a questi problemi e quello che sembra essere il più promettente eaffidabile consiste nel considerare come nuova soglia di mascheramento la massima tra quelle dellesequenze in ingresso (opportunamente normalizzate).Stimato il livello separatamente in ogni banda si considera l'influenza di mascheramento tra bandeadiacenti applicando modelli semplificati della funzione di mascheramento.L'ipotesi base è di avere a disposizione i valori di MNR (e quindi della maschera) per ogni sequenza daelaborare; per la valutazione saranno trasmesse in un canale dedicato di opportuna dimensione.

8.4.3. Stima Livello di MascheramentoIl livello di intensità dei mascheranti non può essere dedotto dai fattori di scala mentre può esserestimato in base al criterio del massimo tra quelli delle sequenze in ingresso l'algoritmo seguito è ilseguente:

Page 177: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-6

1. Per ogni banda

2. Normalizzazione di ognuna delle sequenze in ingresso

3. Calcolo massima intensità segnale per ogni sequenza

4. Calcolo valore soglia per ogni sequenza:

soglia = segnale - SMR

5. Nuova soglia = massima tra i valori del passo precedente

6. Ripeti per tutte le sequenze dal passo 2

7. Ripeti per tutte le bande dal passo 1

.. che in forma di diagramma risulta essere:

Segnale

Maschera

Rumore diQuantizzazione

Fattore discala 1

Fattore discala 2

Fattore discala 3

Massimovalore diMaschera

dB

Sottobanda N

sequenza da elaborareRicostruzione livello di maschera per ogni

Fig. 8.4 Rappresentazione grafica delle operazioni per la ricostruzione del livellodi soglia in ogni banda di ogni sequenza da elaborare. SMR e SNR sonouguali per tutti e tre i fattori di scala della stessa sottobanda della stessasequenza

Il livello del segnale in ogni sottobanda viene calcolato dal massimo fattore di scala tra i tre dopo lanormalizzazione del segnale per il livello.In tal modo si tiene come valore efficace di soglia di mascheramento del segnale elaborato il massimodelle soglie coinvolte.Calcolati questi valori di soglia la stima del mascheramento della sequenza da elaborare procede nelmodo seguente:

Page 178: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-7

1. Per ogni banda

2. Per ogni sequenza

3. Valore soglia nella banda = massima tra le soglie dei file coinvolti

4. Ripeti dal punto 2 per tutte le sequenze

5. Ripeti dal punto 1 per tutte le 32 bande.

Il valore di SMR può così essere calcolato in modo immediato sottraendo dal livello del segnaleelaborato l'intensità della soglia:

Sequenza 1 Sequenza 2 Sequenza Elaborata

Segnale*livello

Maschera

Rumore diQuantizzazione

SMR

Sottobanda N

dB

Stima del valore di mascheradella sequenza elaborata

SequenzaElaborata

Fig. 8.5 Tra tutte le sequenze coinvolte nell'elaborazione si trova il massimovalore in deciBel della maschera che si considera come valore del fileelaborato.I livelli delle sequenze coinvolte nell'elaborazione vengono moltiplicate peri livelli.L'intensità del rumore nella sequenza elaborata non è riportato perchédipende dai livelli di quantizzazione che gli verranno assegnati e ciò puòessere fatto solo conoscendo i valori di SMR stimati per tutte e 32 lesottobande.

Rimane ancora da considerare l'influsso di mascheramento tra bande adiacenti compatibilmente conquanto illustrato al capitolo 1.2 "La percezione del suono" sugli effetti di mascheramento ed il lororilascio graduale.

Page 179: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-8

8.4.4. Mascheramento tra Bande adiacentiStimato il livello di mascheramento in ogni sottobanda, per una coerente stima della funzione dimascheramento totale sulle 32 sottobande si deve considerare l'influsso di mascheramento tra lesottobande nel dominio frequenziale.

Infatti dagli studi di psicoacustica è ben noto che gli effetti di mascheramento non si arrestanoimprovvisamente ma si rilasciano gradatamente sia nel tempo che nella frequenza.

dB

Bark

Slope dxSlope sx

Eccitazione

Maschera

Fig. 8.6 Forma della funzione di eccitazione approssimata con pendenze costantidipendenti solo dalla frequenza dell'eccitazione e dal suo livello in deciBel.Dalla figura è inoltre evidente che la funzione di mascheramento èparallela all'eccitazione.I valori di scarto tra eccitazione e maschera dipendono dalla caratteristicadi tonalità della componente.

La pendenza destra (SLOPE_DX) dipende dalla localizzazione spettrale (frequenza) e dall'intensità delsegnale, mentre quella sinistra (SLOPE_SX) è, in prima approssimazione, costante.

Il valore di scarto tra eccitazione e maschera può essere ricavato dalle formule del modellopsicoacustico 1 per il calcolo della funzione di mascheramento:

• .. eccitazioni TONALI : 6 dB• .. eccitazioni NON TONALI : 2 dB

Gli studi di Therdant [Kapust][Beerends] indicano che la forma triangolare approssimata della funzionedi eccitazione può essere formulata in :

Per la pendenza a destra:

( )barkdbLiv

fMINSlope dB

Hzdx /*2.010,

23022

+= [10.1]

per la pendenza sinistraSlope db barksx = 31 / [10.2]

Ipotizzando di poter ricostruire la localizzazione spettrale dei mascheranti TONALI e NON TONALI sipuò ricavare l'intensità e quindi calcolare l'influsso sulle bande adiacenti riapplicando le stessependenze ma su un intervallo frequenziale che si estende da -3 a 8 Bark (secondo le indicazioni delmodello psicoacustico 1).

Page 180: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-9

Stima valore sogliadi mascheramento

Stima localizzazione spettraleTONALI e NON TONALI

Stima intensità mascherantidi ogni sottobanda

Calcolo contributo di mascheramentotra bande adiacenti

Nuova funzione di mascheramento

Fig. 8.7 Procedimento per il calcolo della funzione di mascheramento di sequenzemixate.

8.4.5. Corrispondenza Bande - BarkPer considerare i contributi di mascheramento tra bande adiacenti è necessario avere la corrispondenzatra Bande e Bark.Infatti è noto che l'orecchio analizza il segnale per unità di banda critica e dunque le curve dimascheramento SLOPE_SX e SLOPE_DX sono date in dB/Bark.

La divisione in Bark è tabulata nelle specifiche MPEG:

Page 181: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-10

BANDECRITICHE

LIMITE SUPERIORE(HZ)

BANDA_CRITICA

BARK

0 46,875 0,4631 93,750 0,9252 140,625 1,3853 234,375 2,2954 328,125 3,1845 421,875 4,0456 562,500 5,2727 656,250 6,0418 796,875 7,1199 937,500 8,103

10 1125,000 9,27511 1265,625 10,05712 1500,000 11,19913 1734,375 12,17014 1968,750 13,00215 2343,750 14,11116 2718,750 15,01817 3281,250 16,12418 3843,750 17,03219 4687,500 18,16620 5437,500 19,02821 6375,500 19,96422 7687,500 21,05223 9375,000 22,11324 11625,000 23,07225 15375,000 23,99126 20250,000 24,597

Tab. 8.1 Limiti in frequenza delle bande critiche considerate per frequenze dicampionamento di 48 KHz dal modello psicoacustico 1.

L'ampiezza di ogni banda critica varia con la frequenza; per evidenziare la forte variabilità di ampiezza, larappresentazione seguente riporta in ordinata le bande critiche ed in ascissa il loro confine superiore inHz.

Bande Critiche

0 5000 10000 15000 20000 25000

Page 182: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-11

Fig. 8.8 Ampiezza delle bande critiche su scala di Hertz.Le bande critiche sono adiacenti.

Ogni sottobanda (750 Hz) corrisponde ad un numero variabile di bande critiche e di conseguenza variail valore di SMR determinato dalle pendenze destra e sinistra delle curve di mascheramento.

8.4.6. Applicazione Formule di PendenzaIl modello di mascheramento a forma triangolare può essere applicato per la stima del massimo SMRpresente in ogni banda.Tale valore può essere calcolato nel modo seguente:

Per ogni banda si ricavano due valori di SMR

1- pensando il mascherante localizzato sul confine destro e calcolando la pendenza sinistra2- localizzando il mascherante sul confine sinistro e calcolandone l'effetto di pendenza destra

Il massimo tra i due valori calcolati è il massimo SMR che può essere trovato nella sottobanda.

Dato che la pendenza sinistra è sempre più ripida di quella destra ci si aspetta che il massimo valore diSMR sia dovuto alla situazione 1-

Nelle tabelle seguenti si applicano le formule di SLOPE_SX [10.2]e SLOPE_DX [10.1] in ogni banda:

NUMERO BANDA 0INTERVALLO DI

FREQUENZE0:750 HZ = 0:6.770 BARK

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)0 46.875 : 93.750 32-0.2*L 311 93.750 : 140.625 24.45-0.2*L 312 140.625 : 234.375 23.63-0.2*L 313 234.375 : 328.125 22.98-0.2*L 314 328.125 : 421.875 22.7-0.2*L 315 421.875 : 562.500 22.55-0.2*L 316 562.500 : 656.250 22.4-0.2*L 317 656.250 : 796.875 (22.35-0.2*L)*0.770 31*0.770

TOTALE: 186.355-1.544*L 31*7.770= 240.87

NUMERO BANDA 1INTERVALLO DI

FREQUENZE750:1500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)7 656.250 : 796.875 (22.35-0.2*L)*0.330 31*0.3308 796.875 : 937.500 22.29-0.2*L 319 937.500 : 1125.000 22.24-0.2*L 31

10 1125.000 : 1265.625 22.20-0.2*L 3111 1265.625 : 1500.000 22.18-0.2*L 31

TOTALE: 96.265-0.866*L 31*4.330=134.23

Page 183: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-12

NUMERO BANDA 2INTERVALLO DI

FREQUENZE1500:2250HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)12 1500.000 : 1734.375 22.15-0.2*L 3113 1734.375 : 1968.750 22.13-0.2*L 3114 1968.750 : 2343.750 (22.11-0.2*L)*0.75 31-0.75

TOTALE: 61.05-0.55*L 31*2.75=85.25

NUMERO BANDA 3INTERVALLO DI

FREQUENZE2250:3000HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)14 1968.750 : 2343.750 (22.11-0.2*L)*0.25 31*0.2515 2343.750 : 2718.750 22.09-0.2*L 3116 2718.750 : 3281.250 (22.08-0.2*L)*0.50 31*0.50

TOTALE: 38.6575-0.35*L 31*1.75=54.25

NUMERO BANDA 4INTERVALLO DI

FREQUENZE3000:3750HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)16 2718.750 : 3281.250 (22.08-0.2*L)*0.50 31*0.5017 3281.250 : 3843.750 (22.07-0.2*L)*0.83 31*0.83

TOTALE: 29.36-0.266*L 31*1.33=42.23

NUMERO BANDA 5INTERVALLO DI

FREQUENZE3750:4500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)17 3281.250 : 3843.750 (22.07-0.2*L)*0.17 31*0.1718 3843.750 : 4687.500 (22.05-0.2*L)*0.78 31*0.78

TOTALE: 20.95-0.19*L 31*0.95=29.25

NUMERO BANDA 6INTERVALLO DI

FREQUENZE4500:5250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)18 3843.750 : 4687.500 (22.05-0.2*L)*0.22 31*0.2219 4687.500 : 5437.500 (22.05-0.2*L)*0.75 31*0.75

TOTALE: 21.40-0.19*L 31*0.97=30.07

Page 184: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-13

NUMERO BANDA 7INTERVALLO DI

FREQUENZE5250 : 6000 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)19 4687.500 : 5437.500 (22.05-0.2*L)*0.25 31*0.2520 5437.500 : 6375.000 (22.04-0.2*L)*0.60 31*0.60

TOTALE: 18.74-0.17*L 31*0.85=26.35

NUMERO BANDA 8INTERVALLO DI

FREQUENZE6000:6750 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)20 5437.500 : 6375.000 (22.04-0.2*L)*0.40 31*0.4021 6375.000 : 7687.500 (22.04-0.2*L)*0.28 31*0.28

TOTALE: 14.98-0.14*L 31*0.68=21.08

NUMERO BANDA 9INTERVALLO DI

FREQUENZE6750:7500HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)21 6375.000 : 7687.500 (22.04-0.2*L)*0.58 31*0.58

TOTALE: 12.78-0.11*L 31*0.58=17.98

NUMERO BANDA 10INTERVALLO DI

FREQUENZE7500:8250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)21 6375.000 : 7687.500 (22.04-0.2*L)*0.14 31*0.1422 7687.500 : 9375.000 (22.03-0.2*L)*0.33 31*0.33

TOTALE: 10.30-0.094*L 31*0.47=14.57

NUMERO BANDA 11INTERVALLO DI

FREQUENZE8250:9000 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)22 7687.500 : 9375.000 (22.03-0.2*L)*0.45 31*0.45

TOTALE: 9.9-0.09*L 31*0.45=13.95

NUMERO BANDA 12INTERVALLO DI

FREQUENZE9000:9750 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)22 7687.500 : 9375.000 (22.03-0.2*L)*0.13 31*0.1323 9375.000 : 11625.00 (22.02-0.2*L)*0.17 31*0.17

TOTALE: 6.6-0.08*L 31*0.40=12.4

Page 185: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-14

NUMERO BANDA 13INTERVALLO DI

FREQUENZE9750:10500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)23 9375.000 : 11625.00 (22.02-0.2*L)*0.34 31*0.34

TOTALE: 7.5-0.07*L 31*0.34=10.54

NUMERO BANDA 14INTERVALLO DI

FREQUENZE10500:11250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)23 9375.000 : 11625.00 (22.01-0.2*L)*0.30 31*0.30

TOTALE: 6.6-0.03*L 31*0.30=9.3

NUMERO BANDA 15INTERVALLO DI

FREQUENZE11250:12000 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)23 9375.000 : 11625.00 (22.01-0.2*L)*0.19 31*0.1924 11625.000 : 15375.000 (22.01-0.2*L)*0.04 31*0.04

TOTALE: 5.5-0.05*L 31*0.25=7.75

NUMERO BANDA 16INTERVALLO DI

FREQUENZE12000:12750 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)24 11625.000 : 15375.000 (22.01-0.2*L)*0.22 31*0.22

TOTALE: 4.84-0.04*L 31*0.22=6.82

NUMERO BANDA 17INTERVALLO DI

FREQUENZE12750:13500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)24 11625.000 : 15375.000 (22-0.2*L)*0.19 31*0.19

TOTALE: 4.18-0.38*L 31*0.19=5.89

NUMERO BANDA 18INTERVALLO DI

FREQUENZE13500:14250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)24 11625.000 : 15375.000 (22.02-0.2*L)*0.16 31*0.16

TOTALE: 3.52-0.032*L 31*0.16=4.96

Page 186: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-15

NUMERO BANDA 19INTERVALLO DI

FREQUENZE14250:15000 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)24 11625.000 : 15375.000 (22-0.2*L)*0.14 31*0.14

TOTALE: 3.08-0.028*L 31*0.14=4.34

NUMERO BANDA 20INTERVALLO DI

FREQUENZE15000:15750 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)24 11625.000 : 15375.000 (22-0.2*L)*0. 31*0.25 15375.000 : 20250.000 (22-0.2*L)*0. 31*0.

TOTALE: *L 31*0.13=4.03

NUMERO BANDA 21INTERVALLO DI

FREQUENZE15750:16500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.11 31*0.11

TOTALE: 2.42-0.02*L 31*0.11=3.41

NUMERO BANDA 22INTERVALLO DI

FREQUENZE16500:17250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.10 31*0.10

TOTALE: 2.2-0.02*L 31*0.10=3.1

NUMERO BANDA 23INTERVALLO DI

FREQUENZE17250:18000 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.09 31*0.09

TOTALE: 1.98-0.02*L 31*0.09=2.79

NUMERO BANDA 24INTERVALLO DI

FREQUENZE18000:18750 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE SINISTRO (DB) SLOPE DESTRO (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.08 31*0.08

TOTALE: 3.96-0.02*L 31*0.08=2.48

Page 187: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-16

NUMERO BANDA 25INTERVALLO DI

FREQUENZE18750:19500 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.07 31*0.07

TOTALE: 1.54-0.01*L 31*0.07=2.17

NUMERO BANDA 26INTERVALLO DI

FREQUENZE19500:20250 HZ

BANDE CRITICHE LIMITI IN HZ SLOPE_DX (DB) SLOPE_SX (DB)25 15375.000 : 20250.000 (22-0.2*L)*0.06 31*0.06

TOTALE: 1.32-0.01*L 31*0.06=1.86

I valori di SMR massimo ricavati non permettono una accurata stima dei contributi di mascheramentotra bande adiacenti in quanto tali valori sono troppo estesi per poter dare contributi significativi; infattisi riferiscono al caso peggiore in cui tutti i mascheranti siano localizzati sul confine destro dellasottobanda.Quindi è necessario avere una maggior precisione nella localizzazione delle componenti mascherantisecondo un valido criterio.

8.4.7. Localizzazione Mascheranti e loro intensitàPer localizzare i mascheranti, compatibilmente con quanto implementato nel modello psicoacustico 1 sipuò compiere una analisi di Fourier del segnale a sottobande ed estrarne lo spettro:

..Per ogni banda:....Analisi DFT sui 36 campioni di sottobanda

..Si ottengono (32 * 36)/2 = 576 componenti spettrali

I problemi principali di questa analisi sono che lo spettro può essere corrotto sui confini di ogni bandaper via dell'aliasing e della forma a pettine dei filtri.

Da questa analisi di Fourier possono essere identificate (in modo approssimativo) le componentiTONALI e NON TONALI secondo i già esposti criteri del capitolo 4 "Modelli percettivi".

L'identificazione delle componenti può essere ottenuta dall'esecuzione degli stessi algoritmi del modellopsicoacustico previa una mappatura delle 576 componenti della DFT nelle 512 del modello (componentepiù vicina).In tal modo le componenti tonali vengono estratte dai massimi locali e le non tonali una per bandacritica centrata nella media geometrica.

Una volta localizzato frequenzialmente ogni mascherante e la sua intensità è possibile analizzare icontributi di mascheramento sulle bande adiacenti applicando gli slope di pendenza [10.1] e [10.2],in un intervallo di frequenza di -3..8 Bark.

Per la stima dell'intensità di ogni mascherante si sono studiate diverse possibilità ed, esclusa quella distimare l'intensità dai valori delle componenti spettrali perché troppo approssimate dall'effetto del filtrodi divisione in sottobande, si è scelto di procedere nel modo seguente:

Page 188: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-17

... Un valore di maschera di riferimento è già stato stimato come massimo tra i mascheranticoinvolti nell'elaborazione

... Riferendosi a tale livello e applicando le formule di pendenza [10.1], [10.2] è possibiledeterminare per ogni mascherante TONALE e NON TONALE (di cui si è stimata lalocalizzazione spettrale attraverso la DFT 32*36) due intensità :

- dalla pendenza destra [10.1]- dalla pendenza sinistra [10.2]

... Queste intensità possono essere considerate come valore in dB del mascheranteottenendone il livello che produce un contributo sulle bande adiacenti

... In ognuna delle 32 bande il valore di soglia stimata può essere aumentata dai contributidei mascheranti delle bande entro -3..8 Bark e dal contributo della soglia statica.

... Il valore di SMR della sequenza elaborata può essere calcolato dalla differenza tra livellodel segnale (mixato) e maschera calcolata al punto precedente.

... I valori di SMR possono essere usati per eseguire una allocazione ottimale dei bitdisponibili ai campioni frequenziali.

NOTA: La tonalità di una componente non influisce nella stima deimascheranti in quanto nei calcoli non viene in nessun modo coinvoltoil livello di eccitazione

8.4.8. Confronto con la Soglia StaticaAnche la soglia statica può dare un contributo di mascheramento per i segnali di intensità limitata.I valori di soglia statica sono tabulati in dipendenza della frequenza.La tabella di tali valori è riportata nelle specifiche MPEG e per frequenze di campionamento di 48 KHz allayer II riporta:

Page 189: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-18

BANDA MINIMO SOGLIASTATICA

MASSIMO SOGLIASTATICA

0 4,45 42,101 1,71 4,212 -1,43 1,553 -4,57 -1,884 -4,90 -4,295 -3,99 -1,246 -0,51 1,067 1,39 2,088 2,27 2,869 3,09 3,89

10 4,20 5,3111 5,73 7,1912 8,33 9,6313 11,08 12,7114 14,53 16,5415 18,77 21,2316 23,94 26,9017 30,14 33,6718 37,51 41,6719 46,17 51,0420 56,29 61,9421 68,00 68,0022 68,00 68,0023 68,00 68,0024 68,00 68,0025 68,00 68,0026 68,00 68,00

Tab. 8.2 Valori di soglia statica tabulati nelle specifiche MPEG.Per ogni banda è riportato il valore massimo e minimo di soglia statica,seguendo il procedimento per il calcolo della soglia di mascheramento sideve tenere in considerazione il minimo della soglia statica in ogni banda .

Viene riportata di seguito una rappresentazione grafica della precedente tabella.

Bande

dB

-10

0

10

20

30

40

50

60

70

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Minimo Soglia

Massimo Soglia

Page 190: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-19

Fig. 8.9 Rappresentazione grafica delle soglie minime e massime in ognisottobanda dedotte dalla tabella delle specifiche valida per campionamentia 48 KHz layer II e qualsiasi bitrate.

8.4.9. AlgoritmoL'algoritmo che riassume schematicamente le operazioni per il calcolo della soglia di mascheramentodella sequenza mixata è il seguente:

int Psyco_main_sb_sample(.........)

{ /*Stima mascheramento come massima soglia delle sequenze coinvolte*/ calc_max_mask (...)

for(i=0 ; i<32 ; i++) {

/*DFT sui gruppi di 36 campioni*/ for(x=0 ; x<3 ; x++) for (j=0 ; j<12 ; j++) {real_smpl36[12*x+j] = (float)(sb_sample[ch][x][j][i]); complex_smpl36[12*x+j] = (float) 0.0; } /*end for j*/

/*finestratura di hann*/hann_win(...);

/*Trasformata di Fourier*/dft(...);

/*Normalizzazione intensità componenti spettrali in dB*/pds (...);

/*Memorizzazione nella struttura a 1152 componenti*/ for (j=0 ; j<36 ; j++) data[j+i*36]=data36[j]; }/*end for i*/

/*Mappatura 576 componenti della DFT sulle 512 del modello psicoacustico*/ mappa_DFT_PSY(...);

/*identificazione tonali e non tonali*/ II_tonal_label_sb(...); noise_label_sb(...);

/*stima intensità mascherante*/ calc_mascherante(...);

/*contributi di ogni mascherante sulle bande adiacenti*/ calcola_influsso_mascheramento(......)

/*calcolo minimo valore di mascheramento in ogni sottobanda*/ II_minimum_mask(...);

/*calcolo SMR in ogni sottobanda*/ II_smr(...);}

Page 191: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-20

e la relativa rappresentazione in diagramma è :

Stima soglia sequnza elaboratauguale al massimo tra quelle coinvolte

Esecuzione DFT sui campioni di sottobandaottenendo 32*36 = 1152 componenti spettrali

Finestratura di hann dei campioni di sottobanda

Normalizzazione componenti spettrali in dB

Mappatura delle 576 componenti spettrali sulle512 del modello psicoacustico

Analisi componenti tonali e non tonali

Stima intensita' mascheranti

Calcolo contributi di mascheramento

calcolo minima soglia in ogni sottobanda

Stima SMR dal massimo valore del segnale

Fig. 8.10 Diagramma di flusso delle operazioni per la stima della soglia dimascheramento della sequenza mixata.

Page 192: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-21

8.5. SINCRONIZZAZIONERicordo che per sincronizzazione si intende lo spostamento dei campioni di sottobanda (e delleinformazioni collegate) tra frame successivi.

Sequenza codificata

Sequenza sincronizzata

originale

36 campionidella sottobanda

Fig. 8.11 Rappresentazione delle operazioni di sincronizzazione di una sequenzacodificata MPEG.La sincronizzazione consiste nello shifting di campioni di sottobanda da unframe all'altro.

Per le sequenze codificate si considera solo lo shifting tra campioni a sottobande, ovvero è possibilespostare solo multipli di 32 campioni. Il granulo temporale è quindi di 32/48000 = 6.67*10-4 ovvero 0,6millisecondi.Tale atomo è sufficiente per ridurre i problemi di ritardo per l'elaborazione o la trasmissione di sequenzesincronizzate2.

Per la sincronizzazione MPEG si può sfruttare l'alta correlazione tra frame successivi, in pratica i valoridi bit allocation assegnati alle bande del file elaborato sono molto simili tra frame successivi e quindianche solo mediandone i valori si dovrebbe ottenere una allocazione ottimale.Nei punti di attacco dei suoni tale metodo fallisce rendendolo inapplicabile alla reale elaborazione.

Quindi anche per la sincronizzazione è necessario eseguire uno studio sui valori della funzione dimascheramento.

8.5.1. Studio del ProblemaIpotizzando la disponibilità dei valori di MNR con una sufficiente accuratezza, le considerazioni allabase dello studio sono:

.. Per ogni sottobanda di ogni frame si ha un valore di SMR e uno di MNR

.. Ad ogni campione di sottobanda corrisponde l'SMR

.. Per costruzione il valore della maschera è costante in tutta la sottobanda

.. In ogni sottobanda il livello della funzione di mascheramento può essere stimato da:(Segnale_Massimo - SMR)

.. Spostando i campioni da un frame con l'altro, ad ogni campione è associato un livello dimascheramento (uguale a quello della banda e frame di appartenenza)

.. Nel nuovo frame contenente i campioni di due frame successivi ogni campione ha associatoun livello di mascheramento.

.. Il nuovo valore di Soglia nella banda del nuovo frame può essere calcolato seguendo leindicazioni del modello psicoacustico 1, come differenza tra massimo segnale e minimodella soglia in ogni sottobanda.

2La discussione e' stata affrontata al Capitolo 5 "Introduzione alle elaborazioni".

Page 193: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-22

Se la sincronizzazione richiede ad esempio lo shifting di 10 campioni:

Sequenza codificata

Sequenza sincronizzata

originale10 10 10

10 10

26 26 26

26 26

Frame N_O

Frame N_S

Frame N+1_O

Frame N+1_S

Un procedimento per la stima della maschera della sequenza sincronizzata può essere:

- Calcolo massimo segnale Frame N_O SGNLsb(N)

- Calcolo massimo segnale Frame N+1_OSGNLsb(N+1)

- Calcolo dell'intensità della maschera per il Frame N_O MASKsb(N)= SGNLsb(N) - SMRsb(N)

- Calcolo dell'intensità della maschera per il Frame N+1_OMASKsb(N+1)= SGNLsb(N+1) - SMRsb(N+1)]

- Composizione Frame N_S spostando i campioni

- Calcolo del massimo segnale nel Frame N_SSGNL_SYNCsb(N)

- Calcolo della soglia minima del Frame N_SMASK_SYNCsb(N)= MIN ( MASKsb(N), MASKsb(N+1) )

- Calcolo SMR frame sincronizzato [Massimo segnale] - [Minimo maschera]:SMR_SYNCsb(N) = SGNL_SYNCsb(N) - MASK_SYNCsb(N)

- Eseguire per tutte le sottobande

- Calcolati tutti e 32 i valori SMR_SYNC32(N) richiamare II_main_bit_allocation()

- Ripetere per tutti i Frame della sequenza incrementando N.

8.5.2. Rappresentazione Graficale operazioni elencate nel precedente paragrafo possono essere chiarite dalla seguenterappresentazione grafica:

... ad esempio se il Frame N della sequenza originale nella sottobanda K ha la forma seguente

Page 194: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-23

SCF 3

SCF 2

SCF 1

SOGLIA

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Fig. 8.12 Valori dei 36 campioni (in dB) della sottobanda K di un ipotetico frameN di una sequenza codificata MPEG

.. e se il Frame N+1 della sequenza originale nella sottobanda K ha la forma seguente

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

SCF 1 =SCF 3

SCF 2

Fig. 8.13 Valori dei 36 campioni (in dB) della sottobanda K di un ipotetico frameN+1 di una sequenza codificata MPEG

... spostando i 10 campioni e applicando le considerazioni :

Page 195: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 8 "Elaborazioni Psicoacustiche" Davide Cilano

Pag. 8-24

27 28 29 30 31 32 33 34 35 36 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Gruppo 1 Gruppo 2 Gruppo 3

Massimo valore del Segnale

SMR

minimo della soglia

Fig. 10.14 rappresentazione grafica dei valori e delle operazioni per la stimadell'SMR di ogni sottobanda di un frame della sequenza sincronizzata.Ogni campione di sottobanda è legato al livello di mascheramento dellabanda di appartenenza. Tale livello è dato sia dai mascheranti presentinella banda che da quelli delle bande entro -3..8 Bark.

Anche per la sincronizzazione dopo avere stimato il valore della funzione di mascheramento in ognisottobanda è conveniente applicare le considerazioni già esposte per il mixing per considerare icontributi di mascheramento dei segnali in bande confinanti.

Questa è una conferma che, costruito un valido metodo di elaborazione di mixing, si è individuata unasoluzione per operare molte trasformazioni del segnale.

Page 196: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9TRASMISSIONE MNR

9.1. CANALE PER MEMORIZZARE L' MNR.......................................................................................19.2. STIMA E TRASMISSIONE............................................................................................................39.3. STIMA SMR....................................................................................................................................4

9.3.1. Valore di Riferimento ......................................................................................................59.4. TRASMISSIONE MNR ...................................................................................................................59.5. UNA TECNICA IBRIDA.................................................................................................................69.6. USO DEI PAD................................................................................................................................8

La disponibilità di informazioni psicoacustiche è indispensabile per compiere una elaborazione il piùpossibile accurata delle sequenze codificate.Questa necessità è stata motivata nei capitoli precedenti, dove tra l'altro, non ci si è occupati di come edove trasmettere tali informazioni, problema affrontato nel presente capitolo.

Si riporta una analisi delle possibili tecniche di trasmissione, conseguenze e richieste sia sul canale ditrasmissione sia del decodificatore che le deve usare.

Per la forte dipendenza dalla particolare applicazione e dai risultati che si vogliono ottenere, siaffronta solo una analisi globale del problema, lasciando valutazioni e scelte della tecnica da usare allaparticolare applicazione.

9.1. CANALE PER MEMORIZZARE L' MNRDai capitoli precedenti emerge che è necessario trasmettere al decodificatore alcuni valori delleinformazioni psicoacustiche calcolate in codifica.Tale informazioni sono utili per eseguire elaborazioni sul segnale compresso.

CODIFICATORE DECODIFICATORE

MNRInformazioni

SequenzaMPEG

ElaborazioneMPEG

SequenzaMPEGPCM PCM

Page 197: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-2

Fig. 9.1 Il codificatore deve essere modificato affinché inserisca parte delleinformazioni psicoacustiche nella sequenza codificata.Tali informazioni possono essere usate per elaborare il segnale neldominio MPEG.

Sono state individuate almeno due possibilità per la trasmissione delle informazioni psicoacustiche:

1.Usare un canalededicato in parallelo allasequenza MPEG.

Con questa soluzione i valori di MNR vengono memorizzatisequenzialmente per ogni banda e per ogni Frame in un canalededicato che deve venire trasmesso assieme alla sequenzacodificata.

Canale Valori MNR

FRAME MPEG

Vantaggi:- Non vengono tolti bit alla quantizzazione dei campioni di

sottobanda.- Nelle applicazioni che non richiedono elaborazione si può

trasmettere solo la sequenza MPEG.- Il codificatore rimane "standard" si deve solo aggiungere un

modulo di scrittura dei valori di MNR sul canale dedicato.- Solo i decodificatori che devono fare elaborazione devono

gestire il canale di MNR.

Svantaggi:-Necessità di trasmettere due sequenze per ogni segnale audio.-Necessità di trasmettere in modo intercalato le due sequenze per

poter effettuare elaborazioni in tempo reale.-Problemi di sincronizzazione se dai valori di MNR viene

eliminata irrilevanza e ridondanza (il numero di valori diMNR dipende dal numero di bande allocate)

Page 198: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-3

2.Trasmettere leinformazioni necessarienella parte dei PAD.

Trasmettendo le informazioni psicoacustiche nella parte dei PAD,non si aggiunge una nuova sequenza ma i bit necessari permemorizzare i valori di MNR vengono tolti da quelli disponibilinel Frame.

PAD: Valori MNR

FRAME MPEG

Vantaggi:- Ogni Frame è "elaborabile" in modo a sé stante- Nessun problema di sincronizzazione per la compressione dei

valori di MNR.

Svantaggi:- I Bit necessari per memorizzare l'MNR vengono tolti dai bit per

la quantizzazione dei campioni di sottobanda quindi vannoa scapito della qualità del segnale

- Il Codificatore deve essere modificato per riservare una quantitàdi bit alla memorizzazione dei valori di SMR e deveinserire i valori di MNR con una opportuna codifica esintassi nei PAD.

- Necessità di rendere noto a tutti i decodificatori che devonoeseguire elaborazione del segnale, la sintassi usata pertrasmettere l'MNR nei PAD.

Indipendentemente dalla tecnica di trasmissione dell'MNR anche i decodificatori standard sono ingrado di ricostruire le sequenze e questa è una richiesta INDISPENSABILE.

Qualsiasi canale di trasmissione si usi, è opportuno ridurrne al minimo l'occupazione eliminandoirrilevanza e ridondanza dai valori di MNR.Ne segue che i valori di MNR è conveniente che vengano codificati e quantizzati per ottenere solo laminima precisione.Questo della precisione è un problema piuttosto complesso da valutare e deve tenere conto sia di qualeè l'indeterminazione intrinseca in una sequenza codificata (Capitolo 7 "Comportamento Codifica") esia della particolare applicazione e accuratezza che si vuole ottenere.

Per evidenti motivi di limitata durata del lavoro di tesi, in questo capitolo vengono solo analizzati pervia teorica alcuni metodi di trasmissione e se ne lascia la valutazione alle particolari applicazioni.

9.2. STIMA E TRASMISSIONEIndipendentemente dal canale di trasmissione la tecnica da usare può essere

• .. stima dai valori di SNR• .. trasmissione di tutti i valori di MNR (con una opportuna precisione)• .. uso di una tecnica ibrida tra le due precedenti

Page 199: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-4

9.3. STIMA SMRDal funzionamento dell'algoritmo di allocazione (Appendice B "Analisi del software") il criterio diallocazione è di aumentare l'SNR sulle bande con minimo MNR e quindi almeno teoricamente si cercadi raggiungere un MNR costante MNR=SNR-SMR1 in tutto il Frame.

Raggiunto lo stato di MNR costante i valori di SMR possono essere stimati con una indeterminazionepari al passo di quantizzazione da : SMR=SNR-K dove K è lo scostamento tra valore di MNR(supposto costante) e lo zero.

Questa è la considerazione teorica, nella realtà le cose funzionano in modo diverso per via dellequantizzazioni adottate dalla codifica MPEG.Infatti le quantizzazioni dei campioni di sottobanda non sono per passi di 1 bit (6 dB) ma variano da 3,5, 7, 9, ... livelli e soprattutto nelle bande alte si verificano alcune anomalie dovute al salto di livelliad esempio da 15 livelli a 65535 portando ad una configurazione che rende non più piatto l'MNR macon dei picchi notevoli a cui bisogna porre rimedio (l'SNR passa da 20 a 98 dB).

Vantaggi della stima SMR = SNR - K- L'unico valore da trasmettere è il parametro K che può essere inserito nei PAD o trasmesso

nel canale dedicato- La quantità di bit da usare è molto modesta.

Svantaggi- Scarsa accuratezza di stima , pari al passo di quantizzazione dei campioni frequenziali che tra

l'altro non è costante- Totale indeterminazione del valore di MNR nei casi di anomalie di allocazione (forti variazioni

della tabella di quantizzazione)

NOTA: La scarsa accuratezza dovuta alle anomalie di allocazione è un ostacolo all'usodi tale tecnica e può venire risolto usando un sistema "ibrido" ad esempiotrasmettendo il riferimento K ed i valori di MNR solo per quelle bande che sonoin una situazione "anomala".

L'ipotesi che i valori di MNR siano costanti non può essere veritiera o quantomeno non può essereaffidabile per la forma delle tabelle di quantizzazione che, in funzione della sottobanda, prevedonolivelli di allocazione determinati su base statistica e non regolari.

I N D I C E

SB NB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

11 3 3 5 7 9 15 31 6553512 3 3 5 7 9 15 31 6553513 3 3 5 7 9 15 31 6553514 3 3 5 7 9 15 31 65535

23 2 3 5 6553524 2 3 5 65535

Tab. 9.1 Parte della tabella di quantizzazione dove sono evidenziati i "salti" diquantizzazione per alcune sottobande.

Queste anomalie corrispondono grandi variazioni di SNR che portano ad una poco accurata stima deivalori di SMR e ad una errata allocazione dei bit tra i campioni di sottobanda della sequenza elaborata:

1Si veda a conferma di tale affermazione la rappresentazione grafica di figura 7.2 in cui sono

rappresentati i valori di SMR, SNR e MNR per un tipico frame della sequenza bass.mpg.

Page 200: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-5

LIVELLIQUANTIZZAZIONE

SNR

3 7.005 11.007 16.009 20.84

15 25.2865535 98.01

Tab. 9.2 Tabella di corrispondenza tra livelli e valori di SNR.

Per bitrate alti capita frequentemente (in molti Frame) che alcune bande si trovino in una situazioneanomala ovvero allocate su un numero elevato di livelli per il solo fatto che la quantizzazione inferioredetermina un MNR che viene individuato come il minore tra tutti quelli del Frame.

Il problema potrebbe essere risolto trasmettendo informazioni ausiliarie per quelle bande su cui sipresenta tale situazione, in tal modo nei PAD si deve trasmettere il riferimento K e i valori dicorrezione per le bande tali che

(SNR[ba(sb)] - SNR[ba(sb)-1] ) > 7

Per tali bande si può ad esempio trasmettere il valore di MNR quantizzato con una precisione di 3dB,infatti sarebbe inutile avere una precisione maggiore dato che per le bande senza anomalia il criteriopermette una indeterminazione media pari alla metà del passo di quantizzazione (6 dB).

9.3.1. Valore di RiferimentoPer la trasmissione del valore di riferimento (K) si deve studiare l'intervallo di variazione dei valori diMNR e le richieste che devono essere soddisfatte.

Le richieste minime che il valore di riferimento deve soddisfare sono:

• .. minimizzare l'errore medio di stima SMR = SNR-K• .. essere rappresentabile con il minor numero di bit possibile• .. avere una sufficiente accuratezza• .. permettere una accuratezza costante su tutte le sottobande

Tali caratteristiche andranno analizzate approfonditamente a seconda del campo di applicazioneovvero di quale sarà il bitrate e la sequenze audio.Ad esempio per applicazioni vocali le necessità e richieste saranno sicuramente molto diverse daquelle di segnali audio ad alta qualità anche se i problemi alla base delle tecniche di elaborazione(mixing, sincronizzazione, ecc...) sono gli stessi.

Per la vastità delle possibili applicazioni non è utile riportare una valutazione dell'occupazione dicanale per il valore di riferimento, che comunque dovrà avvenire nei PAD con una opportunaprotezione da errori e con una parola identificativa che ne permetta la distinzione da altri dati inseritida applicazioni specifiche (ad esempio la parte testuale delle DCC).

9.4. TRASMISSIONE MNRUna alternativa alla stima SMR=SNR-K è di trasmettere i valori di MNR per ogni banda, qualsiasi siail mezzo usato (canale separato o PAD) ma è conveniente limitare il più possibile la quantità di bitnecessari.Una prima compressione delle informazioni può essere ottenuta quantizzando opportunamente i valoridi MNR con una precisione non superiore alla indeterminazione intrinseca nella codifica, in tal modo ivalori di MNR possono essere rappresentati con numeri interi quantizzati a distanza di 2 o 3 dB.Se l'intervallo di variazione dei valori di MNR è entro un intervallo di +64 dB e si sceglie diquantizzarne i valori a passi di 2 dB la capacità di canale richiesta è di circa:

20(Bande)*4(Bit) = 80 Bit/Frame = 80*42 = 3.4 KBit/sec

Page 201: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-6

per ogni canale monofonico, capacità troppo elevata per poter essere allocata nei PAD2.

Per ridurre l'occupazione di canale è possibile restringere l'intervallo di variazione o aumentare ilpasso di quantizzazione:

... l'aumento del passo di quantizzazione porta ad una minor accuratezza.

... il contenimento dell'intervallo di variazione può essere ottenuto solo da una meticolosaanalisi statistica dei risultati del modulo di allocazione.

9.5. UNA TECNICA IBRIDABuoni risultati possono essere ottenuti (almeno teoricamente) sfruttando gli aspetti migliori delletecniche di stima dall'SNR e di trasmissione.Per ottenere i valori di MNR si propone il seguente procedimento ottenuto da uno studio sulla formanumerica delle sequenze codificate e dalla richiesta di massima compressione.

I principi base del metodo sono:

- l'accuratezza dei valori di MNR deve essere indipendente dai livelli di quantizzazione deicampioni in sottobanda.

- l'accuratezza deve essere indipendente dal bitrate, ovvero più il bitrate è alto e maggiori sono ibit utilizzabili nei PAD (ottenere una occupazione percentualmente costante delcanale).

- si deve ridurre al minimo il numero di bit da usare.- non si devono creare problemi di sincronizzazione tra valori di MNR e rispettivi valori di

campioni.

La tecnica viene proposta per i PAD ma può essere applicata anche per la trasmissione in un canalededicato.

Ipotizzando che per i valori di MNR sia sufficiente una accuratezza pari alla metà del passo di SNRmedio (6dB) si può : usare un criterio di stima se non sono presenti anomalie di allocazione o unatecnica di trasmissione ottimizzata per i restanti valori.

Le anomalie di allocazione possono essere rilevate dal valore di Bit_Allocation (ba) e di sottobanda:

2 Infatti MPEG prevede una dimensione di circa 2 KBit/sec. per i PAD.

Page 202: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-7

LIVELLIQUANTIZZAZIONE

SNR

0 0.003 7.005 11.007 16.009 20.84

15 25.2831 31.5963 37.75

127 43.84255 49.89511 55.93

1023 61.962047 67.984095 74.018191 80.03

16381 86.0532767 92.0165535 98.01

IF (SNR[ba(sb)] - SNR[ba(sb)-1] ) > 6.4

THEN "Anomalia"

ELSESMR = [ SNR(ba)+SNR(ba-1) ] / 2 - K

Come già visto le situazioni di anomalia non permettono una stima accurata di SMR=SNR-K in quantol'SNR assume valori troppo grandi.Per ovviare al problema è possibile trasmettere dei fattori di correzione (C_C) solo per quelle bande insituazione anomala.

SMR = [ SNR(ba) - SNR(ba-1) ] / 2 - K - Funz[C_C]

I fattori di correzione C_C devono essere tali da permettere una stima con la stessa accuratezza deivalori di MNR ovvero possono avere una indeterminazione media di 3 dB (metà del passo diquantizzazione).Per ottenere questo risultato il numero di bit per quantizzare ogni C_C è di

n_bit = (int) log2 [ (SNR(ba)-SNR(ba-1) ) / 3 ]

ed il valore di C_C viene trovato in fase di codifica dalla:

C_C = ( [SNR(ba) - SNR(ba-1)] / 2 - K - SMR ) / 3

Seguendo le indicazioni di questo procedimento non è necessaria nessuna informazione psicoacusticaper le bande che non sono allocate su livelli anomali, mentre per le rimanenti sono necessari unnumero di bit variabile tra 1 e 5 3.

3 Ottenuti dalla :

log2(98.01-11.0) = 4.89

Page 203: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 9 "Trasmissione MNR" Davide Cilano

Pag. 9-8

IF (SNR[ba(sb)] - SNR[ba(sb)-1] ) > 6.4

THEN "Anomalia"

SMR = [SNR(ba) - SNR(ba)] / 2 - K - C_C * 3

ELSESMR = [ SNR(ba)+SNR(ba-1) ] / 2 - K

Osservando la forma numerica di alcune sequenze codificate si può osservare che indicativamente leanomalie si verificano solo a bitrate piuttosto alti (maggiori di 256 KBit/sec) e solo per poche bande.Infatti a bitrate inferiori non sono disponibili una sufficiente quantità di bit per allocare bande su65535 livelli e quindi questa situazione non si verifica.Invece a bitrate alti per cui si verifica si può osservare che anche poche bande allocate su 16 bitsaturano la disponibilità del Frame:

Una sola banda allocata su 65535 livelli richiede:16*36 = 576 Bit !

che tradotti in bitrate sono 576*42 = 24.2 KBit/sec (1/7 di un canale compresso a qualità CD !)esclusa la necessità per bit allocation, fattori di scala e scfsi.

Il procedimento esposto ha quindi il vantaggio di ben adattarsi al bitrate cioè alla quantità di bit adisposizione per la quantizzazione dei campioni.Infatti se il bitrate è basso per le osservazioni sopra è improbabile che si debba trasmettere i valori dicorrezione e quindi nei PAD bisogna solo allocare il riferimento KA bitrate alti dove è disponibile una maggior capacità dei PAD in effetti può essere necessariotrasmettere qualche valore di correzione.

9.6. USO DEI PADPer utilizzare la struttura dati PAD nel software MPEG vers.3.5 bisogna notificare le dimensioni allaprocedura di allocazione [II_a_bit_bit_allocation() nel file encoder.c] ponendo

banc = dimensioni

e si devono scrivere e definire le procedure di lettura e scrittura dei PAD rispettivamente:

• scrittura .. per il codificatore• lettura .. per il decodificatore

e deve essere aggiunta la loro chiamata nelle procedure principali (main) di codifica e decodifica :musicin.c e musicout.c.

Page 204: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10APPUNTI SULLA

CODIFICA10.1. SOTTOBANDE ALLOCATE ..........................................................................................................1

10.1.1. Analisi Occupazione Canale ...........................................................................................210.1.2. Tabella Guadagni............................................................................................................310.1.3. Proposta Nuova Sintassi .................................................................................................5

10.2. CAMPIONI NON SIGNIFICATIVI ................................................................................................510.2.1. Risparmio Bit...................................................................................................................710.2.2. Algoritmo.........................................................................................................................8

Nel capitolo si riportano due annotazioni sul sistema di codifica MPEG che permettono una ulteriorecompressione del segnale con un prezzo di complessità computazionale molto basso.

I suggerimenti proposti permettono il risparmio di una certa quantità di bit che va a vantaggio dellaquantizzazione dei campioni di sottobanda e riguardano :

•••• risparmiare bit sulla trasmissione della bit allocation•••• risparmiare bit sui campioni di sottobanda a contributo nullo

Tali suggerimenti di codifica sono enunciati ed analizzati per valutare il risparmio numerico di bit.Purtroppo una loro applicabilità è insperata in quanto la sintassi di codifica è già stata standardizzatadall' ISO.

10.1. SOTTOBANDE ALLOCATEIl primo appunto riguarda la possibilità di risparmiare una certa quantità di bit semplicementetrasmettendo nell'header di ogni frame il numero di bande allocate (MAX_BAND).

Lo standard di codifica non memorizza tale informazione in quanto il numero di bande per cuitrasmettere la bit allocation (SBLIM) è tabulato in dipendenza dal bitrate e dalla frequenza dicampionamento (per 48KHz di campionamento SBLIM = 27).

Osservando le sequenze codificate MPEG è però evidente che in condizioni normali qualsiasi sia ilbitrate il numero di bande allocate è normalmente inferiore sia alle 32 totali che alle 27 tabulate eraggiunge tipicamente il numero di 20 o meno per bitrate medio-alti (128KBit/sec per canale).

Standard : 27 Bande allocate (massimo)

Codifica reale : circa 20 Bande allocate Bit Allocation= 0

Page 205: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-2

Fig. 10.1 Il numero di bande memorizzate in ogni frame è normalmente inferiorea quelle tabulate, usate da MPEG.Il numero di bande allocate varia da frame a frame.

Tale comportamento come già detto modellizza le capacità dell'apparato uditivo di minore sensibilitàalle alte frequenze.Infatti la 20° banda corrisponde ad una frequenza (per 48KHz di campionamento)

(750_Hz/Banda)*(20_Bande) = 15 KHz

a cui corrisponde una soglia statica che maschera le eccitazioni inferiori a 70 dB SPL e tale livelloviene anche incrementato dai contributi delle eccitazioni nelle bande adiacenti.

Lo standard di codifica impone la trasmissione dei valori di bit_allocation (anche se nulla) per tuttele prime 27 bande, nonostante le reali bande allocate siano ad esempio 20 (per le modalità stereo,dual_channel, single_channel).

Da qui il suggerimento di ottimizzare i bit disponibili trasmettendo il valore di MAX_BANDeventualmente per ogni canale monofonico o multi_lingue allocato.

Si fa notare come il principio di trasmettere il numero di bande si adatta perfettamente al bitrate dicodifica, infatti più il bitrate è basso e minore è la dimensione del Frame, con una limitata possibilitàdi allocare le Bande alte, influendo sulla qualità della codifica.Per il comportamento del modello percettivo minore è il bitrate e minore è il numero di bande allocate,quindi trasmettendo solo i necessari valori di bit allocation si risparmiano molti bit che possono cosìessere usati per aumentare la quantizzazione dei campioni e quindi la qualità dell'audio.

10.1.1. Analisi Occupazione CanaleLa trasmissione del valore MAX_BAND richiede 5 Bit in quanto il suo intervallo di variazione è0:32.Tale richiesta può risultare una perdita nel caso peggiore in cui siano realmente allocate tutte e 27 lebande tabulate, ovvero se realmente vengono allocate 27 bande la nuova sintassi proposta porta ad unospreco di 5 bit, cosa che si vuole evitare.

Una immediata e gratuita soluzione a tale problema deriva dall'osservazione delle regole sintatticheper la codifica del CRC ERRORI.

Osserviamo tali regole:

Nell'header è presente un bit denominato CRC il cui valore ha i seguenti significati:

1: dopo l'header ci sono 16 bit che devono essere interpretati come codice di correzioneerrori

0: non è presente nessuna parola di CRC

Adottando la stessa sintassi per il valore di MAX_BAND, l'header deve essere esteso di 1 bit oppure sideve usare il bit denominato PRIVATO e gli deve essere attribuito il significato di presenza o menodei 5 bit di MAX_BAND subito dopo l'header e prima del CRC ERRORI.

In tal modo la nuova sintassi porta nel caso peggiore ad uno spreco di un solo bit ma nel caso difunzionamento a regime normale permette un risparmio di bit tipico di 15-20 bit per canalemonofonico (a 256 KBit/sec) ovvero per un segnale stereofonico si traduce in un guadagno di bitratedi 1.2-1.7 KBit/sec. utilizzabile ad esempio per trasmettere parte delle informazioni psicoacusticheal decodificatore.Per bitrate bassi (128 KBit/sec. per sequenza stereofonica) il guadagno viene enormementeamplificato raggiungendo valori di 60 bit per frame equivalenti a 2.5 KBit/sec.

Inoltre su base di una opportuna indagine statistica la tecnica porterebbe essere ulteriormenteottimizzata ad esempio trasmettendo due valori di MAX_BAND: uno per ogni canale stereofonicoportando ad un ulteriore guadagno nei frame con segnale molto diverso tra i due canali.

Page 206: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-3

Una rappresentazione grafica della sintassi esposta per il caso monofonico è la seguente:dove in "fondo grigio" è riportata la parte modificata:

TRACCIATO DI OGNI FRAME:

HEADER [MAX_BAND]

[CRC] ALLOC SCFSI FATTORI DISCALA

SAMPLE [ANC]

| | | | | | | |Dimensione

fissaOpzionale

diDimensione

fissa

Opzionaledi

dimensionefissa

Dimensionefissa

Presentese

b_a != 0

Presente se

b_a != 0

Presentese

b_a != 0

Opzionale didimensionevariabile

1.. usando il bit privato....

HEADERSYNC ID LAYER CRC BITRATE FREQUENZA PADDING PRIVATO MODO EXT COPYRIGHT ORIGINALE ENFASI

12 1 2 1 4 2 1 1 2 2 1 1 2

2.. inserendo un nuovo campo di :1 bit per sequenze mono e joint_stereo

2 bit per sequenze dual-channel E stereo

HEADERSYNC ID LAYER CRC BITRATE FREQUENZA PADDING PRIVATO MODO EXT COPYRIGHT ORIGINALE ENFASI MBA-S

12 1 2 1 4 2 1 1 2 2 1 1 2 1-2

con la seconda soluzione lo spreco massimo è di 1 bit per sequenze monofoniche e 2 bit per sequenzea due canali, caso peggiore che dalle sperimentazioni fatte durante la tesi ha una probabilità pressochénulla di verificarsi ed a cui fa da contrappeso l'alta probabilità di guadagnare una utile quantità di bitper Frame.

L'inserire il joint_stereo insieme al single channel è dettato semplicemente dall'osservazione che giàlo standard prevede la trasmissione della bit allocation solo fino a JS_BOUND delle bande in joint.

10.1.2. Tabella GuadagniLo spreco di bit in conseguenza della sintassi MPEG rispetto alla nuova proposta è dimensionatonumericamente nella seguente tabella (per il caso monofonico):

Page 207: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-4

END_Subband

NBAL_SBLIMIT

NBAL_MBA

Guadagno Valore Bit

MBA

RisparmioBit/sec.

26 88 86+1 -1 0 -4225 88 84+1 -1 0 -4224 88 82+5 1 1 4223 88 79+5 4 1 16822 88 76+5 7 1 29421 88 73+5 10 1 42020 88 71+5 12 1 50419 88 68+5 15 1 63018 88 65+5 18 1 75617 88 62+5 21 1 88216 88 59+5 24 1 100815 88 56+5 27 1 113414 88 53+5 30 1 126013 88 50+5 33 1 138612 88 47+5 36 1 151211 88 44+5 39 1 163810 88 40+5 43 1 18089 88 36+5 47 1 19748 88 32+5 51 1 21427 88 28+5 55 1 23106 88 24+5 59 1 24785 88 20+5 63 1 26464 88 16+5 67 1 28143 88 12+5 71 1 29822 88 8+5 75 1 31501 88 4+5 79 1 33180 88 0+5 83 1 3486

Tab. 10.1 i valori negativi di risparmio percentuale equivalgono alla perdita diun bit per Frame che in particolare è il bit che indica la presenza o meno

di MAX_BAND.

Tali guadagni non sono affatto modesti se si considera che lo scopo della codifica MPEG è lacompressione.

Inoltre i reali risparmi possono essere numericamente elevati per sequenze stereofoniche con lamaggior parte del segnale su un solo canale come ad esempio la sequenza left-right o, nella codificamulti_lingue, nel caso di un segnale composto solo da voce umana.Infatti il parlato non si estende oltre i 6KHz ovvero la 7° banda.

Un' altra applicazione dei bit guadagnati potrebbe essere l'uso a vantaggio dei PAD per trasmettereinformazioni testuali.

Indicativamente per le sequenze esaminate una codifica a 96 KBit per canale alloca le prime 14-15sottobande mentre una a 128 KBit per canale arriva alle prime 18-20.

Si tenga presente che i valori di MAX_BAND portano anche ad un risparmio indiretto sul tempo dicomputazione in quanto l'algoritmo di decodifica deve eseguire tutti i test (e sono molti) solo fino alvalore di MAX_BAND (invece di SBLIM) ottenendo un risparmio di circa 1/5 del tempo speso suitest!

Page 208: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-5

10.1.3. Proposta Nuova SintassiDalle valutazioni e studi sopra esposti una proposta di sintassi è la seguente:

NELL'HEADER

•••• .. per sequenze Single_Channel e Joint_Stereol'header deve avere un bit denominato MBA (Massima Banda Allocata)

1 : Subito dopo l'header è presente il valore della maggiorebanda allocata (5Bit)

0 : Dopo l'header non è presente il valore di bande

•••• .. per sequenze stereo e dual_channell'header deve avere due bit denominati MBAS (Massime Bande Allocate)

10: Subito dopo l'header sono presenti due valori a 5 bit rispettivamenteper il canale destro ed il sinistro

01: Subito dopo l'header è disponibile un solo valore a 5 bit per entrambii canali

00: Dopo l'header non è presente nessun valore di limite11: Non Usato

La sintassi riportata sopra può venire sostituita, dopo l'opportuna indagine statistica che conferma labassa probabilità del caso peggiore, da una semplificata che eviti l'uso dei bit MBA e MBASnell'header trasmettendo sempre per ogni sequenza i valori di massima banda allocata.

Ma tale decisione può venire solo da una approfondita analisi statistica su molte sequenze, analisi cheper i mezzi e tempi a disposizione non può essere compiuta durante lo sviluppo della tesi.

10.2. CAMPIONI NON SIGNIFICATIVIUna seconda osservazione che può portare ad un ulteriore compressione del segnale riguarda l'utilizzodei bit per l'allocazione dei campioni di sottobanda e nasce dalle seguenti considerazioni :

• ogni fattore di scala si riferisce a 12 campioni di sottobanda.

• l'SMR è costante per tutti i 36 campioni della sottobanda

• dall' SMR si ricava il margine MNR=SNR-SMR che è quindi costante nella sottobanda

• teoricamente un MNR=2 e uno =20 producono la stessa qualità dell'audio ma permettonodifferenti margini di post-processing.

• nei punti con attacchi e suoni percussivi i fattori di scala possono essere notevolmentediversi.

Il margine MNR è quindi lo stesso per tutti e 36 i campioni di sottobanda, ciò significa che il segnalepuò essere efficacemente elaborato solo se il margine si mantiene entro un valore funzione dell' MNR.

L'MNR quindi comanda l'intensità del postprocessing affinché non diventi udibile del rumore dovutoalla codifica.Il fatto che nei punti della sequenza in cui si verificano forti variazioni di intensità i fattori di scalapossano essere notevolmente diversi porta alla seguente considerazione:

NON è necessario memorizzare i campioni di intensità inferiore alla soglia di mascheramento perun valore maggiore del margine di post-processing.

Page 209: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-6

Come conferma pratica di quanto affermato si consideri il frame seguente ottenuto moltiplicando lasequenza BASS.SND per un livello 0.8 :

banda 10 3(1) 3(1) | 48 23 23 : 47 23 23 | 7.00 7.00 | +1.0 +1.0 | +6.0 +6.0banda 11 3(1) 3(1) | 49 22 22 : 49 22 22 | 7.00 7.00 | -0.4 -0.4 | +7.4 +7.4banda 12 | | | |banda 13 | | | |banda 14 3(1) 3(1) | 51 24 20 : 51 24 20 | 7.00 7.00 | -0.6 -0.6 | +7.6 +7.6banda 15 | | | |banda 16 | | | |banda 17 3(1) 3(1) | 52 27 21 : 50 26 21 | 7.00 7.00 | -0.6 -0.7 | +7.6 +7.7banda 18

Tab. 10.2. Frame 122 di bass.mpg moltiplicato per il livello 0,8 si ottiene laseguente conformazione di valori :

ad esempio si può notare che nella banda 27, canale sinistro sono presenti i valori [52 27 21] perl'indice di scalamento, che corrispondono a valori in dB di :

52 .... [96 - 2*(52-3) ] = -2 dB27.... [96 - 2*(27-3) ] = 48 dB21.... [96 - 2*(21-3) ] = 60 dB

ed in tale banda la soglia statica ha intensità minima di 30,14 dB !

la banda viene allocata non certo per il 52 (Segnale sotto la soglia statica) ma per il 21 che è il segnalepiù intenso e che quindi determina il margine per postprocessing che dipende dal valore di MNR.

I 12 campioni che si riferiscono al fattore di scala 52 rimarranno probabilmente impercettibili a menodi compiere una elaborazione del segnale che ne aumenti il livello di 32 dB (equivalente a oltre 10volte l'energia iniziale).Vale a dire che i 12 campioni che si riferiscono al fattore di scala 52 non sono significativi e quindinon è indispensabile memorizzarli nella trama compressa.

52

27

21

MNR

MNR

SOGLIASTATICA

Fig. 10.2 Rappresentazione delle intensità del segnale per i valori di esempio.Notare che il segnale corrispondente all'indice di scalamento 52 è moltosotto la soglia statica e quindi è del tutto insignificante.

L'affermazione precedente potrebbe essere contestata osservando che se effettivamente unaelaborazione porta ad aumentare di 30 dB le intensità dei campioni, allora realmente potrebberodiventare udibili e sopprimendoli si perde una certa informazione.

A questa osservazione si può rispondere nel modo seguente:

Page 210: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-7

Perché la codifica MPEG non memorizza nessuna informazione per le bande sotto la soglia statica,quando ugualmente una elaborazione anche modesta può rendere critica la perdita di informazione?

Tutto questo porta ad osservare come in effetti il sistema di codifica poco si presta ad elaborazioni epostprocessing del segnale, fatto che è emerso anche dagli studi di tesi.

Da queste osservazioni nasce il suggerimento di essere coerenti con il sistema di codifica ed evitare dimemorizzare i gruppi di campioni, che, per intensità del fattore di scala, vengono individuati comenon significativi.

Un codificatore che tenga conto di questo aspetto è poco più complesso di quello standard e dovràoccuparsi trasmettere tutti gli scf ma non i 12 campioni che si riferiscono al/i fattore di scala cherientrano in questa situazione.

Il decodificatore può rilevare la stessa situazione dai valori di fattori di scala e dai valori di SMR equindi non aspettarsi e non leggere i 12 campioni che ricadono in tale situazione.Per compiere tale operazione il codificatore deve trasmettere al decodificatore l'informazionequantitativa del massimo MNR allocato (ad esempio nei PAD) da cui può ricavare il massimo margineper effettuare elaborazioni.

La considerazione si inserisce perfettamente con la protezione errori del CRC in quanto vengonoprotetti Header, scfsi, fattori di scala, PAD, infatti un errore sui fattori di scala potrebbe risultare inuna mancata lettura di campioni che invece sono memorizzati.

Inoltre il risparmio di bit che si ottiene va a diretto vantaggio di una maggiore allocazione suicampioni che in base all'analisi del modello psicoacustico sono percettivamente più rilevanti.

10.2.1. Risparmio BitLa quantità di bit risparmiata è notevole se si considera che il guadagno su ogni campione deve esseremoltiplicato per 12 (tanti sono i campioni legati ad ogni fattore di scala).

Ad esempio nel frame di tabella 10.2, l'anomalia esposta può essere rilevata nelle bande 10, 11, 14, 17per entrambi i canali stereofonici e per un gruppo di 12 campioni su tre ottenendo un risparmio di:

(1_bit quantizzazione)*(12_campioni)*(2_canali)*(4_sottobande) = 96 bit

che corrispondono ad un bitrate di 4 KBit/sec. !

Si ripete che non bisogna usare nessuna struttura per notificare se vengono trasmessi tutti e 36 icampioni frequenziali oppure solo 12 o 24 dato che tale informazione è deducibile dal valore deifattori di scala e dal margine di elaborazione, unico dato in eccesso che deve essere trasmesso adesempio nella parte dei PAD.

Un dimensionamento medio del risparmio non può essere dedotto in forma diretta ma solo dopo unaanalisi statistica di quanti campi rientrano nella casistica e quale è la quantizzazione dei campioni chevengono "risparmiati".L'osservazione che ogni bit risparmiato deve essere moltiplicato per il numero di campioni legato adogni fattore di scala (12) porta ad affermare che se ci sarà guadagno questo sarà piuttosto sostanzioso.

10.2.2. AlgoritmoPer applicare i suggerimenti di questo paragrafo è necessario che:

Page 211: Mpeg Audio Codifiche Percettive - Compressione Audio

Capitolo 10 "Appunti sulla Codifica" Davide Cilano

Pag. 10-8

1.. Il codificatore trasmetta nei PAD il margine di elaborazione

2.. Il codificatore non deve memorizzare nella sequenza compressa i campioni che si riferiscono

a fattori di scala inferiori alla soglia di un valore in dB maggiore del margine di

elaborazione

3.. Il decodificatore deve leggere l'informazione sul margine di elaborazione nei PAD

4.. Il decodificatore non deve aspettarsi i campioni di sottobanda dei fattori di scala sotto il

margine di elaborazione.

Come si può notare la complessità di calcolo è limitata.

Page 212: Mpeg Audio Codifiche Percettive - Compressione Audio

Appendice AIL SOFTWARE MPEG

(versione 3.5)A.1 MODULI E LIBRERIE ......................................................................................................................1A.2 AUTORI .............................................................................................................................................1A.3 SCOPO DISTRIBUZIONE.................................................................................................................2A.4 DESCRIZIONE SORGENTI ..............................................................................................................4A.5 STRUTTURE DATI............................................................................................................................5A.6 MACRODEFINIZIONI ......................................................................................................................9A.7 VARIABILI GLOBALI........................................................................................................................9A.8 FUNZIONI.........................................................................................................................................10

In questa Appendice si riporta l' analisi riassuntiva della raccolta di programmi in linguaggio 'C' scrittisotto il controllo di MPEG ISO-IEC/JCT1/SC29/WG11 per la codifica e decodifica1 di segnali audioPCM secondo le specifiche 11172 rev 1.La versione del software esaminata è la 3.5, distribuita da MPEG nel Novembre 1992 senza alcunadocumentazione.L'analisi di come operano le diverse procedure è stata ottenuta dalla lettura del codice sorgente 'C'.Viene illustrata la struttura degli algoritmi di codifica e decodifica che è utile per comprendere la partedegli algoritmi scritti per l'elaborazione dei segnali MPEG.

A.1 MODULI E LIBRERIEI programmi sono organizzati in moduli di:

_ codifica_ decodifica_ parte comune contenente dichiarazioni e definizioni delle funzioni e delle strutture dati

utili sia al codificatore che al decodificatore.

1Solo per i layer I e II

Page 213: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-2

ModuliCodificatore

Comuni ModuliDecodificatore

musicin.c common.c musicout.cencode.c common.h decode.cencoder.h alloc_[0 , 1, 2, 3] decoder.henwindow dewindow

psy.csubs.c

absthr_[0, 1, 2]tonal.c

1cb[0, 1, 2]2cb[0, 1, 2]1th[0, 1, 2]2th[0, 1, 2]

Tab A.1 File contenenti il codice sorgente per codificatore edecodificatore.I nomi di file scritti in corsivo indicano tabelle di dati chevengono caricati in strutture in memoria e sono usati perl'elaborazione.

A.2 AUTORIIl pacchetto software è stato scritto sotto il controllo di MPEG (ISO/IEC JTC/SC29/WG11) daalcuni suoi membri e consulenti.Tra i programmatori che hanno preso parte alla stesura del codice i maggiori contributi sono statidati da:

Douglas Wong e Davis Pan per la stesura della prima versione dimusicin.ccommon.hdecoder.hdecode.ccommon.cencode.cencoder.h

Douglas Wong permusicout.ctonal.c

Davis Pan perpsy.csubs.c

La prima versione (iniziata al 3 Gennaio 1991) è stata scritta per macchine AIX ed è stata corretta,modificata e aggiornata da un gran numero di revisori, alcuni dei quali si sono occupati di rendereportabile il software sulle macchine DOS , MACINTOSH e UNIX.

In particolare :

W. Joseph Carter per la portabilità da AIX a UNIX

W. Joseph Carter per la portabilità da AIX a MACINTOSH

Earle Jennings per la portabilità da MACINTOSH a DOS

Tra i revisori i più ricorrenti sono:Bill Aspromonte

Page 214: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-3

Douglas WongJens SpilleMasahiro IwadareMike ColemanShaun AstarabadiDon H. LeeKaty Wang.

Ogni modulo ha comunque indicato all'interno di commenti gli autori, i revisori e cosa hanno fatto.

A.3 SCOPO DISTRIBUZIONEIl software è stato inizialmente scritto per una distribuzione pubblica senza alcuna licenza perdiffondere il sistema MPEG_Audio e farlo conoscere sia ai produttori che al grande pubblico,come base per svilupparne implementazioni efficienti.Il software nella forma originale NON poteva essere commercializzato o venduto in nessun modoma veniva distribuito gratuitamente.

Successive revisioni e riunioni hanno stabilito un Copyright sul software per evitarne losfruttamento per scopi commerciali a fini di lucro.In tal modo è stata imposta una tassa di licenza d'uso per ogni copia dei sorgenti 'C'.

Il software viene distribuito con dei file PCM e dei file codificati per verificarne il funzionamentosu ogni macchina.

Le richieste minime della macchina sono:

interi 16 o 32 bitfloat 32 bitdouble 64 bitmemoria centrale sufficiente a contenere i programmi compilati e le tabelle

(almeno 400KByte)

La scrittura e revisione a più mani ha portato ad una struttura molto portabile anche se pocoottimizzata e poco chiara.Ad esempio strutture contenenti gli stessi dati ma di moduli diversi risultano avere nomi diversi ecapita anche che siano organizzate in modo diverso.

Le dimensioni del software sono:

28.000 linee per i sorgenti 'C' (8 moduli) 1.000 linee per i file di include *.h (3 moduli)65.000 caratteri di tabelle (21 file).

La compilazione dei progetti di codifica e decodifica in ambiente Turbo C (Borland) ,MS-DOSproduce i seguenti risultati:

���� N.Linee Compilate Dim.Strutture statiche Dimensione EseguibileCODIFICATORE 18 770 16 KByte 134 493 Byte

DECODIFICATORE 8 439 7 KByte 75 529 ByteTab. A.2 Risultati della compilazione dei progetti di codifica e decodifica in

'Turbo C'.

Il software alloca la maggior parte delle strutture dati viene allocata in memoria dinamica per laportabilità su macchine con capacità limitata , tali strutture occupano memoria ma non sono notificatein fase di compilazione e quindi non sono riportate nella tabella Tab A.2.Ne segue che la reale occupazione di memoria è superiore a quella riportata dal compilatore.

Page 215: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-4

Per quanto riguarda il layer III la sua alta complessità richiede lunghi tempi di sviluppo e nel mese diOttobre 1993 non ne è ancora disponibile nessuna implementazione.

Il file codificato MPEG può venire scritto in ASCII o in BINARIO (4bit) settando il flagBS_FORMAT (common.h).

Il file audio ingresso al codificatore può essere sia mono che stereofonico e campionato alle frequenzedi: 32 , 44.1, 48 KHz con 16 bit per campione.

Per segnali stereofonici il canale sinistro deve stare prima del destro.

Il file in uscita dal decodificatore è dello stesso tipo2 di quello in ingresso.È prevista la possibilità di produrre file di tipo AIFF3.

Il codificatore ed il decodificatore sono configurati per gestire il bitstream di uscita come unasequenza di caratteri esadecimali, nel modulo common.c c'è però la libreria:

'Bit Stream Package'Jean Georges Fritsh

C_Cube Microsystems

che permette la gestione dei file bit a bit. In tal modo si ottimizza lo sfruttamento di dispositivi binari.

Il rilevamento della syncword nel software di decodifica è molto primitivo e non è in grado didistinguere false syncword.In caso si verifichino errori non viene presa nessuna particolare misura correttiva ma viene solorilevato.Si riporta di seguito il makefile suggerito da MPEG per compilare il software su macchine AIX.

CC=ccDEFINES = TABLES_PATH=\".\"INCLUDES = decoder.h commun.hSHARED_OBJECTS=common.oENCODE_OBJECTS=encode.o musicin.o psy.o tonal1.o subs.oDECODE_OBJECTS=decode.o musicout.oCFLAGS=-DAIXLDFLAGS=-lm

all:codeccodec: encode decode.c.o$(CC) $(CFLAGS) -c $<$(LDFLAGS)encode: $(ENCODE_OBJECTS) $(SHARED_OBJECTS) $(CC) $(CFLAGS) -o encode $(ENCODE_OBJECTS) $(SHARED_OBJECTS)$(LDFLAGS)

decode: $(DECODE_OBJECTS) $(SHARED_OBJECTS) $(CC) $(CFLAGS) -o decode $(DECODE_OBJECTS) $(SHARED_OBJECTS)$(LDFLAGS)

2Per tipo si intende modalità (stereo, mono, dual, joint), numero di canali e frequenza di

campionamento

3Standard APPLE. AIFF (Audio Interchange File Format) è un file con un header secondo unasintassi definita.

Page 216: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-5

A.4 DESCRIZIONE SORGENTIViene descritto il ruolo di ogni modulo del pacchetto di codifica e decodifica.

NOME FILE CONTENUTO

musicin.c Procedura principale per la codifica

encode.c Funzioni usate per la codifica

encoder.h Include delle funzioni dichiarate in encode.c

enwindow Tabella di coefficienti per finestratura di Hann

psy.c Funzioni per il modello psicoacustico 2

subs.c Funzioni per il modello psicoacustico 1

absthr_[0, 1, 2] Tabelle usate dal modello psicoacustico 2

tonal.c Procedure per il modello psicoacustico 1

1cb[0, 1, 2] Tabelle limiti bande critiche layer 1 frequenze [32, 44, 48]

2cb[0, 1, 2] Tabelle limiti bande critiche layer 2 frequenze [32, 44, 48]

1th[0, 1, 2] Tabelle per il modello psicoacustico layer I

2th[0, 1, 2] Tabelle per il modello psicoacustico layer II

musicout.c Procedura principale decodifica

decode.c Dichiarazione funzioni usate per decodifica

decoder.h Include delle funzioni definite in decode.c

dewindow Coefficienti per definestratura di sintesi

common.c Funzioni comuni usate sia dal codificatore chedecodificatore.Contiene la libreria di funzioni 'BitStream Package'.

common.h Include delle funzioni dichiarate in common.c

alloc_[0 , 1, 2, 3] Tabelle per il layer II contenenti i possibili livelli diquantizzazione a seconda della sottobanda

Tab A.3 Contenuto dei file distribuiti da MPEG (versione 3.5 )

A.5 STRUTTURE DATITra i vari moduli ci solo diverse incongruenze di nomi tra strutture con lo stesso contenutoinformativo.Tra i moduli di codifica e decodifica variano le dimensioni di alcune strutture per il fatto che la stessaprocedura viene eseguita più volte su porzioni di essa.

Page 217: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-6

Contenuto Struttura Codificatoremusicin.c

Decodificatoremusicout.c

TIPO

Bit_Allocation bit_alloc[2][32] bit_alloc[2][32] unsigned int

Scfsi scfsi[2][32] scfsi[2][32] unsigned int

Fattori Di Scala scalar[2][3][32]j_scale[3][32]

scale_index[2][3][32] unsigned int

Campioni PCM buffer[2][1152] pcm_sample[2][3][32] short

Campioni FrequenzialiNormalizzati e Quantizzati

subband[2][3][12][32] sample[2][3][32] unsigned int

Campioni FrequenzialiDenormalizzati e Dequantizzati

sb_sample[2][3][12][32]j_sample[3][12][32]

fraction[2][3][32] double

SMR ltmin[2][32] ltmin[2][32] double

Tab A.4 Corrispondenza tra i nomi e dimensioni delle strutture usatedai moduli di codifica e di decodifica

Oltre a queste strutture dati semplici contenenti tutte le informazioni dell'audio compresso, vengonousate una serie di strutture record per la loro gestione e per la memorizzazione delle tabelle dicoefficienti.Tra queste strutture riporto le principali come definizione 'C' illustrandone il contenuto.

Le strutture sono definite nel file di include common.h.

Struttura LAYER, contenente l'Header del FRAME...

I campi corrispondono a quelli descritti nel Capitolo 3 "Specifiche MPEG_Audio" ememorizzano le informazioni dell' Header di ogni FRAME.

typedef struct { int version; int lay; int error_protection; int bitrate_index; int sampling_frequency; int padding; int extension; int mode; int mode_ext; int copyright; int original; int emphasis;} layer;

Page 218: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-7

Struttura FRAME_PARAMS, contenente il puntatore all'Header e i puntatori alle tabelle ...

typedef struct { layer *header; /* Puntatore all'header (struttura layer) */ int actual_mode; /* Modalità audio */ al_table *alloc; /* Puntatore tabella ALLOC_x */ int tab_num; /* Numero tabella ALLOC_[0,1,2,3] (*alloc) */ int stereo; /* Vale 1 per mono, 2 per stereo, J_stereo, Dual */ int jsbound; /* Prima banda in J_stereo */ int sblim; /* Numero totale di bande allocate */} frame_params;

Struttura AL_TABLE puntata da frame_params : tabelle di quantizzazione per il layer II...

Contiene la rappresentazione in memoria centrale del file ALLOC_x che indica il numero di livelli diquantizzazione disponipili per ogni sottobanda al layer II.

typedef struct { Unsigned Int steps; Unsigned Int bits; Unsigned Int group; Unsigned Int quant;} sb_alloc;

typedef sb_alloc al_table[SB][16];

La struttura al_table contiene per il layer II la tabella con i possibili livelli di quantizzazione.La rappresentazione tabulare riportata nel Capitolo 2 "La codifica MPEG Audio" è nella formaseguente:

I N D I C E

SB NB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655351 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655352 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

Tab A.4 Rappresentazione in tabella ed in file di una delle tabelle usate per ipossibili livelli di quantizzazione per il layer II

La tabella precedente è memorizzata nel file ALLOC_0 nella forma seguente:

Page 219: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-8

27─

┌─

│ ┌─

│ │ ┌─

│ │ │ ┌─

│ │ │ │ ┌─

│ │ │ │ │ ┌─ │ │ │ │ │ │0 0 0 4 0 00 1 3 5 1 00 2 7 3 3 20 3 15 4 3 40 4 31 5 3 50 5 63 6 3 60 6 127 7 3 70 7 255 8 3 80 8 511 9 3 90 9 1023 10 3 100 10 2047 11 3 110 11 4095 12 3 120 12 8191 13 3 130 13 16383 14 3 140 14 32767 15 3 150 15 65535 16 3 16

1 0 0 4 0 0

1 1 3 5 1 01 2 7 3 3 21 3 15 4 3 41 4 31 5 3 51 5 63 6 3 61 6 127 7 3 71 7 255 8 3 81 8 511 9 3 91 9 1023 10 3 101 10 2047 11 3 111 11 4095 12 3 121 12 8191 13 3 131 13 16383 14 3 141 14 32767 15 3 151 15 65535 16 3 16........................................................................................................................................................................

....................................................................................Tab. A.5 Tabella delle quantizzazioni nella forma in cui è memorizzata su file.

Tale tabella viene letta dalla funzione read_table() e memorizzata in*(fr_ps.al_table)

Page 220: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-9

Struttura BITSTREAM, per il package "BitStream Package"...

Struttura contenente informazioni sul file, buffer e posizione corrente.

typedef struct bit_stream_struc { FILE *pt; /* Puntatore al file */ unsigned char *buf; /* Buffer del file */ int buf_size; /* Dimensione del Buffer in Bytes */ long totbit; /* Numero di Bit del BitStream */ int buf_byte_idx; /* Puntatore Byte corrente nel buffer */ int buf_bit_idx; /* Puntatore Bit corrente di buf_byte_idx del buffer */ int mode; /* Modalità di apertura del file (read, write) */ int eob; /* Flag di fine del Buffer */ int eobs; /* Flag di fine del BitStream */ char format; /* Formato di scrittura/lettura (Binario o Ascii) */} Bit_stream_struc;

A.6 MACRODEFINIZIONISi riportano le macrodefinizioni ritenute maggiormente significative la co-decodifica del segnale.

#define MONO 1#define STEREO 2#define BITS_IN_A_BYTE 8#define SBLIMIT 32 /* Numero di sottobande */#define SCALE_BLOCK12 /* Numero di gruppi di 3 campioni per sottobanda */#define SCALE_RANGE64 /* Massimo indice per i fattori di scala */

MPEG Definizioni per la Modalità audio

#define MPG_MD_STEREO 0#define MPG_MD_JOINT_STEREO 1#define MPG_MD_DUAL_CHANNEL 2#define MPG_MD_MONO 3

Macrodefinizioni di minimo e di massimo tra due numeri

#define MIN(A, B) ((A) < (B) ? (A) : (B))#define MAX(A, B) ((A) > (B) ? (A) : (B))

Valore dell'MNR di soglia affinchè una banda sia considerata rumorosa

#define NOISY_MIN_MNR 0.0

Syncword

#define SYNC_WORD (long) 0xfff#define SYNC_WORD_LNGTH 12

A.7 VARIABILI GLOBALIVengono riassunte le strutture globali usate come interfaccia tra l'utente e la rappresentazione inmacchina e la struttura usata per memorizzare i valori dei fattori di scala.

Page 221: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-10

Nome delle modalità audio:char *mode_names[4] =

{ "stereo", "j-stereo", "dual-ch", "single-ch" };

Nome dei layer :char *layer_names[3] =

{ "I", "II", "III" };

Frequenze di campionamento:double s_freq[4] ={44.1, 48, 32, 0};

Bitrate disponibili in funzione del layer:int bitrate[3][15] =

{ {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448}, {0,32,48,56,64,80,96,112,128,160,192,224,256,320,384},

{0,32,40,48,56,64,80,96,112,128,160,192,224,256,320} };

Valori dei Fattori di Scala:double FAR multiple[64] =

{2.00000000000000, 1.58740105196820, 1.25992104989487,1.00000000000000, 0.79370052598410, 0.62996052494744, 0.50000000000000,0.39685026299205, 0.31498026247372, 0.25000000000000, 0.19842513149602,0.15749013123686, 0.12500000000000, 0.09921256574801, 0.07874506561843,0.06250000000000, 0.04960628287401, 0.03937253280921, 0.03125000000000,0.02480314143700, 0.01968626640461, 0.01562500000000, 0.01240157071850,0.00984313320230, 0.00781250000000, 0.00620078535925, 0.00492156660115,0.00390625000000, 0.00310039267963, 0.00246078330058, 0.00195312500000,0.00155019633981, 0.00123039165029, 0.00097656250000, 0.00077509816991,0.00061519582514, 0.00048828125000, 0.00038754908495, 0.00030759791257,0.00024414062500, 0.00019377454248, 0.00015379895629, 0.00012207031250,0.00009688727124, 0.00007689947814, 0.00006103515625, 0.00004844363562,0.00003844973907, 0.00003051757813, 0.00002422181781, 0.00001922486954,0.00001525878906, 0.00001211090890, 0.00000961243477, 0.00000762939453,0.00000605545445, 0.00000480621738, 0.00000381469727, 0.00000302772723,0.00000240310869, 0.00000190734863, 0.00000151386361, 0.00000120155435,

1E-20 };

Valori di SNR per il layer II in funzione del numero di livelli di quantizzazione:static double snr[18] =

{ 0.00, 7.00, 11.00, 16.00, 20.84,25.28, 31.59, 37.75, 43.84,

49.89, 55.93, 61.96, 67.98, 74.01,80.03, 86.05, 92.01, 98.01 };

A.8 FUNZIONIIn questo paragrafo si riassumono le principali funzioni definite nei moduli del software MPEG chesono utilizzate per l'elaborazione del segnale codificato al layer II .

Per una maggiore leggibilità sono state fatte le seguenti sostituzioni:

Page 222: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-11

TIPO STRUTTURADATI

ABBREVIAZIONE

unsigned int UI

float F

double D

SCALE_BLOCK S_BLK

unsigned long UL

SBLIMIT SB

long L

Bit_stream_struc B_struc

Tab A.6 Abbreviazione dei alcuni nomi per una maggiore leggibilità delle tabelle6.8, 6.9, 6.10.

Le funzioni vengono presentate divise per modulo di appartenenza.

FUNZIONI DEFINITE IN COMMON.C

TIPO NOME SCOPO

FILE * OpenTableFile(char*);Apertura file ALLOC_x contenente la tabelladei livelli di quantizzazione

int read_bit_alloc(int, al_table*);Lettura tabella ALLOC_x da file ememorizzazione in al_table*

int pick_table(fr_ps*);Sceglie il valore di x tra 0, 1, 2, 3 e chiama ledue funzioni precedenti di lettura file

int js_bound(int, int);Ritorna il valore di banda limite per lamodalità joint_stereo

void hdr_to_frps(fr_ps*);Inizializzazione Header e strutturaframe_params

void WriteHdr(fr_ps*,FILE*);Scrive contenuto dell'header su video

int BitrateIndex(int, int);Ritorna l'indice della tabella BITRATEcorrispondente al valore numerico di bitrate

int SmpFrqIndex(L);Ritorna l'indice della tabella S_FREQ relativoal valore numerico

void mem_alloc(UL, char*);Alloca strutture dinamiche con istruzionidipendenti dalla macchina in uso

void mem_free(void**);Libera la memoria dinamica con istruzionidipendenti dalla macchina in uso

void II_CRC_calc(fr_ps*, UI[2][SB], UI[2][SB], UI*);Richiama update_crc( ) per tutti i campi chedevono essere protetti da errori

void update_CRC(UI, UI, UI*);Aggiunge al CRC la protezione per un nuovocampo

Page 223: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-12

BITSTREAM PACKAGE

int refill_buffer(B_struc*);Lettura da file di un numero di dati sufficientea riempire il buffer

void empty_buffer(B_struc*, int);Svuota il buffer di un file passato comeparametro

void open_bit_stream_w(B_struc*, char*, int);Apre un file binario in scrittura

void open_bit_stream_r(B_struc*, char*, int);Apre un file binario in lettura

void close_bit_stream_r(B_struc*);Chiude un file che era stato aperto in lettura

void close_bit_stream_w(B_struc*);Chiude un file che era stato aperto in scritturasvuotando il buffer

void alloc_buffer(B_struc*, int);Inizializza il buffer del file

void desalloc_buffer(B_struc*);Svuota e rende disponibile il buffer

void back_track_buffer(B_struc*, int);Muove la posizione corrente indietro di N bitnel buffer

U int get1bit(B_struc*);Legge un bit dal file

void put1bit(B_struc*, int);Scrive un bit sul file

U long getbits(B_struc*, int);Legge N bit dal file

void putbits(B_struc*, UI, int);Scrive N bit sul file

void byte_ali_putbits(B_struc*, UI, int);Scrive N bit sul file in modo che la loroposizione sia multiplo di 8

U int byte_ali_getbits(B_struc*, int);Legge N bit con la cui posizione è allineata albyte

U long sstell(B_struc*);Ritorna la dimensione del file in bit

int end_bs(B_struc*);Ritorna 1 se si è raggiunta la fine del filealtrimenti ritorna 0

int seek_sync(B_struc*, L, int);Ritorna 1 se viene trovata la syncwordaltrimenti ritorna 0

Tab A.7 Funzioni definite in common.c e operazioni svolte da ognuna di esse

Page 224: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-13

FUNZIONI DEFINITE IN ENCODE.C

TIPO NOME SCOPO

U long read_samples(FILE*, short[2304], UL,UL);Legge i campioni PCM dal file diingresso

U long get_audio(FILE*, short[2][1152], UL,int, int);Gestisce lettura campioni PCMper layer I o II

void read_ana_window(D[HAN_SIZE]);Legge la tabella ENWINDOW dafile e la memorizza nella strutturapassata come parametro

void window_subband(short**, D[HAN_SIZE], int);Valori per la finestratura deicampioni PCM

void create_ana_filter(D[SB][64]);Coefficienti del filtro di analisi

void filter_subband(D[HAN_SIZE], D[SB]);Filtro di analisi e scomposizionein 32 sottobande

void encode_info(fr_ps*, B_struc*);Scrive Header sul file

void II_combine_LR(D[2][3][S_BLK][SB],D[3][S_BLK][SB],int);

Calcola j_sample come media deidue canali

void II_scale_factor_calc(D[][3][S_BLK][SB], UI[][3][SB], int,int);

Calcola fattori di scala einizializza SCALAR con l'indicerelativo

void II_transmission_pattern(UI[2][3][SB], UI[2][SB], fr_ps*);Calcola SCFSI dai valori deifattori di scala

void II_encode_scale(UI[2][SB],UI[2][SB],UI[2][3][SB], fr_ps*,B_struc*);

Scrive i Fattori di Scala sul file

int II_bits_for_nonoise(D[2][SB], UI[2][SB], fr_ps*);Conta il numero di bit necessariaffinché non ci siano banderumorose

void II_main_bit_allocation(D[2][SB], UI[2][SB], UI[2][SB],int*, fr_ps*);

In caso di J_stereo trova ilnumero di bande in JOINTaffinché non ci sia rumore udibile

int II_a_bit_allocation(D[2][SB], UI[2][SB], UI[2][SB], int*,fr_ps*);

Procedura di allocazione dei bitsulle sottobande

void II_subband_quantization(UI[2][3][SB],D[2][3][S_BLK][SB], UI[3][SB], D[3][S_BLK][SUI[2][3][S_BLK][SB], fr_ps*);

Normalizza , Quantizza e invertel'MSB dei campioni frequenziali

void II_encode_bit_alloc(UI[2][SB], fr_ps*,B_struc*);Scrive la bit allocation sul file

void II_sample_encoding(UI[2][3][S_BLK][SB],UI[2][SB],fr_ps*,B_struc*);

Scrive i campioni su file

void encode_CRC(UI, B_struc*);Scrive il CRC sul file

Tab A.8 Funzioni definite in encode.c usate per la codifica di un file di campioniPCM

Page 225: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-14

FUNZIONI DEFINITE IN DECODE.C

TIPO NOME SCOPO

void decode_info(B_struc*, fr_ps*)Legge Header del file iningresso

void II_decode_bitalloc(B_struc*, UI[2][SB],fr_ps*)Legge la bit allocation dal file

void II_decode_scale(B_struc*, UI[2][SB],UI[2][SB], UI[2][3][SB],fr_ps*)

Legge SCFSI e fattori di scaladal file MPEG in ingresso

void II_buffer_sample(B_struc*, UI[2][3][SB], UI[2][SB], fr_ps*)Legge i campioni frequenzialidal file controllando se cegrouping

void II_dequantize_sample(UI[2][3][SB], UI[2][SB], D[2][3][SB],fr_ps*)

Inverte l'MSB campionifrequenziali e li Dequantizza

void II_denormalize_sample(D[2][3][SB],UI[2][3][SB], fr_ps*, int)Denormalizza i campionifrequenziali

void create_syn_filter(D[64][SB])Inizializza coefficienti perfinestratura di sintesi

int SubBandSynthesis (D*, int, short*)Filtro di sintesi per ottenere icampioni PCM

void read_syn_window(D[HAN_SIZE])Legge tabella DEWINDOW dafile e la memorizza nellastruttura passata comeparametro

void out_fifo(short[2][3][SB], int, fr_ps*, int, FILE*,UL*)Scrive il file dei campioni PCMdecodificati

void buffer_CRC(B_struc*, UI*)Legge il CRC dal codificatoMPEG

void recover_CRC_error(short[2][3][SB], int, fr_ps*,FILE*, UL*)Calcola CRC per confrontocon quello letto da file

Tab A.9 Funzioni definite in decode.c ed usate dal decodificatore.

Page 226: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-15

Appendice B

ANALISI DEL SOFTWAREB.1 INTRODUZIONE ..............................................................................................................................1B.2 PROCEDURA DI ALLOCAZIONE ...................................................................................................1B.3 DIVERSA MAPPATURA CAMPIONI .............................................................................................6B.4 INVERSIONE MSB CAMPIONI FREQUENZIALI..........................................................................10B.5 SHORT PCM : HI ⇔ LO................................................................................................................11B.6 DIAGRAMMA CODIFICATORE ....................................................................................................11B.7 DIAGRAMMA DECODIFICATORE ...............................................................................................13

B.1 INTRODUZIONESegue una serie di annotazioni sulle tecniche e sul funzionamento del software MPEG, note nondirettamente esposte nelle specifiche tecniche ma che sono utili se si vuole compiere l'elaborazionedel segnale codificato.

B.2 PROCEDURA DI ALLOCAZIONEL'efficienza della codifica dipende in ultima analisi dai livelli di quantizzazione assegnati ad ognisottobanda, quindi dai valori di bit_allocation.Di seguito viene illustrato l'algoritmo in linguaggio "C" scritto da MPEG per l'allocazione dei livellidi quantizzazione ad ogni sottobanda.Si osservi che per la modalità joint_stereo i limiti entro cui i campioni vengono tenuti in comune sonostimati in modo tale da avere il minimo numero di bande con rumore di quantizzazione udibile4 ed ilmassimo numero di bande in stereo cioè con i canali separati.Una volta ottenuto il numero di bande da mettere in Joint, l'allocazione procede indipendentementedalla modalità incrementando (ove possibile) i livelli di quantizzazione della banda in cui è maggioreil rumore di quantizzazione (MNR minimo).

Una descrizione ad alto livello delle tre principali funzioni coinvolte nel processo di allocazione è laseguente:

4Il rumore di quantizzazione in base alla stima del modello psicoacustico è udibile quando MNR

< 0 mentre è mascherato se MNR > 0.Tanto più il modello psicoacustico è accurato e tanto più la stima dell' MNR riflette le realisensazioni in ascolto.

Page 227: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-16

NOME FUNZIONE OPERAZIONI ESEGUITE

II_main_bit_allocation Per la modalità joint_stereo determina il numero di bande in comune trai due canali stereofonici.Il criterio seguito per tale decisione è un compromesso tra :

• Rendere minimo il numero di bande con MNR < 0• Tenere il maggior numero di bande in modalità stereo

Una volta determinato tale valore richiama la funzioneII_main_bit_alloc() che è la vera e propria procedura di allocazione.

II_bits_for_nonoise Calcola il numero di bit richiesti per memorizzare secondo la sintassiMPEG i dati memorizzati nelle strutture di memoria centrale.

bbal = numero di bit per codificare la bit_allocationbsel = numero di bit per codificare i fattori di scalab_sc = numero di bit per codificare la struttura scfsibanc = numero di bit per codificare i dati ausiliari

II_a_bit_allocation Procedura di allocazione dei livelli di quantizzazione alle bande .Viene incrementata la bit allocation della banda con MNR minimo fino ache si raggiunge la dimensione del Frame.

ALGORITMO:

1. Trova la banda ed il canale stereofonico con MNR minimo2. Calcola il numero di bit richiesti per aumentare di uno la

bit_allocation (se non si è raggiunto il valore massimo dibit_allocation)

3. Se ci sono disponibili sufficienti bit incrementa la bit_allocationper quella banda e canale

4. Ripeti fino a che ci sono bit disponibili oppure ogni incremento dibit allocation fa superare la dimensione del Frame

Tab. B.10 Riassunto delle operazioni svolte dalle procedure di MPEG (softwarevers 3.5) per costruire la bit_allocation.

Page 228: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-17

void II_main_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int bit_alloc[2][SBLIMIT];int *adb;frame_params *fr_ps;{ int noisy_sbs; int mode_ext, lay; int rq_db, av_db = *adb;

if((fr_ps->actual_mode) == MPG_MD_JOINT_STEREO) { fr_ps->header->mode = MPG_MD_STEREO; fr_ps->header->mode_ext = 0; fr_ps->jsbound = fr_ps->sblimit; if((rq_db=II_bits_for_nonoise(perm_smr, scfsi, fr_ps)) > *adb) { fr_ps->header->mode = MPG_MD_JOINT_STEREO; mode_ext = 4; /* 3 is least severe reduction */ lay = fr_ps->header->lay; do { --mode_ext; fr_ps->jsbound = js_bound(lay, mode_ext); rq_db = II_bits_for_nonoise(perm_smr, scfsi, fr_ps); } while( (rq_db > *adb) && (mode_ext > 0)); fr_ps->header->mode_ext = mode_ext; } /* well we either eliminated noisy sbs or mode_ext == 0 */ } noisy_sbs = II_a_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps);}

Page 229: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-18

int II_bits_for_nonoise(perm_smr, scfsi, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;{ int sb,ch,ba; int stereo = fr_ps->stereo; int sblimit = fr_ps->sblimit; int jsbound = fr_ps->jsbound; al_table *alloc = fr_ps->alloc; int req_bits = 0, bbal = 0, berr = 0, banc = 32; int maxAlloc, sel_bits, sc_bits, smp_bits; static int sfsPerScfsi[] = { 3,2,1,2 }; /* lookup # sfs per scfsi */

if (fr_ps->header->error_protection) berr=16; else berr=0;

for (sb=0; sb<jsbound; ++sb) bbal += stereo * (*alloc)[sb][0].bits; for (sb=jsbound; sb<sblimit; ++sb) bbal += (*alloc)[sb][0].bits; req_bits = banc + bbal + berr;

for(sb=0; sb<sblimit; ++sb) for(ch=0; ch<((sb<jsbound)?stereo:1); ++ch) { maxAlloc = (1<<(*alloc)[sb][0].bits)-1; sel_bits = sc_bits = smp_bits = 0; for(ba=0;ba<maxAlloc-1; ++ba)

if( (-perm_smr[ch][sb] + snr[(*alloc)[sb][ba].quant+((ba>0)?1:0)]) >= NOISY_MIN_MNR) break; /* we found enough bits */

if(stereo == 2 && sb >= jsbound) /* check other JS channel */ for(;ba<maxAlloc-1; ++ba) if( (-perm_smr[1-ch][sb]+ snr[(*alloc)[sb][ba].quant+((ba>0)?1:0)]) >= NOISY_MIN_MNR)

break; if(ba>0) { smp_bits = SCALE_BLOCK * ((*alloc)[sb][ba].group * (*alloc)[sb][ba].bits);

/* scale factor bits required for subband */ sel_bits = 2; sc_bits = 6 * sfsPerScfsi[scfsi[ch][sb]]; if(stereo == 2 && sb >= jsbound) { /* each new js sb has L+R scfsis */ sel_bits += 2; sc_bits += 6 * sfsPerScfsi[scfsi[1-ch][sb]]; } req_bits += smp_bits+sel_bits+sc_bits; } } return req_bits;}

Page 230: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-19

int II_a_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int bit_alloc[2][SBLIMIT];int *adb;frame_params *fr_ps;{ int i, min_ch, min_sb, oth_ch, k, increment, scale, seli, ba; int bspl, bscf, bsel, ad, noisy_sbs; double mnr[2][SBLIMIT], small; char used[2][SBLIMIT]; int stereo = fr_ps->stereo; int sblimit = fr_ps->sblimit; int jsbound = fr_ps->jsbound; al_table *alloc = fr_ps->alloc;static char init= 0;static int bbal, banc, berr;static int sfsPerScfsi[] = { 3,2,1,2 }; /* lookup # sfs per scfsi */

if (!init) { init = 1; banc = 32; berr = 0; if (fr_ps->header->error_protection) berr=16; else berr=0; } bbal = 0; for (i=0; i<jsbound; ++i) bbal += stereo * (*alloc)[i][0].bits; for (i=jsbound; i<sblimit; ++i) bbal += (*alloc)[i][0].bits; *adb -= bbal + berr + banc; ad = *adb;

for (i=0;i<sblimit;i++) for (k=0;k<stereo;k++) { mnr[k][i]=snr[0]-perm_smr[k][i]; bit_alloc[k][i] = 0; used[k][i] = 0; } bspl = bscf = bsel = 0;

do { /* locate the subband with minimum SMR */ small = 999999.0; min_sb = -1; min_ch = -1; for (i=0;i<sblimit;i++) for(k=0;k<stereo;++k) if (used[k][i] != 2 && small > mnr[k][i]) { small = mnr[k][i]; min_sb = i; min_ch = k; } if(min_sb > -1) { /* there was something to find */ /* find increase in bit allocation in subband [min] */ increment = SCALE_BLOCK * ((*alloc)[min_sb][bit_alloc[min_ch][min_sb]+1].group * (*alloc)[min_sb][bit_alloc[min_ch][min_sb]+1].bits); if (used[min_ch][min_sb]) increment -= SCALE_BLOCK * ((*alloc)[min_sb][bit_alloc[min_ch][min_sb]].group* (*alloc)[min_sb][bit_alloc[min_ch][min_sb]].bits);

/* scale factor bits required for subband [min] */ oth_ch = 1 - min_ch; /* above js bound, need both chans */ if (used[min_ch][min_sb]) scale = seli = 0; else { /* this channel had no bits or scfs before */ seli = 2; scale = 6 * sfsPerScfsi[scfsi[min_ch][min_sb]];

Page 231: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-20

if(stereo == 2 && min_sb >= jsbound) { /* each new js sb has L+R scfsis */ seli += 2; scale += 6 * sfsPerScfsi[scfsi[oth_ch][min_sb]]; } } /* check to see enough bits were available for */ /* increasing resolution in the minimum band */ /*************************************************/ /* Riga modificata ( da > in >= ) */ /*************************************************/ /*************************************************/ if (ad >= bspl + bscf + bsel + seli + scale + increment) { /*************************************************/ ba = ++bit_alloc[min_ch][min_sb]; /* next up alloc */ bspl += increment; /* bits for subband sample */ bscf += scale; /* bits for scale factor */ bsel += seli; /* bits for scfsi code */ used[min_ch][min_sb] = 1; /* subband has bits */ mnr[min_ch][min_sb] = -perm_smr[min_ch][min_sb] + snr[(*alloc)[min_sb][ba].quant+1]; /* Check if subband has been fully allocated max bits */ if (ba >= (1<<(*alloc)[min_sb][0].bits)-1) used[min_ch][min_sb] = 2; } else used[min_ch][min_sb] = 2; /* can't increase this alloc */ if(min_sb >= jsbound && stereo == 2) { /* above jsbound, alloc applies L+R */ ba = bit_alloc[oth_ch][min_sb] = bit_alloc[min_ch][min_sb]; used[oth_ch][min_sb] = used[min_ch][min_sb]; mnr[oth_ch][min_sb] = -perm_smr[oth_ch][min_sb] + snr[(*alloc)[min_sb][ba].quant+1]; } } } while(min_sb > -1); /* until could find no channel */ /* Calculate the number of bits left */ ad -= bspl+bscf+bsel; *adb = ad; for (i=sblimit;i<SBLIMIT;i++) for (k=0;k<stereo;k++) bit_alloc[k][i]=0;

noisy_sbs = 0; small = mnr[0][0]; /* calc worst noise in case */ for(k=0;k<stereo;++k) { for (i=0;i<sblimit;i++) { if (small > mnr[k][i]) small = mnr[k][i]; if(mnr[k][i] < NOISY_MIN_MNR) ++noisy_sbs; /* noise is not masked */ } } return noisy_sbs;}

B.3 DIVERSA MAPPATURA CAMPIONIUno degli ostacoli incontrati durante lo studio del sistema di codifica è la diversa mappatura deicampioni frequenziali nelle strutture usate dal codificatore e decodificatore.Infatti per l'elaborazione del segnale compresso vengono richiamate le procedure dei moduli dicodifica e decodifica del software scritto da MPEG ma le diverse procedure hanno le strutturecontenenti i campioni organizzati in modo diverso.

Un attento esame dei programmi sorgenti 'C' ha permesso di risolvere definitivamente il problematrovando una formula per la trasformazione di una struttura nell'altra.

Page 232: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-21

Di seguito sono riportate le rappresentazioni di come vengono memorizzati i campioni nelle strutturedel codificatore e decodificatore.Le tabelle si riferiscono a 2304 (1152*2) campioni frequenziali alternati a gruppi di tre sui due canali(così come da specifiche) stereofonici.Le tabelle si riferiscono ai campioni del canale 0 (sinistro) che all'interno dei campioni 1..2304occupano le posizioni :

1-2-3 7-8-9 13-14-15 ......... ......... ........ 2107-2108-2109 2113-2114-2115 ..... 2999-2300-2301

Le lettere di ogni campione indicano il fattore di scala per cui deve essere normalizzato - quantizzatosecondo la tabella seguente che riporta i 32*3 valori per ogni canale.Si ricorda che ogni fattore di scala raggruppa 12 campioni frequenziali della stessa sottobanda.

Banda ���� 1 2 3 4 5 30 31 321 a d g l .. .. .. .. .. u k w2 b e h m .. .. .. .. .. v j x3 c f i n .. .. .. .. .. z y £

Tab. B.11 Rappresentazione dei fattori di scala

Page 233: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-22

Codificatore:

Indice discale_

Block ����1 2 3 ............. 32

1a 7d 13g 187w

0 769b 775e 955x

1537c 1723£

2a 8d 14g 188w

1 770b 776e 964x

1538c 1724£

3a 9d 15g 189w

2 771b 777e 957x

1539c 1725£

193a 199d 379w

3 961b 967e 1147x

1729c 1913£

194a 200d 380w

4 962b 968e 1148x

1730c 1914£

195a 201d 381w

5 963b 969e 1149x

1731c 1915£

385a 391d 571w

6 1153b 1339x

1921c 2107£

386a 392d 572w

7 1154b 1340x

1922c 2108£

387a 393d 573w

8 1155b 1341x

1923c 2109£

577a 593d 763w

9 1345b 1351e 1531x

2113c 2299£

578a 594d 764w

10 1346b 1352e 1532x

2114c 2300£

579a 595d 765w

11 1347b 1353e 1533x

2115c 2301£

Tab. B.12 Mappatura dei campioni frequenziali nella struttura usata dalcodificatore; la lettera di ogni casella indica il fattore di scala mentre ilnumero indica il campione.

Decodificatore:

Page 234: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-23

Indice discale_Block

1 2 3 .............. 32

1a 7d 13g 187w

0 2a 8d 14g 188w

3a 9d 15g 189w

193a 199d 379w

1 194a 200d 380w

195a 201d 381w

385a 388d 571w

2 386a 389d 572w

387a 390d 573w

577a 763w

3 578a 764w

579a 765w

769b 775e 955x

4 770b 776e 956x

771b 777e 957x

961b 967e 1147x

5 962b 968e 1148x

963b 969e 1149x

1153b 1159e 1339x

6 1154b 1160e 1340x

1155b 1161e 1341x

1345b 1351e 1531x

7 1346b 1352e 1532x

1347b 1353e 1533x

1537c 1723£

8 1538c 1724£

1539c 1725£

1729c 1915£

9 1730c 1916£

1731c 1917£

1921c 2107£

10 1922c 2108£

1923c 2109£

2113c 2299£

11 2114c 2300£

2115c 2301£

Tab. B.13 Mappatura dei campioni frequenziali nella struttura usata daldecodificatore; la lettera di ogni casella indica il fattore di scala mentreil numero indica il campione.

Il decodificatore elabora gruppi di 96 campioni suddivisi tra le 32 sottobande (3 campioni persottobanda), le stesse operazioni vengono ripetute 12 volte per elaborare tutti i 1152 campioni insottobanda di ogni canale monofonico.

Page 235: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-24

L'algoritmo che permette di mappare una struttura nell'altra è

for (j = 0; j < SCALE_BLOCK ; j++ ){

II_buffer_sample(bsi, subband_decoder, bit_alloc, fr_ps);II_dequantize_sample(subband_decoder, bit_alloc, sample_decoder, fr_ps);II_denormalize_sample(sample_decoder, scale_index, fr_ps, j>>2);for (ch=0 ; ch < 2 ; ch++)

for (k = 0 ; k < 3 ; k++ ) for (i = 0 ; i < SBLIMIT ; i++ )

sample_encoder[ch] [(int) (j/4)] [(j % 4)* 3 + k] [i] = sample_decoder[ch][k][i];

} /*end for j */

Fig. B.1 Algoritmo per la mappatura dei campioni frequenziali da decodificatorea codificatore

B.4 INVERSIONE MSB CAMPIONI FREQUENZIALILe specifiche di MPEG impongono l'inversione dell'MSB5 dei campioni frequenziali motivando taleoperazione con il voler evitare collisioni della codifica dei campioni frequenziali con la syncword '111111 111 111' nel file codificato.Tale affermazione non è corretta per i seguenti motivi:

- Il formarsi della parola di dodici uno consecutivi può derivare ad esempio dalla codificadi due campioni frequenziali quantizzati su sei bit e di valore '011 111' ; infattil'inversione dell'MSB provocherebbe il formarsi della parola '111 111' ripetuta duevolte che entra in collisione con la syncword.

- Il formarsi della '111 111 111 111' può derivare oltre che dalla codifica dei campionifrequenziali, anche da : bit_allocation, SCFSI, Fattori di Scala o da unasovrapposizione di esse.

È invece valida per ridurre la probabilità del formarsi di false syncword:

- Ciò che si vuole evitare è che vengano a formarsi sequenze troppo lunghe di '1' binariconsecutivi.Esaminando la sintassi di codifica si può notare che ogni dodici campionisicuramente almeno uno è codificato con una parola di tanti uno quanti sono i bit diquantizzazione (quello che determina il fattore di scala) mentre è meno probabileche ce ne sia uno la cui quantizzazione sia data da uno zero seguito da tanti uno.

Quindi l'inversione dell'MSB permette solo di ridurre la probabilità che si creino false syncword nellasequenza codificata ma non evita del tutto tale situazione.

Invertendo l'MSB dei campioni , ciò che in pratica si ottiene è la loro rappresentazione incomplemento a due ; infatti in complemento a due l'intervallo rappresentabile è [-N/2..+N/2]6: ilmassimo numero rappresentabile è positivo ed è 0111...11 mentre il minimo è negativo ed è 1000...00.

5Most Significant Bit ; Bit di più alto valore (più a destra) tra quelli della rappresentazione

binaria.

6N=2n con n numero di bit usati per la quantizzazione

Page 236: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-25

La rappresentazione con solo numeri positivi usata da MPEG permette di quantizzare l'intervallo[0...N] e l'inversione dell' MSB è proprio la funzione di conversione nel sistema modulo 2.

B.5 SHORT PCM : HI ⇔⇔⇔⇔ LOI numeri di tipo short sono memorizzati su 16 bit ed interpretati come interi.Su macchine diverse i valori short possono essere scritti secondo una diversa formattazione:

• su macchine DOS viene scritto prima il byte HI e poi LO• su macchine UNIX viene scritto prima il byte LO e poi quello HI

Ciò non crea nessun problema per i file codificati MPEG che essendo ASCII vengono scritti unbyte dopo l'altro e sono totalmente portabili; invece per i file di campioni PCM (essendo unasequenza di valori SHORT) può essere necessario dovere invertire i byte HI e LO.A tale scopo è stata scritta la procedura m5conv.c che opera tale scambio e può essere eseguitacome comando di linea.

#include <stdio.h>#include <stdlib.h>#include <string.h>#define NUM_BYTE 4096

main(){

register i;int numSamples;char source[NUM_BYTE], target[NUM_BYTE];

while ((numSamples=fread(source, sizeof(char), NUM_BYTE, filein)) >0)

{for(i=0; i<NUM_BYTE ; i+=2)

{target[i] = source[i+1];target[i+1] = source[i];}

fwrite(target, sizeof(char), NUM_BYTE, fileout);}

}

Se un file PCM viene codificato o ascoltato in forma inversa, il risultato è che viene letto come rumorebianco ed il software MPEG produce il messaggio "....... Samples Clipped".

B.6 DIAGRAMMA CODIFICATOREViene riportato di seguito il diagramma di flusso del codificatore così come implementato viasoftware.Le operazioni seguite sono riportate solo riguardo al layer II in quanto al layer I sono speculari.

Page 237: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-26

Calcolo dimensione Frame

Frame in Slot

Finchè ci sonoCampioni PCM

Calcolo dimensione

Controllo se si deveusare bit di PADDING

Case Layer

I I I

ottenere i campionifrequenziali a sottobande

Filtro di analisi per

Calcolo Fattori di Scala

Se Joint_Stereo

Calcolo J_Samplee J_Scale

Case Modello Percettivo

Calcolo LTMIN Calcolo LTMINcon modello 2con modello 1

1 2

Calcola SCFSI

Se CRC Aggiunta CRC

Allocazione Bit

Quantizzazione eNormalizzazione

Scrittura Frame

SI

NO

SI

NO

Lettura 1152 Campioni PCM per canale

Fig. B.2 Diagramma di flusso del codificatore.

Page 238: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-27

B.7 DIAGRAMMA DECODIFICATORE

Finchè ci sono Frameda leggere

Cerca Syncword

Se ! Sync FINE

Case Layer

I I I

SCFSIFattori di Scala

HeaderLetturaBit_allocation

Se CRC Verifica Validità

For I=1 to 12

Lettura [2][3][32]Campioni Frequenziali

DenormalizzazioneDequantizzazione

Filtro di sintesi

Scrittura su filedei 96 campioni PCM

per canale

SI

NO

SI

NO

I = = 12

Leggi un Frame

Fig. B.3 Diagramma di flusso del Decodificatore

Page 239: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-28

Appendice CSOFTWARE DI

POST_PRODUZIONEC.1. SCOPO DELLE FUNZIONI ..........................................................................................................1C.2. SORGENTI LETTURA/SCRITTURA FRAME................................................................................2C.3. SORGENTI CONTEGGIO BIT ......................................................................................................5C.4. SORGENTI TRASFORMAZIONE IN DECIBEL............................................................................6

Con il termine software di post_produzione si indicano l'insieme delle funzioni per l'elaborazione delsegnale audio in forma compressa MPEG.Le funzioni riportate in questa appendice sono di uso generale, per elaborare il segnaleindipendentemente dalla tecnica.Le funzioni sono nei file di include:

.. rwframe.h

.. modalloc.h

.. acustic.h

C.1. SCOPO DELLE FUNZIONILe funzioni riportate si occupano della scrittura e lettura dei dati codificati FRAME a FRAME:

FUNZIONE DESCRIZIONE

int read_one_frame Legge un frame dal file MPEG passato come parametromemorizzando nelle rispettive strutture: header, bit_allocation,SCFSI, fattori di scala, campioni e PAD se ce ne sono.I campioni vengono dequantizzati e denormalizzati.Controlla la validità del CRC.

int write_one_frame Scrive il frame memorizzato nelle strutture di memoria centrale sulfile MPEG passato come parametro, rispettando la sintassidefinita nelle references 11172 rev 1.Gli unici dati significativi in ingresso sono la bit allocation e ilvalore dei campioni frequenziali, tutte le altre strutture vengonoricalcolate.I campioni vengono quantizzati e normalizzati.

int II_calc_used_bit_encoding Calcola il numero di bit necessari per registrare su file i dati dellestrutture di memoria centrale (che rappresentano il frame) passatecome parametro secondo la sintassi MPEG.

int II_dec_bit Ritorna il numero di bit che si guadagnano se si decrementa di unindice la sottobanda passata come parametro

double Num_Bytes_Per_Frame Calcola e ritorna la dimensione in byte del frame di codifica

double liv_scale_dB Fornisce il livello in dB del segnale di cui viene fornito il fattore discala.Il livello in dB è normalizzato al valore di 90,390 dB come daspecifiche

Page 240: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-29

double liv_sample_dB Fornisce il livello in dB del segnale di cui viene fornito valore delcampione di sottobanda.Il livello in dB è normalizzato al valore di 90,390 dB come daspecifiche

C.2. SORGENTI LETTURA/SCRITTURA FRAMEI listati completi delle funzioni che si occupano di leggere un frame, demultiplexare le strutture dati,dequantizzare e denormalizzare i campioni e compiere le operazioni inverse sono :

/************************************************************************************//* Scopo della seguente funzione: *//* Legge un frame dal bitstream passato come parametro *//* ritorna i seguenti valori: *//* not sync :(-1) *//* not Layer II :(-2) *//* error_protection :(-3) *//* nessun errore :(+Numero bit letti) *//* Riempie le strutture fr_ps, bit_alloc, scfsi, *//* scalefactor, sample96 con i relativi dati letti *//* da bitstream . *//* Sample1152 contiene i 1152 campioni denormalizzati e *//* dequantizzati organizzati in una struttura di *//* dimensione [2] [3] [12] [32] organizzata in modo *//* da poter essere utilizzata del decodificatore *//***********************************************************************************/int read_one_frame(bsi, fr_ps, bit_alloc, scfsi, scale_index, sample1152, frameNum)Bit_stream_struc *bsi;frame_params *fr_ps;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int scale_index[2][3][SBLIMIT];double FAR sample1152[2][3][SCALE_BLOCK][SBLIMIT];unsigned long frameNum;{typedef unsigned int SBB[2][3][SBLIMIT]; static SBB FAR *subband96; /* SUBBAND96 Campioni in frequenza (96) letti dal

file quantizzati e normalizzati */typedef double SMP[2][3][SBLIMIT];static SMP FAR *sample96; /*SAMPLE96 Campioni in frequenza (96) ottendo

deqantizzazione e denormalizzazione di subband96 */ static int init=0; int error_protection; int i, j, k, sync, ch;

if (!init) { subband96 = (SBB FAR * ) mem_alloc((long) sizeof(SBB), "sample"); sample96 = (SMP FAR * ) mem_alloc((long) sizeof(SMP), "fraction"); init = 1;}

sync = seek_sync(bsi, SYNC_WORD, SYNC_WORD_LNGTH);

if (!sync) { if (frameNum == 0) {

printf("Syncword NON trovata\n");printf("\nIl file in ingresso è terminato\n");return(-1);}

else{printf("\nFine Lettura frame dal file MPeG"); return(0);}}

decode_info(bsi, fr_ps); hdr_to_frps(fr_ps); error_protection = fr_ps->header->error_protection; if (error_protection) if (frameNum == 0) {printf("\n PROTEZIONE ERRORI NON supportata dalla presente versione"); return(-3);} else

Page 241: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-30

{printf("\nProcessing terminato al frame %d",frameNum); return(0);} fprintf(stderr, "<%4lu>", frameNum); fflush(stderr); switch (fr_ps->header->lay) { case 3: case 1: if (frameNum == 0)

{printf("\nLAYER I e III NON VALIDI per la presente versione"); return(-2);} else {printf("\nProcessing terminato al frame %d",frameNum); return(0);}

case 2: { II_decode_bitalloc(bsi, bit_alloc, fr_ps); II_decode_scale(bsi, scfsi, bit_alloc, scale_index, fr_ps); if (fr_ps->header->mode == MPG_MD_MONO)

{ duplicate_channel_unsint_1 (bit_alloc); duplicate_channel_unsint_1 (scfsi); duplicate_channel_unsint_3 (scale_index);}

if(frameNum < 2) WriteHdr(fr_ps, stdout); for (j = 0; j < SCALE_BLOCK ; j++ ) {

II_buffer_sample(bsi,*subband96, bit_alloc, fr_ps);II_dequantize_sample(*subband96, bit_alloc, *sample96, fr_ps);II_denormalize_sample(*sample96, scale_index, fr_ps, j>>2);if (fr_ps->header->mode == MPG_MD_MONO) duplicate_channel_double_3(*sample96);for (ch=0 ; ch < 2 ; ch++) for (k = 0 ; k < 3 ; k++ ) for (i = 0 ; i < SBLIMIT ; i++ )

sample1152[ch] [(int) (j/4)] [(j % 4)* 3 + k] [i] = (*sample96)[ch][k][i] ;

} /*end for*/} /*end case*/

} /*end switch*/ return(0);} /*end function*/

Page 242: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-31

/***********************************************************************************//* Scopo della seguente funzione: *//* Scrive un frame sul bitstream passato come parametro *//* ritorna -1 in caso di insuccesso. *//* Vengono ricalcolati scalefactor, scfsi sulla base dei *//* campioni passati in sample1152[...] *//* Ricostruisce i campioni normalizzando e quantizzando *//* sample1152[2][3][12][32]. *//* Scrive tutto il frame:header(fr_ps), bit_alloc, *//* scfsi, scalefactor, samplemono. *//* Sample1152 contiene i 1152 campioni da normalizzare *//* e quantizzare organizzati in una struttura di *//* dimensione [2] [3] [12] [32] organizzata in modo *//* da poter essere utilizzata del decoder. *//***********************************************************************************/int write_one_frame(bso, fr_ps, bit_alloc, scfsi, scale_index, subband1152, sample1152,

frameNum, scelta_tecnica, smr, diff_ba)Bit_stream_struc *bso;frame_params *fr_ps;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int scale_index[2][3][SBLIMIT];unsigned int FAR subband1152[2][3][SCALE_BLOCK][SBLIMIT];double FAR sample1152[2][3][SCALE_BLOCK][SBLIMIT];unsigned long frameNum;int scelta_tecnica;double smr[2][SBLIMIT];float diff_ba[2][SBLIMIT];{typedef double JSBS[3][SCALE_BLOCK][SBLIMIT];static JSBS FAR *j_sample;

typedef unsigned int JSCL[3][SBLIMIT];static JSCL FAR *j_scale;

int k; int adb; static char init = 0;

if ((!init) && (fr_ps->header->mode == MPG_MD_JOINT_STEREO)) { j_sample = (JSBS FAR *) mem_alloc(sizeof(JSBS), "j_sample"); j_scale = (JSCL FAR *) mem_alloc(sizeof(JSCL), "j_scale"); init = 1;}

switch (fr_ps->header->lay) { case 3: case 1: { if (frameNum == 0)

{printf("\n LAYER I e III NON VALIDI per la presente versione"); return(-2);} else {printf("\n Processing terminato al frame %d",frameNum); return(0);}

} case 2: {

II_scale_factor_calc(sample1152, scale_index,fr_ps->stereo, fr_ps->sblimit); if(fr_ps->header->mode == MPG_MD_JOINT_STEREO) {

II_combine_LR(sample1152, *j_sample, fr_ps->sblimit); II_scale_factor_calc(j_sample, j_scale, 1, fr_ps->sblimit);

} /* si calcolano i valori per tutte le bande in joint*/

II_transmission_pattern(scale_index, scfsi, fr_ps); II_calc_new_bit_alloc(fr_ps, scfsi, bit_alloc, &adb, scelta_tecnica,

smr, diff_ba, scale_index); encode_info(fr_ps, bso); II_encode_bit_alloc(bit_alloc, fr_ps, bso); II_encode_scale(bit_alloc, scfsi, scale_index, fr_ps,bso); II_subband_quantization(scale_index, sample1152, *j_scale, *j_sample,

bit_alloc, subband1152, fr_ps); II_sample_encoding(subband1152, bit_alloc, fr_ps, bso); for(k = 0;k < adb ;k++ ) put1bit(bso,0);

} /*case*/ } /*switch*/ return(0); } /*end function*/

Page 243: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-32

C.3. SORGENTI CONTEGGIO BITRaccolta di funzioni per il calcolo della dimensione del FRAME del numero di bit disponibili perquantizzare i campioni di sottobanda.

/***********************************************************************************//* Scopo della seguente funzione : *//* Conta il numero di bit necessari per la scrittura delle *//* informazioni basandosi sui valori passati di allocation, *//* e scfsi usando la tabella alloc caricata in fr_ps->alloc *//***********************************************************************************/int II_calc_used_bit_encoding( bit_alloc, scfsi, fr_ps)unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;{ int i,ch; int n_bit = 0; al_table *alloc = fr_ps->alloc;

/*Calcola bit usati per: header,allocation,scfsi,scalefactor,samples*/ n_bit = 32; /*header*/ /* Modificare in rwframe.h la dimensione in bit degli ancillary data */ n_bit += ANCILLARY_DATA_BIT;

/*nella presente versione la protezione errori non è sopportata*/ /*if (fr_ps->header->error_protection) n_bit +=16;*/

/********************************************************************/*Per il calcolo dei bit occupati dalla presente codifica/*si è tenuto conto che :/* __ In caso di JOINT STEREO le bande basse sono su due canali/* mentre quelle sopra js_bound sono su un solo canale per sample/* e bit_alloc ma rimangono su due canali per scfsi e scalefactor/* __ In caso di STEREO e DUAL CHANNEL sia bit alloc che scfsi/* scalefactor e sample sono sempre su due canali./* __ In caso di MONO tutti i dati sono su di un solo canale/* __ Le bit_alloc sono allocate per tutte le subband mentre tutti/* gli altri dati ci sono solo se la relativa bit_alloc è !=0/*/* Tenere presente che se il modo è STEREO o DUAL o MONO il valore/* di js_bound viene posto da hdr_to_frps() (COMMON.C) uguale a sblim/* per JOINT_STEREO il valore dipende dal layer e da info.mode_ext/* ed è ottenuto dalla function js_bound() (COMMON.C)./*********************************************************************/

for(i=0 ; i<fr_ps->sblimit;i++) for (ch=0 ; ch<fr_ps->stereo ; ch ++) {if ((ch==0) || ((ch==1) && (i<fr_ps->jsbound)))

n_bit += ((*alloc)[i][0].bits); /*bit_alloc*/ if (bit_alloc[ch][i]) {

n_bit += 2 ; /*scfsi*/ n_bit += 6 * sfsPerScfsi[scfsi[ch][i]] ;/*scalefactors*/ if ((ch==0) || ((ch==1) && (i<fr_ps->jsbound))) n_bit += (((*alloc)[i][bit_alloc[ch][i]].group) * SCALE_BLOCK *

(*alloc)[i][bit_alloc[ch][i]].bits); /*sample*/}/*if bit_alloc*/

} /*for i*/ return(n_bit);}

Page 244: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-33

/***********************************************************************************//* Scopo della seguente funzione : *//* Calcola il numero di bit guadagnati se si decrementa di *//* uno la Bit_alloc [ch][i] *//***********************************************************************************/int II_dec_bit(i, bit_alloc, scfsi, fr_ps, ch)int i;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;int ch;{ unsigned int dec = 0; unsigned int group_actual; unsigned int group_new; al_table *alloc = fr_ps->alloc;

/***************************************************************** /* Per come viene calcolato il numero di bit in decremento (positivo) /* a seconda del modo(mono,stereo,...) vedi il commento nella procedura /* precedente: calc_used_bit_encoding() /*****************************************************************/ if (bit_alloc[ch][i] != 1) {group_actual = (*alloc)[i][bit_alloc[ch][i] ].group; group_new = (*alloc)[i][bit_alloc[ch][i] - 1].group; dec = (int) SCALE_BLOCK*

((group_actual * (*alloc)[i][bit_alloc[ch][i] ].bits)- (group_new * (*alloc)[i][bit_alloc[ch][i] - 1].bits));}

else /*La bit_alloc diventa 0 elimino scfsi,scalef,sample*/ {dec = 2; /*scfsi*/ dec += 6 * sfsPerScfsi[scfsi[ch][i]]; /*scalefactors*/ dec += (int)(*alloc)[i][bit_alloc[ch][i]].group * SCALE_BLOCK *

(*alloc)[i][bit_alloc[ch][i]].bits ;}/*sample*/ return(dec); }

/************************************************************************************//* Scopo della seguente funzione : *//* Ritorna il numero di bytes che compongono il frame *//************************************************************************************/double Num_Bytes_Per_Frame(fr_ps)frame_params *fr_ps;{ layer *info = fr_ps->header; double bitsPerSlot = 8.0 , samplesPerFrame = 1152.0, avg_slots_per_frame;

avg_slots_per_frame = ((double)samplesPerFrame / s_freq[info->sampling_frequency]) * ((double)bitrate[(info->lay)-1][info->bitrate_index] / (double)bitsPerSlot);

return(avg_slots_per_frame);}

C.4. SORGENTI TRASFORMAZIONE IN DECIBELFunzioni usate per trasformare i valori di fattori di scala e dei campioni di sottobanda in deciBel.Queste trasformazioni sono usate principalmente per le tecniche di elaborazione che cercano di stimarei valori di SMR.

Page 245: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-34

/************************************************************************************//* Scopo della seguenta funzione : *//* Calcola il livello in dB corrispondente all'indice di *//* fattore di scala passato come parametro *//************************************************************************************/double liv_scale_dB(x)unsigned int x;{ return((double)(DB_NORM - 2 * ( x - 3 )));}

/****************************************************************//* Scopo della seguenta funzione : *//* Calcola il livello in dB corrispondente al *//* valore di campione di sottobanda *//* denormalizzato e dequantizzato *//* passato come parametro *//****************************************************************/double liv_sample_dB(s)double s;

{ unsigned int j; double r;

s = ( s>0 ? s : -s ); for (j=0 ; j<SCALE_RANGE-1 ; j++) if (s > multiple[j]) {r = liv_scale_dB(j-1); break;}if(j >= SCALE_RANGE-2) r= liv_scale_dB(SCALE_RANGE-2);return(r);

}

Page 246: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-35

BIBLIOGRAFIA

[Aarts] R. M. Aarts"Calculation of the loudness of loudspeakers during listening tests"Journal of the Audio Engineering Society, Vol.39 No.1, 1991.

[Abramson] N. Abramson"Information theory and coding"Mc Graw Hill, 1963.

[Angeleri] E. Angeleri"Esercizi di teoria della informazione e della trasmissione"Clup, 1990.

[Beerends] J. G. Beerends, J. A. Stemerdink"A perceptual audio quality measure based on a psychoacoustic soundrepresentation"Journal of the Audio Engineeering Society, Vol.40 No.12, 1992.

[Blesser] B. A. Blesser"Digitization of audio : A comprehensive examination of theory,implementation, and current practice"Journal of the Audio Engineeering Society, Vol.26 No.10, 1978.

[Cabot] R. C. Cabot"Audio measurements"Journal of the Audio Engineering Society, Vol.35 No.6, 1987.

[CCETT] CCETT, IRT, PHILIPS"MUSICAM: High quality audio bit-rate reduction system family for differentapplications"Presented at IEEE International Conference on Communications, 1990.

[CCIR-A] Raccomandazioni CCIRRec.601-1 "Encoding parametrers of digital television for studios"Volume XI, 1990.

[CCIR-B] Raccomandazioni CCIRRec.953 "Encoding parametres for digital audio"Volume X, 1990.

[Cosa] M. Cosa"Inquinamento da rumore"La Nuova Italia Scientifica, 1992.

[Dehery-A] Y. F. Dehery"Musicam source coding"AES 10th International Conference, 1990.

[Dehery-B] Y. F. Dehery, G. Stoll, L. v.d. Kerkhof"MUSICAM source coding for digital sound"EBU Review Technical No.237, 1989.

Page 247: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-36

[Dimino] G. Dimino"Standard per sequenze audiovisive (MPEG, H.261) audio"Documento interno, Centro Ricerche RAI Torino, 1993.

[Elmasian] R. Elmasian, R. Galambos, A. Bernheim, Jr."Loudness enhancement and decrement in four paradigms"The Journal of the Acoustical Society of America, Vol.67 No.2, 1980.

[Gilchrist] N. H. Gilchrist"Sampling-frequency sincronization with minimal delay"Journal of the Audio Engineering Society, Vol.36 No.5, 1988.

[Gold] B. Gold, L. Rabiner"Theory and application of digital signal processing"Prentice Hall, 1975.

[Green] D. M. Green"Additivity of masking"The Journal of the Acoustical Society of America, Vol.41 No.6, 1967.

[Humes] L. E. Humes, W. Jersteadt"Models of the additivity of masking"The Journal of the Acoustical Society of America, Vol.85 No.3, 1989.

[Kapust] R. Kapust"A human ear related objective measurement technique yields audible errorand error margin"AES 11th International Conference, 1991.

[Kroeker] E. J. Kroeker"Challenges in full-motion video/audio for personal computers"Presented at the 26th annual SMPTE, 1992.

[Lazzarin] R. Lazzarin , M. Strada"Elementi di acustica tecnica"CLUEP Padova, 1992.

[Lutfi] R. A. Lutfi"Additivity of simultaneous masking"The Journal of the Acoustical Society of America, Vol.73 No.1, 1983.

[Malcangi] M. Malcangi"Elaborazione digitale dei segnali"Gruppo Editoriale Jackson, 1986.

[Moore-A] B. C. J. Moore"An introduction to the Psychology of hearing"Third Edition, Harcourt Brace Jovanovich Publishers, 1978.

[Moore-B] B. C. J. Moore"Additivity of simultanous masking, revisited"The Journal of the Acoustical Society of America, Vol.78 No.2, 1985.

[MPEG-A] ISO - International Organization for StandardizationSoftware MPEG_Audio Vers.3.5ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1992.

[MPEG-B] ISO - International Organization for StandardizationReferences MPEG Audio 3-11172 rev.3ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1991.

Page 248: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-37

[Mùller] F. Mùller-Ròmer"Directions in digital audio broadcasting"Journal of the Audio Engineering Society, Vol.41 No.3, 1993.

[Paillard] B. Paillard, P. Mabilleau, S. Morissette"PERCEVAL: Perceptual evaluation of the quality of audio signals"Journal of the Audio Engineering Society, Vol.40 No.1, 1992.

[Penner-A] M. J. Penner"The coding of intensity and interaction of forward and backward masking"The Journal of the Acoustical Society of America, Vol.67 No.2, 1980.

[Penner-B] M. J. Penner, R. M. Shiffrin"Nonlinearities in the coding of intensity within the context of a temporalsummation model"The Journal of the Acoustical Society of America, Vol.67 No.3, 1980.

[Pohlmann] K. C. Pohlmann"Principles of digital audio"Third printing, Howard W.Sams & Co., 1987.

[Reza] F. M. Reza"An introduction to information theory"Mc Graw Hill, 1963.

[Rumsey] F. Rumsey"Megabytes per minute"Studio Sound, Ottobre 1991.

[Salton] G. Salton"Automatic Text Processing"Addison Wesley, 1989.

[Shafer] A. V. Oppenheim, R. W.Shafer"Elaborazione numerica dei segnali"Franco Angeli editore, 1981.

[Stoll-A] G. Stoll"Source coding for DAB and the evaluation of its performance: A majorapplication of the new ISO audio coding standard"Presented at the EBU First International Symposium of Digital AudioBroadcasting, 1992.

[Stoll-B] G. Stoll, Y. F. Dehéry L. v.d. Kerkhof"MUSICAM: A universal subband coding system"ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1992.

[Theile] G. Theile, G. Stoll, M. Link"Low bit-rate coding of high-quality audio signals. An introduction to theMASCAM system"EBU Review Technical , No.230, 1988.

[Wiese] D. Wiese, G. Stoll"Bitrate reduction of high quality audio signals by modelling the ears maskingtheresholds"Presented at the 89th AES Convention, 1990.

[Zwicker] E. Zwicker, U. T. Zwicker"Audio engineering and psychoacoustics: matching signals to the final

Page 249: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-38

receiver, the human auditory system"Journal of the Audio Engineeering Society, Vol.39 No.3, 1991.

Page 250: Mpeg Audio Codifiche Percettive - Compressione Audio

Appendice AIL SOFTWARE MPEG

(versione 3.5)A.1 MODULI E LIBRERIE ......................................................................................................................1A.2 AUTORI .............................................................................................................................................1A.3 SCOPO DISTRIBUZIONE.................................................................................................................2A.4 DESCRIZIONE SORGENTI ..............................................................................................................4A.5 STRUTTURE DATI............................................................................................................................5A.6 MACRODEFINIZIONI ......................................................................................................................9A.7 VARIABILI GLOBALI........................................................................................................................9A.8 FUNZIONI.........................................................................................................................................10

In questa Appendice si riporta l' analisi riassuntiva della raccolta di programmi in linguaggio 'C' scrittisotto il controllo di MPEG ISO-IEC/JCT1/SC29/WG11 per la codifica e decodifica1 di segnali audioPCM secondo le specifiche 11172 rev 1.La versione del software esaminata è la 3.5, distribuita da MPEG nel Novembre 1992 senza alcunadocumentazione.L'analisi di come operano le diverse procedure è stata ottenuta dalla lettura del codice sorgente 'C'.Viene illustrata la struttura degli algoritmi di codifica e decodifica che è utile per comprendere la partedegli algoritmi scritti per l'elaborazione dei segnali MPEG.

A.1 MODULI E LIBRERIEI programmi sono organizzati in moduli di:

_ codifica_ decodifica_ parte comune contenente dichiarazioni e definizioni delle funzioni e delle strutture dati

utili sia al codificatore che al decodificatore.

1Solo per i layer I e II

Page 251: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-2

ModuliCodificatore

Comuni ModuliDecodificatore

musicin.c common.c musicout.cencode.c common.h decode.cencoder.h alloc_[0 , 1, 2, 3] decoder.henwindow dewindow

psy.csubs.c

absthr_[0, 1, 2]tonal.c

1cb[0, 1, 2]2cb[0, 1, 2]1th[0, 1, 2]2th[0, 1, 2]

Tab A.1 File contenenti il codice sorgente per codificatore edecodificatore.I nomi di file scritti in corsivo indicano tabelle di dati chevengono caricati in strutture in memoria e sono usati perl'elaborazione.

A.2 AUTORIIl pacchetto software è stato scritto sotto il controllo di MPEG (ISO/IEC JTC/SC29/WG11) daalcuni suoi membri e consulenti.Tra i programmatori che hanno preso parte alla stesura del codice i maggiori contributi sono statidati da:

Douglas Wong e Davis Pan per la stesura della prima versione dimusicin.ccommon.hdecoder.hdecode.ccommon.cencode.cencoder.h

Douglas Wong permusicout.ctonal.c

Davis Pan perpsy.csubs.c

La prima versione (iniziata al 3 Gennaio 1991) è stata scritta per macchine AIX ed è stata corretta,modificata e aggiornata da un gran numero di revisori, alcuni dei quali si sono occupati di rendereportabile il software sulle macchine DOS , MACINTOSH e UNIX.

In particolare :

W. Joseph Carter per la portabilità da AIX a UNIX

W. Joseph Carter per la portabilità da AIX a MACINTOSH

Earle Jennings per la portabilità da MACINTOSH a DOS

Tra i revisori i più ricorrenti sono:Bill Aspromonte

Page 252: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-3

Douglas WongJens SpilleMasahiro IwadareMike ColemanShaun AstarabadiDon H. LeeKaty Wang.

Ogni modulo ha comunque indicato all'interno di commenti gli autori, i revisori e cosa hanno fatto.

A.3 SCOPO DISTRIBUZIONEIl software è stato inizialmente scritto per una distribuzione pubblica senza alcuna licenza perdiffondere il sistema MPEG_Audio e farlo conoscere sia ai produttori che al grande pubblico,come base per svilupparne implementazioni efficienti.Il software nella forma originale NON poteva essere commercializzato o venduto in nessun modoma veniva distribuito gratuitamente.

Successive revisioni e riunioni hanno stabilito un Copyright sul software per evitarne losfruttamento per scopi commerciali a fini di lucro.In tal modo è stata imposta una tassa di licenza d'uso per ogni copia dei sorgenti 'C'.

Il software viene distribuito con dei file PCM e dei file codificati per verificarne il funzionamentosu ogni macchina.

Le richieste minime della macchina sono:

interi 16 o 32 bitfloat 32 bitdouble 64 bitmemoria centrale sufficiente a contenere i programmi compilati e le tabelle

(almeno 400KByte)

La scrittura e revisione a più mani ha portato ad una struttura molto portabile anche se pocoottimizzata e poco chiara.Ad esempio strutture contenenti gli stessi dati ma di moduli diversi risultano avere nomi diversi ecapita anche che siano organizzate in modo diverso.

Le dimensioni del software sono:

28.000 linee per i sorgenti 'C' (8 moduli) 1.000 linee per i file di include *.h (3 moduli)65.000 caratteri di tabelle (21 file).

La compilazione dei progetti di codifica e decodifica in ambiente Turbo C (Borland) ,MS-DOSproduce i seguenti risultati:

���� N.Linee Compilate Dim.Strutture statiche Dimensione EseguibileCODIFICATORE 18 770 16 KByte 134 493 Byte

DECODIFICATORE 8 439 7 KByte 75 529 ByteTab. A.2 Risultati della compilazione dei progetti di codifica e decodifica in

'Turbo C'.

Il software alloca la maggior parte delle strutture dati viene allocata in memoria dinamica per laportabilità su macchine con capacità limitata , tali strutture occupano memoria ma non sono notificatein fase di compilazione e quindi non sono riportate nella tabella Tab A.2.Ne segue che la reale occupazione di memoria è superiore a quella riportata dal compilatore.

Page 253: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-4

Per quanto riguarda il layer III la sua alta complessità richiede lunghi tempi di sviluppo e nel mese diOttobre 1993 non ne è ancora disponibile nessuna implementazione.

Il file codificato MPEG può venire scritto in ASCII o in BINARIO (4bit) settando il flagBS_FORMAT (common.h).

Il file audio ingresso al codificatore può essere sia mono che stereofonico e campionato alle frequenzedi: 32 , 44.1, 48 KHz con 16 bit per campione.

Per segnali stereofonici il canale sinistro deve stare prima del destro.

Il file in uscita dal decodificatore è dello stesso tipo2 di quello in ingresso.È prevista la possibilità di produrre file di tipo AIFF3.

Il codificatore ed il decodificatore sono configurati per gestire il bitstream di uscita come unasequenza di caratteri esadecimali, nel modulo common.c c'è però la libreria:

'Bit Stream Package'Jean Georges Fritsh

C_Cube Microsystems

che permette la gestione dei file bit a bit. In tal modo si ottimizza lo sfruttamento di dispositivi binari.

Il rilevamento della syncword nel software di decodifica è molto primitivo e non è in grado didistinguere false syncword.In caso si verifichino errori non viene presa nessuna particolare misura correttiva ma viene solorilevato.Si riporta di seguito il makefile suggerito da MPEG per compilare il software su macchine AIX.

CC=ccDEFINES = TABLES_PATH=\".\"INCLUDES = decoder.h commun.hSHARED_OBJECTS=common.oENCODE_OBJECTS=encode.o musicin.o psy.o tonal1.o subs.oDECODE_OBJECTS=decode.o musicout.oCFLAGS=-DAIXLDFLAGS=-lm

all:codeccodec: encode decode.c.o$(CC) $(CFLAGS) -c $<$(LDFLAGS)encode: $(ENCODE_OBJECTS) $(SHARED_OBJECTS) $(CC) $(CFLAGS) -o encode $(ENCODE_OBJECTS) $(SHARED_OBJECTS)$(LDFLAGS)

decode: $(DECODE_OBJECTS) $(SHARED_OBJECTS) $(CC) $(CFLAGS) -o decode $(DECODE_OBJECTS) $(SHARED_OBJECTS)$(LDFLAGS)

2Per tipo si intende modalità (stereo, mono, dual, joint), numero di canali e frequenza di

campionamento

3Standard APPLE. AIFF (Audio Interchange File Format) è un file con un header secondo unasintassi definita.

Page 254: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-5

A.4 DESCRIZIONE SORGENTIViene descritto il ruolo di ogni modulo del pacchetto di codifica e decodifica.

NOME FILE CONTENUTO

musicin.c Procedura principale per la codifica

encode.c Funzioni usate per la codifica

encoder.h Include delle funzioni dichiarate in encode.c

enwindow Tabella di coefficienti per finestratura di Hann

psy.c Funzioni per il modello psicoacustico 2

subs.c Funzioni per il modello psicoacustico 1

absthr_[0, 1, 2] Tabelle usate dal modello psicoacustico 2

tonal.c Procedure per il modello psicoacustico 1

1cb[0, 1, 2] Tabelle limiti bande critiche layer 1 frequenze [32, 44, 48]

2cb[0, 1, 2] Tabelle limiti bande critiche layer 2 frequenze [32, 44, 48]

1th[0, 1, 2] Tabelle per il modello psicoacustico layer I

2th[0, 1, 2] Tabelle per il modello psicoacustico layer II

musicout.c Procedura principale decodifica

decode.c Dichiarazione funzioni usate per decodifica

decoder.h Include delle funzioni definite in decode.c

dewindow Coefficienti per definestratura di sintesi

common.c Funzioni comuni usate sia dal codificatore chedecodificatore.Contiene la libreria di funzioni 'BitStream Package'.

common.h Include delle funzioni dichiarate in common.c

alloc_[0 , 1, 2, 3] Tabelle per il layer II contenenti i possibili livelli diquantizzazione a seconda della sottobanda

Tab A.3 Contenuto dei file distribuiti da MPEG (versione 3.5 )

A.5 STRUTTURE DATITra i vari moduli ci solo diverse incongruenze di nomi tra strutture con lo stesso contenutoinformativo.Tra i moduli di codifica e decodifica variano le dimensioni di alcune strutture per il fatto che la stessaprocedura viene eseguita più volte su porzioni di essa.

Page 255: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-6

Contenuto Struttura Codificatoremusicin.c

Decodificatoremusicout.c

TIPO

Bit_Allocation bit_alloc[2][32] bit_alloc[2][32] unsigned int

Scfsi scfsi[2][32] scfsi[2][32] unsigned int

Fattori Di Scala scalar[2][3][32]j_scale[3][32]

scale_index[2][3][32] unsigned int

Campioni PCM buffer[2][1152] pcm_sample[2][3][32] short

Campioni FrequenzialiNormalizzati e Quantizzati

subband[2][3][12][32] sample[2][3][32] unsigned int

Campioni FrequenzialiDenormalizzati e Dequantizzati

sb_sample[2][3][12][32]j_sample[3][12][32]

fraction[2][3][32] double

SMR ltmin[2][32] ltmin[2][32] double

Tab A.4 Corrispondenza tra i nomi e dimensioni delle strutture usatedai moduli di codifica e di decodifica

Oltre a queste strutture dati semplici contenenti tutte le informazioni dell'audio compresso, vengonousate una serie di strutture record per la loro gestione e per la memorizzazione delle tabelle dicoefficienti.Tra queste strutture riporto le principali come definizione 'C' illustrandone il contenuto.

Le strutture sono definite nel file di include common.h.

Struttura LAYER, contenente l'Header del FRAME...

I campi corrispondono a quelli descritti nel Capitolo 3 "Specifiche MPEG_Audio" ememorizzano le informazioni dell' Header di ogni FRAME.

typedef struct { int version; int lay; int error_protection; int bitrate_index; int sampling_frequency; int padding; int extension; int mode; int mode_ext; int copyright; int original; int emphasis;} layer;

Page 256: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-7

Struttura FRAME_PARAMS, contenente il puntatore all'Header e i puntatori alle tabelle ...

typedef struct { layer *header; /* Puntatore all'header (struttura layer) */ int actual_mode; /* Modalità audio */ al_table *alloc; /* Puntatore tabella ALLOC_x */ int tab_num; /* Numero tabella ALLOC_[0,1,2,3] (*alloc) */ int stereo; /* Vale 1 per mono, 2 per stereo, J_stereo, Dual */ int jsbound; /* Prima banda in J_stereo */ int sblim; /* Numero totale di bande allocate */} frame_params;

Struttura AL_TABLE puntata da frame_params : tabelle di quantizzazione per il layer II...

Contiene la rappresentazione in memoria centrale del file ALLOC_x che indica il numero di livelli diquantizzazione disponipili per ogni sottobanda al layer II.

typedef struct { Unsigned Int steps; Unsigned Int bits; Unsigned Int group; Unsigned Int quant;} sb_alloc;

typedef sb_alloc al_table[SB][16];

La struttura al_table contiene per il layer II la tabella con i possibili livelli di quantizzazione.La rappresentazione tabulare riportata nel Capitolo 2 "La codifica MPEG Audio" è nella formaseguente:

I N D I C E

SB NB 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655351 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 655352 4 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..

Tab A.4 Rappresentazione in tabella ed in file di una delle tabelle usate per ipossibili livelli di quantizzazione per il layer II

La tabella precedente è memorizzata nel file ALLOC_0 nella forma seguente:

Page 257: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-8

27─

┌─

│ ┌─

│ │ ┌─

│ │ │ ┌─

│ │ │ │ ┌─

│ │ │ │ │ ┌─ │ │ │ │ │ │0 0 0 4 0 00 1 3 5 1 00 2 7 3 3 20 3 15 4 3 40 4 31 5 3 50 5 63 6 3 60 6 127 7 3 70 7 255 8 3 80 8 511 9 3 90 9 1023 10 3 100 10 2047 11 3 110 11 4095 12 3 120 12 8191 13 3 130 13 16383 14 3 140 14 32767 15 3 150 15 65535 16 3 16

1 0 0 4 0 0

1 1 3 5 1 01 2 7 3 3 21 3 15 4 3 41 4 31 5 3 51 5 63 6 3 61 6 127 7 3 71 7 255 8 3 81 8 511 9 3 91 9 1023 10 3 101 10 2047 11 3 111 11 4095 12 3 121 12 8191 13 3 131 13 16383 14 3 141 14 32767 15 3 151 15 65535 16 3 16........................................................................................................................................................................

....................................................................................Tab. A.5 Tabella delle quantizzazioni nella forma in cui è memorizzata su file.

Tale tabella viene letta dalla funzione read_table() e memorizzata in*(fr_ps.al_table)

Page 258: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-9

Struttura BITSTREAM, per il package "BitStream Package"...

Struttura contenente informazioni sul file, buffer e posizione corrente.

typedef struct bit_stream_struc { FILE *pt; /* Puntatore al file */ unsigned char *buf; /* Buffer del file */ int buf_size; /* Dimensione del Buffer in Bytes */ long totbit; /* Numero di Bit del BitStream */ int buf_byte_idx; /* Puntatore Byte corrente nel buffer */ int buf_bit_idx; /* Puntatore Bit corrente di buf_byte_idx del buffer */ int mode; /* Modalità di apertura del file (read, write) */ int eob; /* Flag di fine del Buffer */ int eobs; /* Flag di fine del BitStream */ char format; /* Formato di scrittura/lettura (Binario o Ascii) */} Bit_stream_struc;

A.6 MACRODEFINIZIONISi riportano le macrodefinizioni ritenute maggiormente significative la co-decodifica del segnale.

#define MONO 1#define STEREO 2#define BITS_IN_A_BYTE 8#define SBLIMIT 32 /* Numero di sottobande */#define SCALE_BLOCK12 /* Numero di gruppi di 3 campioni per sottobanda */#define SCALE_RANGE64 /* Massimo indice per i fattori di scala */

MPEG Definizioni per la Modalità audio

#define MPG_MD_STEREO 0#define MPG_MD_JOINT_STEREO 1#define MPG_MD_DUAL_CHANNEL 2#define MPG_MD_MONO 3

Macrodefinizioni di minimo e di massimo tra due numeri

#define MIN(A, B) ((A) < (B) ? (A) : (B))#define MAX(A, B) ((A) > (B) ? (A) : (B))

Valore dell'MNR di soglia affinchè una banda sia considerata rumorosa

#define NOISY_MIN_MNR 0.0

Syncword

#define SYNC_WORD (long) 0xfff#define SYNC_WORD_LNGTH 12

A.7 VARIABILI GLOBALIVengono riassunte le strutture globali usate come interfaccia tra l'utente e la rappresentazione inmacchina e la struttura usata per memorizzare i valori dei fattori di scala.

Page 259: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-10

Nome delle modalità audio:char *mode_names[4] =

{ "stereo", "j-stereo", "dual-ch", "single-ch" };

Nome dei layer :char *layer_names[3] =

{ "I", "II", "III" };

Frequenze di campionamento:double s_freq[4] ={44.1, 48, 32, 0};

Bitrate disponibili in funzione del layer:int bitrate[3][15] =

{ {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448}, {0,32,48,56,64,80,96,112,128,160,192,224,256,320,384},

{0,32,40,48,56,64,80,96,112,128,160,192,224,256,320} };

Valori dei Fattori di Scala:double FAR multiple[64] =

{2.00000000000000, 1.58740105196820, 1.25992104989487,1.00000000000000, 0.79370052598410, 0.62996052494744, 0.50000000000000,0.39685026299205, 0.31498026247372, 0.25000000000000, 0.19842513149602,0.15749013123686, 0.12500000000000, 0.09921256574801, 0.07874506561843,0.06250000000000, 0.04960628287401, 0.03937253280921, 0.03125000000000,0.02480314143700, 0.01968626640461, 0.01562500000000, 0.01240157071850,0.00984313320230, 0.00781250000000, 0.00620078535925, 0.00492156660115,0.00390625000000, 0.00310039267963, 0.00246078330058, 0.00195312500000,0.00155019633981, 0.00123039165029, 0.00097656250000, 0.00077509816991,0.00061519582514, 0.00048828125000, 0.00038754908495, 0.00030759791257,0.00024414062500, 0.00019377454248, 0.00015379895629, 0.00012207031250,0.00009688727124, 0.00007689947814, 0.00006103515625, 0.00004844363562,0.00003844973907, 0.00003051757813, 0.00002422181781, 0.00001922486954,0.00001525878906, 0.00001211090890, 0.00000961243477, 0.00000762939453,0.00000605545445, 0.00000480621738, 0.00000381469727, 0.00000302772723,0.00000240310869, 0.00000190734863, 0.00000151386361, 0.00000120155435,

1E-20 };

Valori di SNR per il layer II in funzione del numero di livelli di quantizzazione:static double snr[18] =

{ 0.00, 7.00, 11.00, 16.00, 20.84,25.28, 31.59, 37.75, 43.84,

49.89, 55.93, 61.96, 67.98, 74.01,80.03, 86.05, 92.01, 98.01 };

A.8 FUNZIONIIn questo paragrafo si riassumono le principali funzioni definite nei moduli del software MPEG chesono utilizzate per l'elaborazione del segnale codificato al layer II .

Per una maggiore leggibilità sono state fatte le seguenti sostituzioni:

Page 260: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-11

TIPO STRUTTURADATI

ABBREVIAZIONE

unsigned int UI

float F

double D

SCALE_BLOCK S_BLK

unsigned long UL

SBLIMIT SB

long L

Bit_stream_struc B_struc

Tab A.6 Abbreviazione dei alcuni nomi per una maggiore leggibilità delle tabelle6.8, 6.9, 6.10.

Le funzioni vengono presentate divise per modulo di appartenenza.

FUNZIONI DEFINITE IN COMMON.C

TIPO NOME SCOPO

FILE * OpenTableFile(char*);Apertura file ALLOC_x contenente la tabelladei livelli di quantizzazione

int read_bit_alloc(int, al_table*);Lettura tabella ALLOC_x da file ememorizzazione in al_table*

int pick_table(fr_ps*);Sceglie il valore di x tra 0, 1, 2, 3 e chiama ledue funzioni precedenti di lettura file

int js_bound(int, int);Ritorna il valore di banda limite per lamodalità joint_stereo

void hdr_to_frps(fr_ps*);Inizializzazione Header e strutturaframe_params

void WriteHdr(fr_ps*,FILE*);Scrive contenuto dell'header su video

int BitrateIndex(int, int);Ritorna l'indice della tabella BITRATEcorrispondente al valore numerico di bitrate

int SmpFrqIndex(L);Ritorna l'indice della tabella S_FREQ relativoal valore numerico

void mem_alloc(UL, char*);Alloca strutture dinamiche con istruzionidipendenti dalla macchina in uso

void mem_free(void**);Libera la memoria dinamica con istruzionidipendenti dalla macchina in uso

void II_CRC_calc(fr_ps*, UI[2][SB], UI[2][SB], UI*);Richiama update_crc( ) per tutti i campi chedevono essere protetti da errori

void update_CRC(UI, UI, UI*);Aggiunge al CRC la protezione per un nuovocampo

Page 261: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-12

BITSTREAM PACKAGE

int refill_buffer(B_struc*);Lettura da file di un numero di dati sufficientea riempire il buffer

void empty_buffer(B_struc*, int);Svuota il buffer di un file passato comeparametro

void open_bit_stream_w(B_struc*, char*, int);Apre un file binario in scrittura

void open_bit_stream_r(B_struc*, char*, int);Apre un file binario in lettura

void close_bit_stream_r(B_struc*);Chiude un file che era stato aperto in lettura

void close_bit_stream_w(B_struc*);Chiude un file che era stato aperto in scritturasvuotando il buffer

void alloc_buffer(B_struc*, int);Inizializza il buffer del file

void desalloc_buffer(B_struc*);Svuota e rende disponibile il buffer

void back_track_buffer(B_struc*, int);Muove la posizione corrente indietro di N bitnel buffer

U int get1bit(B_struc*);Legge un bit dal file

void put1bit(B_struc*, int);Scrive un bit sul file

U long getbits(B_struc*, int);Legge N bit dal file

void putbits(B_struc*, UI, int);Scrive N bit sul file

void byte_ali_putbits(B_struc*, UI, int);Scrive N bit sul file in modo che la loroposizione sia multiplo di 8

U int byte_ali_getbits(B_struc*, int);Legge N bit con la cui posizione è allineata albyte

U long sstell(B_struc*);Ritorna la dimensione del file in bit

int end_bs(B_struc*);Ritorna 1 se si è raggiunta la fine del filealtrimenti ritorna 0

int seek_sync(B_struc*, L, int);Ritorna 1 se viene trovata la syncwordaltrimenti ritorna 0

Tab A.7 Funzioni definite in common.c e operazioni svolte da ognuna di esse

Page 262: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-13

FUNZIONI DEFINITE IN ENCODE.C

TIPO NOME SCOPO

U long read_samples(FILE*, short[2304], UL,UL);Legge i campioni PCM dal file diingresso

U long get_audio(FILE*, short[2][1152], UL,int, int);Gestisce lettura campioni PCMper layer I o II

void read_ana_window(D[HAN_SIZE]);Legge la tabella ENWINDOW dafile e la memorizza nella strutturapassata come parametro

void window_subband(short**, D[HAN_SIZE], int);Valori per la finestratura deicampioni PCM

void create_ana_filter(D[SB][64]);Coefficienti del filtro di analisi

void filter_subband(D[HAN_SIZE], D[SB]);Filtro di analisi e scomposizionein 32 sottobande

void encode_info(fr_ps*, B_struc*);Scrive Header sul file

void II_combine_LR(D[2][3][S_BLK][SB],D[3][S_BLK][SB],int);

Calcola j_sample come media deidue canali

void II_scale_factor_calc(D[][3][S_BLK][SB], UI[][3][SB], int,int);

Calcola fattori di scala einizializza SCALAR con l'indicerelativo

void II_transmission_pattern(UI[2][3][SB], UI[2][SB], fr_ps*);Calcola SCFSI dai valori deifattori di scala

void II_encode_scale(UI[2][SB],UI[2][SB],UI[2][3][SB], fr_ps*,B_struc*);

Scrive i Fattori di Scala sul file

int II_bits_for_nonoise(D[2][SB], UI[2][SB], fr_ps*);Conta il numero di bit necessariaffinché non ci siano banderumorose

void II_main_bit_allocation(D[2][SB], UI[2][SB], UI[2][SB],int*, fr_ps*);

In caso di J_stereo trova ilnumero di bande in JOINTaffinché non ci sia rumore udibile

int II_a_bit_allocation(D[2][SB], UI[2][SB], UI[2][SB], int*,fr_ps*);

Procedura di allocazione dei bitsulle sottobande

void II_subband_quantization(UI[2][3][SB],D[2][3][S_BLK][SB], UI[3][SB], D[3][S_BLK][SUI[2][3][S_BLK][SB], fr_ps*);

Normalizza , Quantizza e invertel'MSB dei campioni frequenziali

void II_encode_bit_alloc(UI[2][SB], fr_ps*,B_struc*);Scrive la bit allocation sul file

void II_sample_encoding(UI[2][3][S_BLK][SB],UI[2][SB],fr_ps*,B_struc*);

Scrive i campioni su file

void encode_CRC(UI, B_struc*);Scrive il CRC sul file

Tab A.8 Funzioni definite in encode.c usate per la codifica di un file di campioniPCM

Page 263: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-14

FUNZIONI DEFINITE IN DECODE.C

TIPO NOME SCOPO

void decode_info(B_struc*, fr_ps*)Legge Header del file iningresso

void II_decode_bitalloc(B_struc*, UI[2][SB],fr_ps*)Legge la bit allocation dal file

void II_decode_scale(B_struc*, UI[2][SB],UI[2][SB], UI[2][3][SB],fr_ps*)

Legge SCFSI e fattori di scaladal file MPEG in ingresso

void II_buffer_sample(B_struc*, UI[2][3][SB], UI[2][SB], fr_ps*)Legge i campioni frequenzialidal file controllando se cegrouping

void II_dequantize_sample(UI[2][3][SB], UI[2][SB], D[2][3][SB],fr_ps*)

Inverte l'MSB campionifrequenziali e li Dequantizza

void II_denormalize_sample(D[2][3][SB],UI[2][3][SB], fr_ps*, int)Denormalizza i campionifrequenziali

void create_syn_filter(D[64][SB])Inizializza coefficienti perfinestratura di sintesi

int SubBandSynthesis (D*, int, short*)Filtro di sintesi per ottenere icampioni PCM

void read_syn_window(D[HAN_SIZE])Legge tabella DEWINDOW dafile e la memorizza nellastruttura passata comeparametro

void out_fifo(short[2][3][SB], int, fr_ps*, int, FILE*,UL*)Scrive il file dei campioni PCMdecodificati

void buffer_CRC(B_struc*, UI*)Legge il CRC dal codificatoMPEG

void recover_CRC_error(short[2][3][SB], int, fr_ps*,FILE*, UL*)Calcola CRC per confrontocon quello letto da file

Tab A.9 Funzioni definite in decode.c ed usate dal decodificatore.

Page 264: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-15

Appendice B

ANALISI DEL SOFTWAREB.1 INTRODUZIONE ..............................................................................................................................1B.2 PROCEDURA DI ALLOCAZIONE ...................................................................................................1B.3 DIVERSA MAPPATURA CAMPIONI .............................................................................................6B.4 INVERSIONE MSB CAMPIONI FREQUENZIALI..........................................................................10B.5 SHORT PCM : HI ⇔ LO................................................................................................................11B.6 DIAGRAMMA CODIFICATORE ....................................................................................................11B.7 DIAGRAMMA DECODIFICATORE ...............................................................................................13

B.1 INTRODUZIONESegue una serie di annotazioni sulle tecniche e sul funzionamento del software MPEG, note nondirettamente esposte nelle specifiche tecniche ma che sono utili se si vuole compiere l'elaborazionedel segnale codificato.

B.2 PROCEDURA DI ALLOCAZIONEL'efficienza della codifica dipende in ultima analisi dai livelli di quantizzazione assegnati ad ognisottobanda, quindi dai valori di bit_allocation.Di seguito viene illustrato l'algoritmo in linguaggio "C" scritto da MPEG per l'allocazione dei livellidi quantizzazione ad ogni sottobanda.Si osservi che per la modalità joint_stereo i limiti entro cui i campioni vengono tenuti in comune sonostimati in modo tale da avere il minimo numero di bande con rumore di quantizzazione udibile4 ed ilmassimo numero di bande in stereo cioè con i canali separati.Una volta ottenuto il numero di bande da mettere in Joint, l'allocazione procede indipendentementedalla modalità incrementando (ove possibile) i livelli di quantizzazione della banda in cui è maggioreil rumore di quantizzazione (MNR minimo).

Una descrizione ad alto livello delle tre principali funzioni coinvolte nel processo di allocazione è laseguente:

4Il rumore di quantizzazione in base alla stima del modello psicoacustico è udibile quando MNR

< 0 mentre è mascherato se MNR > 0.Tanto più il modello psicoacustico è accurato e tanto più la stima dell' MNR riflette le realisensazioni in ascolto.

Page 265: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-16

NOME FUNZIONE OPERAZIONI ESEGUITE

II_main_bit_allocation Per la modalità joint_stereo determina il numero di bande in comune trai due canali stereofonici.Il criterio seguito per tale decisione è un compromesso tra :

• Rendere minimo il numero di bande con MNR < 0• Tenere il maggior numero di bande in modalità stereo

Una volta determinato tale valore richiama la funzioneII_main_bit_alloc() che è la vera e propria procedura di allocazione.

II_bits_for_nonoise Calcola il numero di bit richiesti per memorizzare secondo la sintassiMPEG i dati memorizzati nelle strutture di memoria centrale.

bbal = numero di bit per codificare la bit_allocationbsel = numero di bit per codificare i fattori di scalab_sc = numero di bit per codificare la struttura scfsibanc = numero di bit per codificare i dati ausiliari

II_a_bit_allocation Procedura di allocazione dei livelli di quantizzazione alle bande .Viene incrementata la bit allocation della banda con MNR minimo fino ache si raggiunge la dimensione del Frame.

ALGORITMO:

1. Trova la banda ed il canale stereofonico con MNR minimo2. Calcola il numero di bit richiesti per aumentare di uno la

bit_allocation (se non si è raggiunto il valore massimo dibit_allocation)

3. Se ci sono disponibili sufficienti bit incrementa la bit_allocationper quella banda e canale

4. Ripeti fino a che ci sono bit disponibili oppure ogni incremento dibit allocation fa superare la dimensione del Frame

Tab. B.10 Riassunto delle operazioni svolte dalle procedure di MPEG (softwarevers 3.5) per costruire la bit_allocation.

Page 266: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-17

void II_main_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int bit_alloc[2][SBLIMIT];int *adb;frame_params *fr_ps;{ int noisy_sbs; int mode_ext, lay; int rq_db, av_db = *adb;

if((fr_ps->actual_mode) == MPG_MD_JOINT_STEREO) { fr_ps->header->mode = MPG_MD_STEREO; fr_ps->header->mode_ext = 0; fr_ps->jsbound = fr_ps->sblimit; if((rq_db=II_bits_for_nonoise(perm_smr, scfsi, fr_ps)) > *adb) { fr_ps->header->mode = MPG_MD_JOINT_STEREO; mode_ext = 4; /* 3 is least severe reduction */ lay = fr_ps->header->lay; do { --mode_ext; fr_ps->jsbound = js_bound(lay, mode_ext); rq_db = II_bits_for_nonoise(perm_smr, scfsi, fr_ps); } while( (rq_db > *adb) && (mode_ext > 0)); fr_ps->header->mode_ext = mode_ext; } /* well we either eliminated noisy sbs or mode_ext == 0 */ } noisy_sbs = II_a_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps);}

Page 267: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-18

int II_bits_for_nonoise(perm_smr, scfsi, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;{ int sb,ch,ba; int stereo = fr_ps->stereo; int sblimit = fr_ps->sblimit; int jsbound = fr_ps->jsbound; al_table *alloc = fr_ps->alloc; int req_bits = 0, bbal = 0, berr = 0, banc = 32; int maxAlloc, sel_bits, sc_bits, smp_bits; static int sfsPerScfsi[] = { 3,2,1,2 }; /* lookup # sfs per scfsi */

if (fr_ps->header->error_protection) berr=16; else berr=0;

for (sb=0; sb<jsbound; ++sb) bbal += stereo * (*alloc)[sb][0].bits; for (sb=jsbound; sb<sblimit; ++sb) bbal += (*alloc)[sb][0].bits; req_bits = banc + bbal + berr;

for(sb=0; sb<sblimit; ++sb) for(ch=0; ch<((sb<jsbound)?stereo:1); ++ch) { maxAlloc = (1<<(*alloc)[sb][0].bits)-1; sel_bits = sc_bits = smp_bits = 0; for(ba=0;ba<maxAlloc-1; ++ba)

if( (-perm_smr[ch][sb] + snr[(*alloc)[sb][ba].quant+((ba>0)?1:0)]) >= NOISY_MIN_MNR) break; /* we found enough bits */

if(stereo == 2 && sb >= jsbound) /* check other JS channel */ for(;ba<maxAlloc-1; ++ba) if( (-perm_smr[1-ch][sb]+ snr[(*alloc)[sb][ba].quant+((ba>0)?1:0)]) >= NOISY_MIN_MNR)

break; if(ba>0) { smp_bits = SCALE_BLOCK * ((*alloc)[sb][ba].group * (*alloc)[sb][ba].bits);

/* scale factor bits required for subband */ sel_bits = 2; sc_bits = 6 * sfsPerScfsi[scfsi[ch][sb]]; if(stereo == 2 && sb >= jsbound) { /* each new js sb has L+R scfsis */ sel_bits += 2; sc_bits += 6 * sfsPerScfsi[scfsi[1-ch][sb]]; } req_bits += smp_bits+sel_bits+sc_bits; } } return req_bits;}

Page 268: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-19

int II_a_bit_allocation(perm_smr, scfsi, bit_alloc, adb, fr_ps)double FAR perm_smr[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int bit_alloc[2][SBLIMIT];int *adb;frame_params *fr_ps;{ int i, min_ch, min_sb, oth_ch, k, increment, scale, seli, ba; int bspl, bscf, bsel, ad, noisy_sbs; double mnr[2][SBLIMIT], small; char used[2][SBLIMIT]; int stereo = fr_ps->stereo; int sblimit = fr_ps->sblimit; int jsbound = fr_ps->jsbound; al_table *alloc = fr_ps->alloc;static char init= 0;static int bbal, banc, berr;static int sfsPerScfsi[] = { 3,2,1,2 }; /* lookup # sfs per scfsi */

if (!init) { init = 1; banc = 32; berr = 0; if (fr_ps->header->error_protection) berr=16; else berr=0; } bbal = 0; for (i=0; i<jsbound; ++i) bbal += stereo * (*alloc)[i][0].bits; for (i=jsbound; i<sblimit; ++i) bbal += (*alloc)[i][0].bits; *adb -= bbal + berr + banc; ad = *adb;

for (i=0;i<sblimit;i++) for (k=0;k<stereo;k++) { mnr[k][i]=snr[0]-perm_smr[k][i]; bit_alloc[k][i] = 0; used[k][i] = 0; } bspl = bscf = bsel = 0;

do { /* locate the subband with minimum SMR */ small = 999999.0; min_sb = -1; min_ch = -1; for (i=0;i<sblimit;i++) for(k=0;k<stereo;++k) if (used[k][i] != 2 && small > mnr[k][i]) { small = mnr[k][i]; min_sb = i; min_ch = k; } if(min_sb > -1) { /* there was something to find */ /* find increase in bit allocation in subband [min] */ increment = SCALE_BLOCK * ((*alloc)[min_sb][bit_alloc[min_ch][min_sb]+1].group * (*alloc)[min_sb][bit_alloc[min_ch][min_sb]+1].bits); if (used[min_ch][min_sb]) increment -= SCALE_BLOCK * ((*alloc)[min_sb][bit_alloc[min_ch][min_sb]].group* (*alloc)[min_sb][bit_alloc[min_ch][min_sb]].bits);

/* scale factor bits required for subband [min] */ oth_ch = 1 - min_ch; /* above js bound, need both chans */ if (used[min_ch][min_sb]) scale = seli = 0; else { /* this channel had no bits or scfs before */ seli = 2; scale = 6 * sfsPerScfsi[scfsi[min_ch][min_sb]];

Page 269: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-20

if(stereo == 2 && min_sb >= jsbound) { /* each new js sb has L+R scfsis */ seli += 2; scale += 6 * sfsPerScfsi[scfsi[oth_ch][min_sb]]; } } /* check to see enough bits were available for */ /* increasing resolution in the minimum band */ /*************************************************/ /* Riga modificata ( da > in >= ) */ /*************************************************/ /*************************************************/ if (ad >= bspl + bscf + bsel + seli + scale + increment) { /*************************************************/ ba = ++bit_alloc[min_ch][min_sb]; /* next up alloc */ bspl += increment; /* bits for subband sample */ bscf += scale; /* bits for scale factor */ bsel += seli; /* bits for scfsi code */ used[min_ch][min_sb] = 1; /* subband has bits */ mnr[min_ch][min_sb] = -perm_smr[min_ch][min_sb] + snr[(*alloc)[min_sb][ba].quant+1]; /* Check if subband has been fully allocated max bits */ if (ba >= (1<<(*alloc)[min_sb][0].bits)-1) used[min_ch][min_sb] = 2; } else used[min_ch][min_sb] = 2; /* can't increase this alloc */ if(min_sb >= jsbound && stereo == 2) { /* above jsbound, alloc applies L+R */ ba = bit_alloc[oth_ch][min_sb] = bit_alloc[min_ch][min_sb]; used[oth_ch][min_sb] = used[min_ch][min_sb]; mnr[oth_ch][min_sb] = -perm_smr[oth_ch][min_sb] + snr[(*alloc)[min_sb][ba].quant+1]; } } } while(min_sb > -1); /* until could find no channel */ /* Calculate the number of bits left */ ad -= bspl+bscf+bsel; *adb = ad; for (i=sblimit;i<SBLIMIT;i++) for (k=0;k<stereo;k++) bit_alloc[k][i]=0;

noisy_sbs = 0; small = mnr[0][0]; /* calc worst noise in case */ for(k=0;k<stereo;++k) { for (i=0;i<sblimit;i++) { if (small > mnr[k][i]) small = mnr[k][i]; if(mnr[k][i] < NOISY_MIN_MNR) ++noisy_sbs; /* noise is not masked */ } } return noisy_sbs;}

B.3 DIVERSA MAPPATURA CAMPIONIUno degli ostacoli incontrati durante lo studio del sistema di codifica è la diversa mappatura deicampioni frequenziali nelle strutture usate dal codificatore e decodificatore.Infatti per l'elaborazione del segnale compresso vengono richiamate le procedure dei moduli dicodifica e decodifica del software scritto da MPEG ma le diverse procedure hanno le strutturecontenenti i campioni organizzati in modo diverso.

Un attento esame dei programmi sorgenti 'C' ha permesso di risolvere definitivamente il problematrovando una formula per la trasformazione di una struttura nell'altra.

Page 270: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-21

Di seguito sono riportate le rappresentazioni di come vengono memorizzati i campioni nelle strutturedel codificatore e decodificatore.Le tabelle si riferiscono a 2304 (1152*2) campioni frequenziali alternati a gruppi di tre sui due canali(così come da specifiche) stereofonici.Le tabelle si riferiscono ai campioni del canale 0 (sinistro) che all'interno dei campioni 1..2304occupano le posizioni :

1-2-3 7-8-9 13-14-15 ......... ......... ........ 2107-2108-2109 2113-2114-2115 ..... 2999-2300-2301

Le lettere di ogni campione indicano il fattore di scala per cui deve essere normalizzato - quantizzatosecondo la tabella seguente che riporta i 32*3 valori per ogni canale.Si ricorda che ogni fattore di scala raggruppa 12 campioni frequenziali della stessa sottobanda.

Banda ���� 1 2 3 4 5 30 31 321 a d g l .. .. .. .. .. u k w2 b e h m .. .. .. .. .. v j x3 c f i n .. .. .. .. .. z y £

Tab. B.11 Rappresentazione dei fattori di scala

Page 271: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-22

Codificatore:

Indice discale_

Block ����1 2 3 ............. 32

1a 7d 13g 187w

0 769b 775e 955x

1537c 1723£

2a 8d 14g 188w

1 770b 776e 964x

1538c 1724£

3a 9d 15g 189w

2 771b 777e 957x

1539c 1725£

193a 199d 379w

3 961b 967e 1147x

1729c 1913£

194a 200d 380w

4 962b 968e 1148x

1730c 1914£

195a 201d 381w

5 963b 969e 1149x

1731c 1915£

385a 391d 571w

6 1153b 1339x

1921c 2107£

386a 392d 572w

7 1154b 1340x

1922c 2108£

387a 393d 573w

8 1155b 1341x

1923c 2109£

577a 593d 763w

9 1345b 1351e 1531x

2113c 2299£

578a 594d 764w

10 1346b 1352e 1532x

2114c 2300£

579a 595d 765w

11 1347b 1353e 1533x

2115c 2301£

Tab. B.12 Mappatura dei campioni frequenziali nella struttura usata dalcodificatore; la lettera di ogni casella indica il fattore di scala mentre ilnumero indica il campione.

Decodificatore:

Page 272: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-23

Indice discale_Block

1 2 3 .............. 32

1a 7d 13g 187w

0 2a 8d 14g 188w

3a 9d 15g 189w

193a 199d 379w

1 194a 200d 380w

195a 201d 381w

385a 388d 571w

2 386a 389d 572w

387a 390d 573w

577a 763w

3 578a 764w

579a 765w

769b 775e 955x

4 770b 776e 956x

771b 777e 957x

961b 967e 1147x

5 962b 968e 1148x

963b 969e 1149x

1153b 1159e 1339x

6 1154b 1160e 1340x

1155b 1161e 1341x

1345b 1351e 1531x

7 1346b 1352e 1532x

1347b 1353e 1533x

1537c 1723£

8 1538c 1724£

1539c 1725£

1729c 1915£

9 1730c 1916£

1731c 1917£

1921c 2107£

10 1922c 2108£

1923c 2109£

2113c 2299£

11 2114c 2300£

2115c 2301£

Tab. B.13 Mappatura dei campioni frequenziali nella struttura usata daldecodificatore; la lettera di ogni casella indica il fattore di scala mentreil numero indica il campione.

Il decodificatore elabora gruppi di 96 campioni suddivisi tra le 32 sottobande (3 campioni persottobanda), le stesse operazioni vengono ripetute 12 volte per elaborare tutti i 1152 campioni insottobanda di ogni canale monofonico.

Page 273: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-24

L'algoritmo che permette di mappare una struttura nell'altra è

for (j = 0; j < SCALE_BLOCK ; j++ ){

II_buffer_sample(bsi, subband_decoder, bit_alloc, fr_ps);II_dequantize_sample(subband_decoder, bit_alloc, sample_decoder, fr_ps);II_denormalize_sample(sample_decoder, scale_index, fr_ps, j>>2);for (ch=0 ; ch < 2 ; ch++)

for (k = 0 ; k < 3 ; k++ ) for (i = 0 ; i < SBLIMIT ; i++ )

sample_encoder[ch] [(int) (j/4)] [(j % 4)* 3 + k] [i] = sample_decoder[ch][k][i];

} /*end for j */

Fig. B.1 Algoritmo per la mappatura dei campioni frequenziali da decodificatorea codificatore

B.4 INVERSIONE MSB CAMPIONI FREQUENZIALILe specifiche di MPEG impongono l'inversione dell'MSB5 dei campioni frequenziali motivando taleoperazione con il voler evitare collisioni della codifica dei campioni frequenziali con la syncword '111111 111 111' nel file codificato.Tale affermazione non è corretta per i seguenti motivi:

- Il formarsi della parola di dodici uno consecutivi può derivare ad esempio dalla codificadi due campioni frequenziali quantizzati su sei bit e di valore '011 111' ; infattil'inversione dell'MSB provocherebbe il formarsi della parola '111 111' ripetuta duevolte che entra in collisione con la syncword.

- Il formarsi della '111 111 111 111' può derivare oltre che dalla codifica dei campionifrequenziali, anche da : bit_allocation, SCFSI, Fattori di Scala o da unasovrapposizione di esse.

È invece valida per ridurre la probabilità del formarsi di false syncword:

- Ciò che si vuole evitare è che vengano a formarsi sequenze troppo lunghe di '1' binariconsecutivi.Esaminando la sintassi di codifica si può notare che ogni dodici campionisicuramente almeno uno è codificato con una parola di tanti uno quanti sono i bit diquantizzazione (quello che determina il fattore di scala) mentre è meno probabileche ce ne sia uno la cui quantizzazione sia data da uno zero seguito da tanti uno.

Quindi l'inversione dell'MSB permette solo di ridurre la probabilità che si creino false syncword nellasequenza codificata ma non evita del tutto tale situazione.

Invertendo l'MSB dei campioni , ciò che in pratica si ottiene è la loro rappresentazione incomplemento a due ; infatti in complemento a due l'intervallo rappresentabile è [-N/2..+N/2]6: ilmassimo numero rappresentabile è positivo ed è 0111...11 mentre il minimo è negativo ed è 1000...00.

5Most Significant Bit ; Bit di più alto valore (più a destra) tra quelli della rappresentazione

binaria.

6N=2n con n numero di bit usati per la quantizzazione

Page 274: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-25

La rappresentazione con solo numeri positivi usata da MPEG permette di quantizzare l'intervallo[0...N] e l'inversione dell' MSB è proprio la funzione di conversione nel sistema modulo 2.

B.5 SHORT PCM : HI ⇔⇔⇔⇔ LOI numeri di tipo short sono memorizzati su 16 bit ed interpretati come interi.Su macchine diverse i valori short possono essere scritti secondo una diversa formattazione:

• su macchine DOS viene scritto prima il byte HI e poi LO• su macchine UNIX viene scritto prima il byte LO e poi quello HI

Ciò non crea nessun problema per i file codificati MPEG che essendo ASCII vengono scritti unbyte dopo l'altro e sono totalmente portabili; invece per i file di campioni PCM (essendo unasequenza di valori SHORT) può essere necessario dovere invertire i byte HI e LO.A tale scopo è stata scritta la procedura m5conv.c che opera tale scambio e può essere eseguitacome comando di linea.

#include <stdio.h>#include <stdlib.h>#include <string.h>#define NUM_BYTE 4096

main(){

register i;int numSamples;char source[NUM_BYTE], target[NUM_BYTE];

while ((numSamples=fread(source, sizeof(char), NUM_BYTE, filein)) >0)

{for(i=0; i<NUM_BYTE ; i+=2)

{target[i] = source[i+1];target[i+1] = source[i];}

fwrite(target, sizeof(char), NUM_BYTE, fileout);}

}

Se un file PCM viene codificato o ascoltato in forma inversa, il risultato è che viene letto come rumorebianco ed il software MPEG produce il messaggio "....... Samples Clipped".

B.6 DIAGRAMMA CODIFICATOREViene riportato di seguito il diagramma di flusso del codificatore così come implementato viasoftware.Le operazioni seguite sono riportate solo riguardo al layer II in quanto al layer I sono speculari.

Page 275: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-26

Calcolo dimensione Frame

Frame in Slot

Finchè ci sonoCampioni PCM

Calcolo dimensione

Controllo se si deveusare bit di PADDING

Case Layer

I I I

ottenere i campionifrequenziali a sottobande

Filtro di analisi per

Calcolo Fattori di Scala

Se Joint_Stereo

Calcolo J_Samplee J_Scale

Case Modello Percettivo

Calcolo LTMIN Calcolo LTMINcon modello 2con modello 1

1 2

Calcola SCFSI

Se CRC Aggiunta CRC

Allocazione Bit

Quantizzazione eNormalizzazione

Scrittura Frame

SI

NO

SI

NO

Lettura 1152 Campioni PCM per canale

Fig. B.2 Diagramma di flusso del codificatore.

Page 276: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-27

B.7 DIAGRAMMA DECODIFICATORE

Finchè ci sono Frameda leggere

Cerca Syncword

Se ! Sync FINE

Case Layer

I I I

SCFSIFattori di Scala

HeaderLetturaBit_allocation

Se CRC Verifica Validità

For I=1 to 12

Lettura [2][3][32]Campioni Frequenziali

DenormalizzazioneDequantizzazione

Filtro di sintesi

Scrittura su filedei 96 campioni PCM

per canale

SI

NO

SI

NO

I = = 12

Leggi un Frame

Fig. B.3 Diagramma di flusso del Decodificatore

Page 277: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-28

Appendice CSOFTWARE DI

POST_PRODUZIONEC.1. SCOPO DELLE FUNZIONI ..........................................................................................................1C.2. SORGENTI LETTURA/SCRITTURA FRAME................................................................................2C.3. SORGENTI CONTEGGIO BIT ......................................................................................................5C.4. SORGENTI TRASFORMAZIONE IN DECIBEL............................................................................6

Con il termine software di post_produzione si indicano l'insieme delle funzioni per l'elaborazione delsegnale audio in forma compressa MPEG.Le funzioni riportate in questa appendice sono di uso generale, per elaborare il segnaleindipendentemente dalla tecnica.Le funzioni sono nei file di include:

.. rwframe.h

.. modalloc.h

.. acustic.h

C.1. SCOPO DELLE FUNZIONILe funzioni riportate si occupano della scrittura e lettura dei dati codificati FRAME a FRAME:

FUNZIONE DESCRIZIONE

int read_one_frame Legge un frame dal file MPEG passato come parametromemorizzando nelle rispettive strutture: header, bit_allocation,SCFSI, fattori di scala, campioni e PAD se ce ne sono.I campioni vengono dequantizzati e denormalizzati.Controlla la validità del CRC.

int write_one_frame Scrive il frame memorizzato nelle strutture di memoria centrale sulfile MPEG passato come parametro, rispettando la sintassidefinita nelle references 11172 rev 1.Gli unici dati significativi in ingresso sono la bit allocation e ilvalore dei campioni frequenziali, tutte le altre strutture vengonoricalcolate.I campioni vengono quantizzati e normalizzati.

int II_calc_used_bit_encoding Calcola il numero di bit necessari per registrare su file i dati dellestrutture di memoria centrale (che rappresentano il frame) passatecome parametro secondo la sintassi MPEG.

int II_dec_bit Ritorna il numero di bit che si guadagnano se si decrementa di unindice la sottobanda passata come parametro

double Num_Bytes_Per_Frame Calcola e ritorna la dimensione in byte del frame di codifica

double liv_scale_dB Fornisce il livello in dB del segnale di cui viene fornito il fattore discala.Il livello in dB è normalizzato al valore di 90,390 dB come daspecifiche

Page 278: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-29

double liv_sample_dB Fornisce il livello in dB del segnale di cui viene fornito valore delcampione di sottobanda.Il livello in dB è normalizzato al valore di 90,390 dB come daspecifiche

C.2. SORGENTI LETTURA/SCRITTURA FRAMEI listati completi delle funzioni che si occupano di leggere un frame, demultiplexare le strutture dati,dequantizzare e denormalizzare i campioni e compiere le operazioni inverse sono :

/************************************************************************************//* Scopo della seguente funzione: *//* Legge un frame dal bitstream passato come parametro *//* ritorna i seguenti valori: *//* not sync :(-1) *//* not Layer II :(-2) *//* error_protection :(-3) *//* nessun errore :(+Numero bit letti) *//* Riempie le strutture fr_ps, bit_alloc, scfsi, *//* scalefactor, sample96 con i relativi dati letti *//* da bitstream . *//* Sample1152 contiene i 1152 campioni denormalizzati e *//* dequantizzati organizzati in una struttura di *//* dimensione [2] [3] [12] [32] organizzata in modo *//* da poter essere utilizzata del decodificatore *//***********************************************************************************/int read_one_frame(bsi, fr_ps, bit_alloc, scfsi, scale_index, sample1152, frameNum)Bit_stream_struc *bsi;frame_params *fr_ps;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int scale_index[2][3][SBLIMIT];double FAR sample1152[2][3][SCALE_BLOCK][SBLIMIT];unsigned long frameNum;{typedef unsigned int SBB[2][3][SBLIMIT]; static SBB FAR *subband96; /* SUBBAND96 Campioni in frequenza (96) letti dal

file quantizzati e normalizzati */typedef double SMP[2][3][SBLIMIT];static SMP FAR *sample96; /*SAMPLE96 Campioni in frequenza (96) ottendo

deqantizzazione e denormalizzazione di subband96 */ static int init=0; int error_protection; int i, j, k, sync, ch;

if (!init) { subband96 = (SBB FAR * ) mem_alloc((long) sizeof(SBB), "sample"); sample96 = (SMP FAR * ) mem_alloc((long) sizeof(SMP), "fraction"); init = 1;}

sync = seek_sync(bsi, SYNC_WORD, SYNC_WORD_LNGTH);

if (!sync) { if (frameNum == 0) {

printf("Syncword NON trovata\n");printf("\nIl file in ingresso è terminato\n");return(-1);}

else{printf("\nFine Lettura frame dal file MPeG"); return(0);}}

decode_info(bsi, fr_ps); hdr_to_frps(fr_ps); error_protection = fr_ps->header->error_protection; if (error_protection) if (frameNum == 0) {printf("\n PROTEZIONE ERRORI NON supportata dalla presente versione"); return(-3);} else

Page 279: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-30

{printf("\nProcessing terminato al frame %d",frameNum); return(0);} fprintf(stderr, "<%4lu>", frameNum); fflush(stderr); switch (fr_ps->header->lay) { case 3: case 1: if (frameNum == 0)

{printf("\nLAYER I e III NON VALIDI per la presente versione"); return(-2);} else {printf("\nProcessing terminato al frame %d",frameNum); return(0);}

case 2: { II_decode_bitalloc(bsi, bit_alloc, fr_ps); II_decode_scale(bsi, scfsi, bit_alloc, scale_index, fr_ps); if (fr_ps->header->mode == MPG_MD_MONO)

{ duplicate_channel_unsint_1 (bit_alloc); duplicate_channel_unsint_1 (scfsi); duplicate_channel_unsint_3 (scale_index);}

if(frameNum < 2) WriteHdr(fr_ps, stdout); for (j = 0; j < SCALE_BLOCK ; j++ ) {

II_buffer_sample(bsi,*subband96, bit_alloc, fr_ps);II_dequantize_sample(*subband96, bit_alloc, *sample96, fr_ps);II_denormalize_sample(*sample96, scale_index, fr_ps, j>>2);if (fr_ps->header->mode == MPG_MD_MONO) duplicate_channel_double_3(*sample96);for (ch=0 ; ch < 2 ; ch++) for (k = 0 ; k < 3 ; k++ ) for (i = 0 ; i < SBLIMIT ; i++ )

sample1152[ch] [(int) (j/4)] [(j % 4)* 3 + k] [i] = (*sample96)[ch][k][i] ;

} /*end for*/} /*end case*/

} /*end switch*/ return(0);} /*end function*/

Page 280: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-31

/***********************************************************************************//* Scopo della seguente funzione: *//* Scrive un frame sul bitstream passato come parametro *//* ritorna -1 in caso di insuccesso. *//* Vengono ricalcolati scalefactor, scfsi sulla base dei *//* campioni passati in sample1152[...] *//* Ricostruisce i campioni normalizzando e quantizzando *//* sample1152[2][3][12][32]. *//* Scrive tutto il frame:header(fr_ps), bit_alloc, *//* scfsi, scalefactor, samplemono. *//* Sample1152 contiene i 1152 campioni da normalizzare *//* e quantizzare organizzati in una struttura di *//* dimensione [2] [3] [12] [32] organizzata in modo *//* da poter essere utilizzata del decoder. *//***********************************************************************************/int write_one_frame(bso, fr_ps, bit_alloc, scfsi, scale_index, subband1152, sample1152,

frameNum, scelta_tecnica, smr, diff_ba)Bit_stream_struc *bso;frame_params *fr_ps;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];unsigned int scale_index[2][3][SBLIMIT];unsigned int FAR subband1152[2][3][SCALE_BLOCK][SBLIMIT];double FAR sample1152[2][3][SCALE_BLOCK][SBLIMIT];unsigned long frameNum;int scelta_tecnica;double smr[2][SBLIMIT];float diff_ba[2][SBLIMIT];{typedef double JSBS[3][SCALE_BLOCK][SBLIMIT];static JSBS FAR *j_sample;

typedef unsigned int JSCL[3][SBLIMIT];static JSCL FAR *j_scale;

int k; int adb; static char init = 0;

if ((!init) && (fr_ps->header->mode == MPG_MD_JOINT_STEREO)) { j_sample = (JSBS FAR *) mem_alloc(sizeof(JSBS), "j_sample"); j_scale = (JSCL FAR *) mem_alloc(sizeof(JSCL), "j_scale"); init = 1;}

switch (fr_ps->header->lay) { case 3: case 1: { if (frameNum == 0)

{printf("\n LAYER I e III NON VALIDI per la presente versione"); return(-2);} else {printf("\n Processing terminato al frame %d",frameNum); return(0);}

} case 2: {

II_scale_factor_calc(sample1152, scale_index,fr_ps->stereo, fr_ps->sblimit); if(fr_ps->header->mode == MPG_MD_JOINT_STEREO) {

II_combine_LR(sample1152, *j_sample, fr_ps->sblimit); II_scale_factor_calc(j_sample, j_scale, 1, fr_ps->sblimit);

} /* si calcolano i valori per tutte le bande in joint*/

II_transmission_pattern(scale_index, scfsi, fr_ps); II_calc_new_bit_alloc(fr_ps, scfsi, bit_alloc, &adb, scelta_tecnica,

smr, diff_ba, scale_index); encode_info(fr_ps, bso); II_encode_bit_alloc(bit_alloc, fr_ps, bso); II_encode_scale(bit_alloc, scfsi, scale_index, fr_ps,bso); II_subband_quantization(scale_index, sample1152, *j_scale, *j_sample,

bit_alloc, subband1152, fr_ps); II_sample_encoding(subband1152, bit_alloc, fr_ps, bso); for(k = 0;k < adb ;k++ ) put1bit(bso,0);

} /*case*/ } /*switch*/ return(0); } /*end function*/

Page 281: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-32

C.3. SORGENTI CONTEGGIO BITRaccolta di funzioni per il calcolo della dimensione del FRAME del numero di bit disponibili perquantizzare i campioni di sottobanda.

/***********************************************************************************//* Scopo della seguente funzione : *//* Conta il numero di bit necessari per la scrittura delle *//* informazioni basandosi sui valori passati di allocation, *//* e scfsi usando la tabella alloc caricata in fr_ps->alloc *//***********************************************************************************/int II_calc_used_bit_encoding( bit_alloc, scfsi, fr_ps)unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;{ int i,ch; int n_bit = 0; al_table *alloc = fr_ps->alloc;

/*Calcola bit usati per: header,allocation,scfsi,scalefactor,samples*/ n_bit = 32; /*header*/ /* Modificare in rwframe.h la dimensione in bit degli ancillary data */ n_bit += ANCILLARY_DATA_BIT;

/*nella presente versione la protezione errori non è sopportata*/ /*if (fr_ps->header->error_protection) n_bit +=16;*/

/********************************************************************/*Per il calcolo dei bit occupati dalla presente codifica/*si è tenuto conto che :/* __ In caso di JOINT STEREO le bande basse sono su due canali/* mentre quelle sopra js_bound sono su un solo canale per sample/* e bit_alloc ma rimangono su due canali per scfsi e scalefactor/* __ In caso di STEREO e DUAL CHANNEL sia bit alloc che scfsi/* scalefactor e sample sono sempre su due canali./* __ In caso di MONO tutti i dati sono su di un solo canale/* __ Le bit_alloc sono allocate per tutte le subband mentre tutti/* gli altri dati ci sono solo se la relativa bit_alloc è !=0/*/* Tenere presente che se il modo è STEREO o DUAL o MONO il valore/* di js_bound viene posto da hdr_to_frps() (COMMON.C) uguale a sblim/* per JOINT_STEREO il valore dipende dal layer e da info.mode_ext/* ed è ottenuto dalla function js_bound() (COMMON.C)./*********************************************************************/

for(i=0 ; i<fr_ps->sblimit;i++) for (ch=0 ; ch<fr_ps->stereo ; ch ++) {if ((ch==0) || ((ch==1) && (i<fr_ps->jsbound)))

n_bit += ((*alloc)[i][0].bits); /*bit_alloc*/ if (bit_alloc[ch][i]) {

n_bit += 2 ; /*scfsi*/ n_bit += 6 * sfsPerScfsi[scfsi[ch][i]] ;/*scalefactors*/ if ((ch==0) || ((ch==1) && (i<fr_ps->jsbound))) n_bit += (((*alloc)[i][bit_alloc[ch][i]].group) * SCALE_BLOCK *

(*alloc)[i][bit_alloc[ch][i]].bits); /*sample*/}/*if bit_alloc*/

} /*for i*/ return(n_bit);}

Page 282: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-33

/***********************************************************************************//* Scopo della seguente funzione : *//* Calcola il numero di bit guadagnati se si decrementa di *//* uno la Bit_alloc [ch][i] *//***********************************************************************************/int II_dec_bit(i, bit_alloc, scfsi, fr_ps, ch)int i;unsigned int bit_alloc[2][SBLIMIT];unsigned int scfsi[2][SBLIMIT];frame_params *fr_ps;int ch;{ unsigned int dec = 0; unsigned int group_actual; unsigned int group_new; al_table *alloc = fr_ps->alloc;

/***************************************************************** /* Per come viene calcolato il numero di bit in decremento (positivo) /* a seconda del modo(mono,stereo,...) vedi il commento nella procedura /* precedente: calc_used_bit_encoding() /*****************************************************************/ if (bit_alloc[ch][i] != 1) {group_actual = (*alloc)[i][bit_alloc[ch][i] ].group; group_new = (*alloc)[i][bit_alloc[ch][i] - 1].group; dec = (int) SCALE_BLOCK*

((group_actual * (*alloc)[i][bit_alloc[ch][i] ].bits)- (group_new * (*alloc)[i][bit_alloc[ch][i] - 1].bits));}

else /*La bit_alloc diventa 0 elimino scfsi,scalef,sample*/ {dec = 2; /*scfsi*/ dec += 6 * sfsPerScfsi[scfsi[ch][i]]; /*scalefactors*/ dec += (int)(*alloc)[i][bit_alloc[ch][i]].group * SCALE_BLOCK *

(*alloc)[i][bit_alloc[ch][i]].bits ;}/*sample*/ return(dec); }

/************************************************************************************//* Scopo della seguente funzione : *//* Ritorna il numero di bytes che compongono il frame *//************************************************************************************/double Num_Bytes_Per_Frame(fr_ps)frame_params *fr_ps;{ layer *info = fr_ps->header; double bitsPerSlot = 8.0 , samplesPerFrame = 1152.0, avg_slots_per_frame;

avg_slots_per_frame = ((double)samplesPerFrame / s_freq[info->sampling_frequency]) * ((double)bitrate[(info->lay)-1][info->bitrate_index] / (double)bitsPerSlot);

return(avg_slots_per_frame);}

C.4. SORGENTI TRASFORMAZIONE IN DECIBELFunzioni usate per trasformare i valori di fattori di scala e dei campioni di sottobanda in deciBel.Queste trasformazioni sono usate principalmente per le tecniche di elaborazione che cercano di stimarei valori di SMR.

Page 283: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-34

/************************************************************************************//* Scopo della seguenta funzione : *//* Calcola il livello in dB corrispondente all'indice di *//* fattore di scala passato come parametro *//************************************************************************************/double liv_scale_dB(x)unsigned int x;{ return((double)(DB_NORM - 2 * ( x - 3 )));}

/****************************************************************//* Scopo della seguenta funzione : *//* Calcola il livello in dB corrispondente al *//* valore di campione di sottobanda *//* denormalizzato e dequantizzato *//* passato come parametro *//****************************************************************/double liv_sample_dB(s)double s;

{ unsigned int j; double r;

s = ( s>0 ? s : -s ); for (j=0 ; j<SCALE_RANGE-1 ; j++) if (s > multiple[j]) {r = liv_scale_dB(j-1); break;}if(j >= SCALE_RANGE-2) r= liv_scale_dB(SCALE_RANGE-2);return(r);

}

Page 284: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-35

BIBLIOGRAFIA

[Aarts] R. M. Aarts"Calculation of the loudness of loudspeakers during listening tests"Journal of the Audio Engineering Society, Vol.39 No.1, 1991.

[Abramson] N. Abramson"Information theory and coding"Mc Graw Hill, 1963.

[Angeleri] E. Angeleri"Esercizi di teoria della informazione e della trasmissione"Clup, 1990.

[Beerends] J. G. Beerends, J. A. Stemerdink"A perceptual audio quality measure based on a psychoacoustic soundrepresentation"Journal of the Audio Engineeering Society, Vol.40 No.12, 1992.

[Blesser] B. A. Blesser"Digitization of audio : A comprehensive examination of theory,implementation, and current practice"Journal of the Audio Engineeering Society, Vol.26 No.10, 1978.

[Cabot] R. C. Cabot"Audio measurements"Journal of the Audio Engineering Society, Vol.35 No.6, 1987.

[CCETT] CCETT, IRT, PHILIPS"MUSICAM: High quality audio bit-rate reduction system family for differentapplications"Presented at IEEE International Conference on Communications, 1990.

[CCIR-A] Raccomandazioni CCIRRec.601-1 "Encoding parametrers of digital television for studios"Volume XI, 1990.

[CCIR-B] Raccomandazioni CCIRRec.953 "Encoding parametres for digital audio"Volume X, 1990.

[Cosa] M. Cosa"Inquinamento da rumore"La Nuova Italia Scientifica, 1992.

[Dehery-A] Y. F. Dehery"Musicam source coding"AES 10th International Conference, 1990.

[Dehery-B] Y. F. Dehery, G. Stoll, L. v.d. Kerkhof"MUSICAM source coding for digital sound"EBU Review Technical No.237, 1989.

Page 285: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-36

[Dimino] G. Dimino"Standard per sequenze audiovisive (MPEG, H.261) audio"Documento interno, Centro Ricerche RAI Torino, 1993.

[Elmasian] R. Elmasian, R. Galambos, A. Bernheim, Jr."Loudness enhancement and decrement in four paradigms"The Journal of the Acoustical Society of America, Vol.67 No.2, 1980.

[Gilchrist] N. H. Gilchrist"Sampling-frequency sincronization with minimal delay"Journal of the Audio Engineering Society, Vol.36 No.5, 1988.

[Gold] B. Gold, L. Rabiner"Theory and application of digital signal processing"Prentice Hall, 1975.

[Green] D. M. Green"Additivity of masking"The Journal of the Acoustical Society of America, Vol.41 No.6, 1967.

[Humes] L. E. Humes, W. Jersteadt"Models of the additivity of masking"The Journal of the Acoustical Society of America, Vol.85 No.3, 1989.

[Kapust] R. Kapust"A human ear related objective measurement technique yields audible errorand error margin"AES 11th International Conference, 1991.

[Kroeker] E. J. Kroeker"Challenges in full-motion video/audio for personal computers"Presented at the 26th annual SMPTE, 1992.

[Lazzarin] R. Lazzarin , M. Strada"Elementi di acustica tecnica"CLUEP Padova, 1992.

[Lutfi] R. A. Lutfi"Additivity of simultaneous masking"The Journal of the Acoustical Society of America, Vol.73 No.1, 1983.

[Malcangi] M. Malcangi"Elaborazione digitale dei segnali"Gruppo Editoriale Jackson, 1986.

[Moore-A] B. C. J. Moore"An introduction to the Psychology of hearing"Third Edition, Harcourt Brace Jovanovich Publishers, 1978.

[Moore-B] B. C. J. Moore"Additivity of simultanous masking, revisited"The Journal of the Acoustical Society of America, Vol.78 No.2, 1985.

[MPEG-A] ISO - International Organization for StandardizationSoftware MPEG_Audio Vers.3.5ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1992.

[MPEG-B] ISO - International Organization for StandardizationReferences MPEG Audio 3-11172 rev.3ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1991.

Page 286: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-37

[Mùller] F. Mùller-Ròmer"Directions in digital audio broadcasting"Journal of the Audio Engineering Society, Vol.41 No.3, 1993.

[Paillard] B. Paillard, P. Mabilleau, S. Morissette"PERCEVAL: Perceptual evaluation of the quality of audio signals"Journal of the Audio Engineering Society, Vol.40 No.1, 1992.

[Penner-A] M. J. Penner"The coding of intensity and interaction of forward and backward masking"The Journal of the Acoustical Society of America, Vol.67 No.2, 1980.

[Penner-B] M. J. Penner, R. M. Shiffrin"Nonlinearities in the coding of intensity within the context of a temporalsummation model"The Journal of the Acoustical Society of America, Vol.67 No.3, 1980.

[Pohlmann] K. C. Pohlmann"Principles of digital audio"Third printing, Howard W.Sams & Co., 1987.

[Reza] F. M. Reza"An introduction to information theory"Mc Graw Hill, 1963.

[Rumsey] F. Rumsey"Megabytes per minute"Studio Sound, Ottobre 1991.

[Salton] G. Salton"Automatic Text Processing"Addison Wesley, 1989.

[Shafer] A. V. Oppenheim, R. W.Shafer"Elaborazione numerica dei segnali"Franco Angeli editore, 1981.

[Stoll-A] G. Stoll"Source coding for DAB and the evaluation of its performance: A majorapplication of the new ISO audio coding standard"Presented at the EBU First International Symposium of Digital AudioBroadcasting, 1992.

[Stoll-B] G. Stoll, Y. F. Dehéry L. v.d. Kerkhof"MUSICAM: A universal subband coding system"ISO/IEC/JTC1/SC29/WG11 MPEG_Audio, 1992.

[Theile] G. Theile, G. Stoll, M. Link"Low bit-rate coding of high-quality audio signals. An introduction to theMASCAM system"EBU Review Technical , No.230, 1988.

[Wiese] D. Wiese, G. Stoll"Bitrate reduction of high quality audio signals by modelling the ears maskingtheresholds"Presented at the 89th AES Convention, 1990.

[Zwicker] E. Zwicker, U. T. Zwicker"Audio engineering and psychoacoustics: matching signals to the final

Page 287: Mpeg Audio Codifiche Percettive - Compressione Audio

"Tesi di laurea Davide Cilano"

Pag. A-38

receiver, the human auditory system"Journal of the Audio Engineeering Society, Vol.39 No.3, 1991.