Newsgroup: it.comp.musica
Titolo: Prove di quantizzazione, dither e... mp3 (era: Oltre il cd)

quantizzazione.
Ciao Marco.
Oltre a quello che ti ho detto in un altro messaggio, puoi provare a
fare la seguente... prova. Anzi aggiorno i lnome del thread, e magari
aggiungo un paio di altre prove, per chi è interessato e vuole
proseguire la discussione.
Allora, seleziona alcuni secondi da un brano musicale regitrato a 44,1
kHz e 16 bit e salva.
Con un editor che consenta di farlo, riduci a 8 bit la risoluzione
(non ti dico di disabilitare eventuali dithering, perché con una
riduzione simile non cambierebbe praticamente nulla).
Ora riconverti a 16 bit.
Ascolta i due file e noterai che il secondo differisce dal primo per
un notevole fruscio di fondo, appunto il rumore di (ri)quantizzazione.
Se l'editor te lo consente, prova a sottrarre l'una dall'altra le due
forme d'onda (se hai un editor multitraccia come Cool Edit Pro, puoi
importare i due file su due tracce diverse, invertire una delle due e
mixarle). Otterrai un file di puro rumore.
Con questo sistema è interessante anche vedere e ascoltare che cosa
l'mp3 toglie a un file audio. In questo caso parti sempre dal primo
file e codificalo in mp3, diciamo a 128 bit/s (quella che viene
chiamata la qualità CD; puoi anche provare le due modalità stereo e
joint-stereo, se sei curioso). Poi decodificalo e riportalo in formato
RIFF-WAVE. A questo punto, come nel caso precedente, sottrai il file
ottenuto da quello originale e... stavolta non udrai puro rumore, ma
anche parecchio segnale mescolato al rumore stesso.
E ora il "dithering". Questo lo provo mentre scrivo. Ecco qui.
Estraggo 30 secondi da un brano. La massima potenza RMS dei due
canali, misurata con cool Edit Pro, ha i valori -7,27 e -7,03. Ora,
col dithering abilitato, amplifico di -95 dB. La massimA potenza
dovrebbe finire a -102,27 e -102,03 dB, o meglio a -96 dB, dato che,
vista la risoluzione a 16 bit, più in basso non può andare. Eppure
Cool Edit mi dice che vale ancora -92,6 e -92,56 dB, quindi che è al
di sopra della soglia dei 96 dB. Ora amplifico di 48 dB (il massimo
che Cool Edit mi consente) e poi di altri 28 dB e ascolto. Il
VU-meter, che misura i valori di picco, oscilla di pochissimo intorno
ai -13,5 dB. Sono decibel di quasi tutto rumore; eppure percepisco
netatmente gli strumenti e perfino capisco le parole di chi canta.
Ciao.
Gian Carlo

 netatmente gli strumenti e perfino capisco le parole di chi canta.
...Questa proprio non l'ho capita...
Potremmo fare un passo indietro e speigare anche che cos'è il valore RMS?
Cioè... Nella mia ignoranza capisco che è qualcosa riferito al "volume"
effettivo,
potenza, etc... Ma non ne conosco la definizione..
Ad esempio: perchè viene indicato con un valore negativo?
Misteri dell'Audio...
Ciao Ciao.

Ad esempio: perchè viene indicato con un valore negativo?
Perché, come tutti i valori in dB, è calcolato rispetto a un
riferimento, assunto per convenzione pari a 0 dB. In questo caso il
riferimento è la potenza efficace massima che l'onda può avere (il
massimo dei massimi): tutte le altre potenze efficaci sono perciò
negative, perché inferiori a quella.
Ciao.
Gian Carlo

Per i primi tre esperimenti, niente di strano.
Per il terzo... fatta la prova, trovato l'inganno!!!
; )))
I programmi di elaborazione sonora più recenti elaborano tutti il segnale a
24 bit. Per questa ragione abbassando il volume di -96 dB e poi rialzandolo
anche di 96 dB ottengo il risultato che hai detto: ogni campione è stato
considerato a 24 bit e le operazioni eseguite hanno portato i valori di
picco a -96 dB in una scala che va comunque fino a -144 dB.
Ti propongo questa ulteriore prova a conferma delle mie affermazioni. Io
l'ho già fatta con Wavelab e funziona.
1) Normalizza il tuo segnale a 0 dB
2) Abbassa il volume del segnale di 150 dB, anche per passi successivi (ad
esempio, -60, -60, -30)
3) Normalizza il segnale a 0 dB
Al termine del procedimento la normalizzazione avrà avuto come risultato un
segnale completamente nullo.
Questo conferma che l'esito della tua prova è dovuto al fatto che
l'elaborazione viene fatta internamente a 24 bit.
E ora, un'altra prova di conferma.
Se il tuo programma lo permette disattiva l'elaborazione interna a 24 bit,
impostandola a 16 bit (in Wavelab 3.0 devi andare su Options -> Preferences,
scheda File, opzione Create 16 bit temporary files).
Ora procedi come segue:
1) Normalizza il tuo segnale a 0 dB
2) Abbassa il volume del segnale di 96 dB, anche per passi successivi (ad
esempio, -60, -36)
3) Normalizza il segnale a 0 dB.
Anche in questo caso si ottiene un segnale completamente silenziato.
Questo spiega in modo inconfutabile che l'anomalia che tu evidenziavi
sottolinea ancor più la differenza tra un campionamento a 16 bit e uno a 24
bit.
    > Ciao.
    > Gian Carlo
