venerdì 15 gennaio 2010

Mp3


I file "mp3" non esistono.
Dire "un file mp3" è un po' come dire "una macchina" [1], o meglio, "una Fiat".
Sì, ma quale Fiat? Una vecchia 126 usata? Una Bravo nuova? Una 500 Abarth?
E quindi: quale tipo di mp3? Di quale qualità? CBR/320 o ABR/200 oppure VBR/v2 [2]?

E’ necessario prima fare un piccolo passo indietro per capire come funziona l’audio digitale in relazione agli mp3.
Semplificando [3], l’audio digitale vive in un computer sotto forma di file wav (Audio Wave), che è il formato “non compresso” con cui è possibile fare copie digitalmente perfette di un CD audio.

Un file mp3 invece è un file “compresso”, ovvero di dimensioni decisamente inferiori all’originale, ottenuto utilizzando un “codec” [4] mp3: quindi quando creiamo un file mp3 il codec comprime il file wav, riducendone le dimensioni, mentre quando ascoltiamo un file mp3 il codec decomprime il file, ricreando un file wav che viene poi riprodotto da altoparlanti o cuffie [5].

Mp3 è solamente un tipo di codec, ne esistono altri e si dividono in due categorie:
- a perdita di informazioni o "lossy" [6]
- senza perdita di informazioni o "lossless" [7]
Qui c’è una differenza fondamentale: decomprimendo un file “lossless” si ottiene un file WAV identico al file WAV originale (ma identico davvero, bit per bit), mentre decomprimendo un file “lossy” si ottiene un file WAV più o meno simile al file WAV originale, ma sicuramente non identico e di qualità “oggettiva” inferiore all’originale.

Della parte lossless ce ne occuperemo un'altra volta [8] - rimaniamo su quello che per varie ragioni, più o meno legittime, è diventato lo standard de facto dell'audio digitale compresso, cioè l'mp3.
Il passaggio dal codec in fase di creazione del file mp3 è il motivo per il quale ho scritto che “i file mp3 non esistono”: durante questa fase i vari parametri del possono essere impostati in maniera anche radicalmente diversa, ottenendo quindi come risultato differenti combinazioni di dimensioni e qualità sonora del file prodotto.

Una delle migliori spiegazioni che potete trovare in rete (in inglese) è qui

In sintesi, il tipo di codifica possibile con un codec mp3 come lame si sono evoluti da CBR a ABR a VBR [9].
La codifica CBR produce file più grandi della codifica ABR, che a sua volta produce file più grandi della codifica VBR, ma (a parità di dimensioni) la qualità di VBR è maggiore di ABR che è maggiore di CBR.

A sua volta ogni tipo di codifica può essere effettuato con una diversa impostazione numerica del bitrate: per usi musicali si parte da 128 per arrivare al massimo possibile di 320, per usi non musicali è accettabile anche un bitrate inferiore a 128.
Nel caso dei VBR al posto della specifica numerica del bitrate si usano dei preset denominati, a partire dal migliore, v0, v1, v2, etc.

Quando sono nati, gli mp3 CBR/128 erano quelli di uso più comune ed erano classificati come "CD-like quality" [10], e questo tipo di file mp3 ha molto contribuito a costruire una cattiva fama per tutto il formato.

Allo stato attuale, il file mp3 di migliore qualità ottenibile è CBR/320, che è anche il file mp3 di dimensioni maggiori.
Un file VBR/v0 ha praticamente la stessa “qualità percepita” di un CBR/320, ma è di circa il 25% più piccolo - e questo è ancora un vantaggio non da poco se dovete mettere gli mp3 in un player portatile!
In realtà, anche un VBR/v2 è praticamente indistinguibile dal CBR/320, ed ha dimensioni inferiori di circa il 45% - insomma, è l'ideale per il suddetto player: usando il VBR/v2 potete metterci il doppio delle canzoni che ci starebbero usando i CBR/320, senza nessuna perdita qualitativa udibile.

L'immagine che apre l'articolo, tratta dal link precedente, è un riassunto grafico di quanto ho cercato di spiegare fin'ora.

