Perché un FLAC è codificato da un MP3 decodificato più grande di un MP3?


13

Per essere più precisi rispetto al titolo, supponiamo di avere un file MP3 da 320 kbps. Se lo decomprimo, logicamente, tutti i dati ad eccezione di circa 320 kilobit per ogni secondo di audio dovrebbero essere dati ridondanti, in grado di essere compressi. Quindi, quando codifico il file decompresso in FLAC o in qualsiasi altro codec senza perdita di dati, perché è molto più grande?

In una nota correlata, è teoricamente possibile recuperare senza perdita l'audio mp3 sorgente da un wav decompresso? (So ​​che l'mp3 stesso è in perdita. Sto chiedendo se è possibile ricodificare senza ulteriori perdite.)

EDIT: Vorrei chiarire la domanda correlata e la logica alla base. Supponiamo che io abbia un wav decompresso da un file MP3 (e supponiamo che non abbia l'mp3 stesso per qualche motivo). Se non voglio perdere più qualità, posso ricodificarlo con FLAC o qualsiasi altro codificatore lossless e ottenere un file più grande solo per mantenere la stessa qualità. Oppure, posso ricodificarlo nuovamente in mp3 e ottenere le stesse dimensioni dell'originale ma perdere più dati. Ovviamente, nessuno di questi casi è l'ideale. Posso avere la dimensione originale o la qualità originale, ma non entrambe (intendo la qualità dell'mp3 originale, non l'origine senza perdita originale). La mia domanda è: possiamo ottenere entrambi? È teoricamente possibile recuperare i dati compressi con perdita dai dati decompressi con perdita, senza perdere ancora di più?

Se è possibile, potrei immaginare un algoritmo di compressione senza perdita di dati che comprime l'audio con FLAC. Quindi esegue anche la scansione dell'audio alla ricerca di eventuali segni di compressione con perdita precedente e, se rilevato, lo ricomprime senza perdita di dati nel file con perdita originale. Quindi mantiene qualsiasi file più piccolo.


ecco la mia guida preferita per il ripping e la codifica dell'audio. divertiti, è un'ottima lettura: mp3.radified.com

2
Il decodificatore non riempie semplicemente i 320 kb fino a 1411 kb con bit privi di significato, il bitrate di un file PCM è dato dal valore bit per campione, dal numero di canali e dalla frequenza di campionamento. Per l'audio CD standard questo è (2 canali) * (frequenza di campionamento 44,1 KHz) * (16 bit per campione) = 1411 kbps.
skelly,

Semplice, MP3 è compresso, FLAC non è compresso. Durante la conversione, decomprime i dati MP3.
Moab,

2
Questo è sbagliato. FLAC è un formato di compressione audio.
Ryan C. Thompson,

Risposte:


31

Il motivo per cui FLAC è più grande dell'MP3 degli stessi dati è perché codificano in modo diverso. :) MP3 codifica solo le informazioni percettive, mentre FLAC memorizza ogni singolo granello di dati, solo in un formato più compatto.

  • Convertire un WAV in un FLAC è come convertire un BMP in un PNG.
    • Stessi pixel esatti, ma compressi senza perdita di dati come un file ZIP in dimensioni inferiori.
  • Convertire un WAV in un MP3 è come convertire un BMP in un JPEG.

Allo stesso modo, MP3 memorizza solo le istruzioni per generare increspature che, se sommate, sembrano un po 'come l'originale. Ma la differenza tra il segnale vero e il segnale generato (il segnale di errore) consiste in artefatti rumorosi casuali, come jaggies JPEG . Quando poi lo memorizzi in un formato perfezionista come FLAC, è necessario memorizzare tutti quei jaggies e il rumore casuale è più difficile da comprimere senza perdita, quindi aumenta la dimensione del file. (Il rumore veramente casuale è incomprimibile. Quando comprimi un file senza perdita di dati, stai eliminando schemi ripetuti ridondanti e rendendolo più simile al rumore casuale.)

Scommetto che se converti JPEG in PNG vedrai lo stesso tipo di aumento delle dimensioni che vedi quando converti MP3 in FLAC, dal momento che il codec perfezionista senza perdite deve ricordare ogni piccolo jaggy e artefatto che non era nel bmp originale.

Questa analogia non è perfetta, poiché l'audio è più simile a una foto che a un diagramma al tratto, ma aiuta a far passare l'idea:

Dimensione BMP originale: 29 kB

Puntini blu in forma PNG

Dimensione PNG: 629 B.

Puntini blu in formato JPEG con jaggies

Dimensioni JPEG: 1,7 kB

Puntini blu con jaggies ricodificati in PNG

PNG creato da JPEG: 6.2 kB


3
Ma ovviamente una volta che un file viene convertito in JPG, i dati vengono persi e non possono essere recuperati convertendoli in PNG. Se ci sono più dati nel FLAC / PNG, molti di essi saranno fittizi.
padiglione

1
Sì. I dati significativi vengono persi e vengono creati dati errati.
endolith

1
Ciò è chiaramente illustrato nei diagrammi di esempio di endolith.
hplbsh,

1
Questa è una risposta incredibilmente completa. Bel lavoro!
Cowgod,

1
Hai ragione. Non so cosa stavo pensando.
Kevin Panko,

2

Quando decodifichi un MP3, indipendentemente dal bitrate, ottieni audio PCM standard 1411kbps / 44100Hz 16 bit (o qualunque sia la fonte) che ha tutti gli effetti evidenti e non evidenti del processo di codifica con perdita, questo formato è richiesto per la riproduzione e codifica / ricodifica, qualsiasi file di qualsiasi codec viene decompresso quando lo riproduci sul tuo computer, lettore MP3, ecc.

Il codificatore FLAC non si preoccupa se l'audio che sta comprimendo proviene da un MP3 decodificato o da un CD nuovo di zecca, ridurrà semplicemente la dimensione del file sorgente senza alcuna modifica ai dati audio, rendendo possibile un pieno recupero della fonte, un processo senza perdite.

Un file FLAC creato da un MP3 suonerà esattamente come un MP3, un file FLAC creato da una traccia CD suonerà esattamente come il CD.


0

Per rispondere alla seconda parte, se ti converti di nuovo in un WAV dall'MP3, quindi scegli un codificatore senza perdita, al termine dovresti avere un file di qualità identica.

Per quanto riguarda il motivo per cui il FLAC è più grande dell'MP3, stai prendendo uno dei formati più compressi, decomprimendolo, quindi ricomprimendolo in uno strumento di compressione meno efficiente (anche se con una qualità di riproduzione superiore).

È un po 'come chiedere perché la conversione di un JPG in un PNG lo rende più grande: stai decomprimendo [parzialmente] il file, quindi ricomprimendolo in modo senza perdita di dati. FLAC, come PNG, non è ottimizzato per lo spazio , ma per la qualità .


FLAC (e PNG) sono senza perdita di dati, quindi dire che quelli sono ottimizzati per la qualità non ha senso.
Joakim Elofsson,

3
@Joakim: lossless == massima qualità, quindi i formati lossless sono ottimizzati per qualità per definizione .
Quack Quixote,

2
questo è il mio punto, per definizione, quindi non c'è ottimizzazione. se la definizione è massima qualità, allora non c'è nulla da ottimizzare
Joakim Elofsson,

0

mp3 richiede che un decodificatore sia riproducibile, il risultato del decodificatore è un'approssimazione della traccia originale (di solito da un CD), quindi il decodificatore aggiunge i dati per renderlo riproducibile (e non si tratta di dati senza senso). L'approssimazione risultante ha ottenuto lo stesso bitrate della traccia originale. Senza decodificare l'mp3 l'informazione non ha senso, quindi non può essere convertita in nient'altro (a meno che non sia una codifica molto simile, come stereo-mp3 in 2X mono-mp3). E FLAC e mp3 non sono nemmeno vicini a simili. Quando decodifica un FLAC il risultato non è un'approssimazione dei dati originali codificati in FLAC, ma è esattamente lo stesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.