Ciao.
Gemini.

Aggiungo un'altra prova che rende il campionamento a 24 bit assolutamente
impareggiabile a quello a 16 bit.
1) Dither a 24 bit attivato (elaborazione interna a 24 bit)
2) Normalizzo il segnale a 0 dB
3) Abbasso il volume di 96 dB
4) Normalizzo il segnale a 0 dB
Al termine del procedimento sembra non essere successo nulla!
Come mai?
La ragione č semplice: SEMBRA!
Abbassando il volume di 96 dB su una scala di 144 dB, del file originale ho
perso i primi 144 - 96 = 48 dB di dinamica. Ho perso cioč le pressioni
acustiche piů deboli, quelle sotto i -48 dB, come se avessi filtrato
attraverso un noise gate impostato a -48 dB.
Riascoltiamo il file.
Un momento! Ascoltando un po' meglio si sente (appena) un rumore di fondo
che nel file originale non c'era!
Ma se la scalatura di volumi ha fatto da noise gate, non dovrebbe esserci
meno rumore (e magari anche meno suono) che nel file originale?
Sě, perň la riscalatura effettuata con la normalizzazione (aumentando di
nuovo il volume si otterrebbe il medesimo risultato) ha portato il rumore di
quantizzazione (posto a -144 dB) fino a fargli raggiungere un livello di -48
dB, piů che percepibile anche da un orecchio non proprio sopraffino.
Ciao.
Gemini.

 col dithering abilitato, amplifico di -95 dB. La massimA potenza
cosa intendi per "col dithering abilitato" ?? dov'è che lo dovrei
impostare??
Ah, secondo me il CoolEdit misura in modo errato i valori RMS
[Test fatti su WaveLab, SoundForge e CoolEditPro sull'analisi di un medesimo
file audio, hanno riportato valori praticamente uguali di Ampiezza max RMS
per WaveLab e SoundForge, e circa 3dB maggiori per CoolEdit]
ciao
stef

 che nel file originale non c'era!
se vuoi fare questi esperimenti, prova ad usare un file che parte da max amp
e sfuma a -inf (teorico) dB, praticamente applica un fade out sui 30 secondi
test che usi, cosě apprezzerai molto meglio il risultato dell'esperimento.
stef

 Ciao.
Grazie 1000 per la pazienza...
Ciao  -) .

per WaveLab e SoundForge, e circa 3dB maggiori per CoolEdit]
Credo dipenda da che cosa viene assunto come riferioemnto per 0 dB.
Sound Forge un'onda quadra di ampiezza massima; Cool Edit una
sinsuoide di ampiezza massima. La prima ha proprio una potenza RMS di
3 dB superiore alla seconda.
CIao.
Gian Carlo

picco a -96 dB in una scala che va comunque fino a -144 dB.
...infatti Cool Edit usa 32 bit (disalbilitabili, mi pare) per le
operazioni interne, ma io ho salvato il file a 16 bit, dopo
l'attenuazione e sono partito da questo per l'amplificazione.
Ciao.
Gian Carlo

sopraffino.
Nel tuo caso il rumore che senti č quello di quantizzazione piů il
dithering (a meno che questo sia confinato in gamme di frequenze poco
udibili). Ma hai anche piů segnale, rispetto al caso in cui il
dithering non fosse presente.
Ciao.
Gian Carlo

quantizzazione del file audio?? ...
Sě. 0 dB č il valore che non si dovrebbe superare per evitare di
tosare l'onda (produrre un clipping).
Ciao.
Gian Carlo

 tosare l'onda (produrre un clipping).
Ma.... Quindi ogni quantizzazione (si scrive cosě?), ha un proprio "delta"
di valori, giusto?
16 bit: 6*16=96 dB ===> -96/0 dB  ;
24 bit: 6*24=144 dB ===> -144/0 dB  ;
Giusto??