Per quanto riguarda invece il confronto tra mp3 e file wav originale (o cd audio), anche qui esistono diversi test ABX (o doppio cieco) [11] che dimostrano l’assoluta trasparenza – cioè il fatto che all’ascolto non esistono differenze tali da permettere un’identificazione delle due diverse sorgenti – dei file CBR/320 e VBR/v0.
Fare un test in doppio cieco con l’aiuto di Foobar2000 è una cosa semplicissima – provate, i risultati vi stupiranno!

Rimarrebbe da parlare della pratica della transcodifica – anche per questa vi rimando alla nota [8]


Note e links:
La maggior parte del supporto documentale a quanto dico qui viene dal wiki di HydrogenAudio, una delle più rispettate fonti di informazione per la tecnologia audio (purtroppo è solo in inglese.)

[1] L’analogia con la macchina vale più per “un file audio”, dove la marca corrisponde alla tipologia del file audio: mp3, flac, etc. – magari ci torno sopra più avanti.

[2] Sono tutti spiegati più avanti, ma non sto semplicemente dando i numeri… andate anche alla nota 9…

[3] Mi riferisco principalmente a Windows, per Mac e Linux possono esserci differenze nei formati (AIFF ed AU rispettivamente, ma ce ne sono altri)

[4] Codec: coder-decoder, cioè un dispositivo hardware o software che si occupa di codificare e/o decodificare digitalmente un segnale perché possa essere salvato su un supporto di memorizzazione o richiamato per la sua lettura.

[5] Ho detto semplificando, quindi qui non parliamo del percorso che il file wav deve fare per arrivare ad altoparlanti o cuffie, cioè fondamentalmente passare da un convertitore DAC.
Ma di ADC e DAC magari ne parliamo un’altra volta, il discorso qui sarebbe legato al passaggio da analogico a digitale e viceversa, è un altro argomento!
Le definizioni comunque sono:
ADC e DAC: convertitore analogico a digitale e digitale ad analogico - Analog to Digital Converter (ADC), è un circuito elettronico in grado di convertire un segnale analogico con andamento continuo (ad es. una tensione) in una serie di valori discreti. Il convertitore Digital to Analog Converter (DAC) compie l'operazione inversa.

[6] Lossy sono i codec come ad esempio mp3, ogg vorbis, wma, aac, acs

[7] Lossless sono i codec come ad esempio FLAC, ALAC, DTS

[8] A questo punto non potrete scampare alla futura seconda parte di questo post, FLAC vs. mp3 :)

[9] CBR: constant bit rate, cioè bit rate fisso
ABR: average bit rate, cioè bit rade medio
VBR: variable bit rate, cioè bit rate variabile
Il bit rate (sempre semplificando) è il numero di campioni memorizzati per ogni secondo di musica, quindi usando CBR il numero è fisso per ogni secondo della canzone, usando VBR il numero varia in funzione delle parti della canzone: se c’è silenzio o ci sono poche informazioni musicali, il codec riduce il bitrate, e lo alza nelle situazioni opposte.
L’ABR è una via di mezzo tra le due precedenti impostazioni, ma non è efficiente come il VBR né in termini di qualità né in termini di dimensioni.

[10] In realtà un mp3/128 è abbastanza facilmente distinguibile dal file wav originale in un test ABX cieco.

[11] Il test ABX o doppio cieco consiste nel paragonare due fonti audio conosciute (A e B) ad una terza (X) selezionata di volta in volta a caso tra le prime due.
Il componente ABX COMPARATOR di Foobar2000 permette a chiunque di svolgere questo test per paragonare diversi tipi di file audio.

4 commenti:

ReAnto ha detto...

O-O
...ciao

allelimo ha detto...

Benvenuto ReAnto!
Però non ho capito il significato del tuo O-O...

ReAnto ha detto...

shocked! Era così per ridere
Post più che esauriente . grazie

allelimo ha detto...

Ah ok, grazie per la spiegazione - quella "faccina" lì non l'avevo mai vista!