Warum ist ein von einem dekodierten MP3 codierter FLAC größer als der MP3?


13

Um genauer zu sein als im Titel, nehmen wir an, ich habe eine MP3-Datei mit 320 kbps. Wenn ich es dekomprimiere, sollten logischerweise alle Daten mit Ausnahme von ungefähr 320 Kilobit pro Sekunde Audio redundante Daten sein, die wegkomprimiert werden können. Wenn ich die dekomprimierte Datei in FLAC oder einen anderen verlustfreien Codec codiere, warum ist sie dann so viel größer?

Ist es theoretisch möglich, die MP3-Audioquelle von einem dekomprimierten WAV verlustfrei wiederherzustellen? (Ich weiß, dass die MP3 selbst verlustbehaftet ist. Ich frage, ob es möglich ist, ohne weiteren Verlust neu zu codieren .)

EDIT: Lassen Sie mich die verwandte Frage und die Gründe dahinter klären. Angenommen, ich habe eine WAV, die aus einer MP3-Datei dekomprimiert wurde (und nehme an, ich habe die MP3 selbst aus irgendeinem Grund nicht). Wenn ich keine Qualität mehr verlieren möchte, kann ich sie mit FLAC oder einem anderen verlustfreien Encoder neu codieren und eine größere Datei erhalten, um die gleiche Qualität beizubehalten . Oder ich kann es erneut in MP3 kodieren und dieselbe Größe wie das Original erhalten, aber mehr Daten verlieren. Offensichtlich ist keiner dieser Fälle ideal. Ich kann entweder die Originalgröße oder die Originalqualität haben, aber nicht beide (ich meine die Qualität der Original-MP3, nicht die der verlustfreien Originalquelle). Meine Frage ist: Können wir beides bekommen? Ist es theoretisch möglich, die verlustbehafteten komprimierten Daten aus den verlustbehafteten dekomprimierten Daten wiederherzustellen, ohne noch mehr zu verlieren?

Wenn es möglich ist, könnte ich mir einen verlustfreien Kompressionsalgorithmus vorstellen, der das Audio mit FLAC komprimiert. Anschließend wird das Audio auch auf Anzeichen einer früheren verlustbehafteten Komprimierung überprüft und bei Erkennung verlustfrei in die ursprüngliche verlustbehaftete Datei komprimiert. Dann bleibt die jeweils kleinere Datei erhalten.


Hier ist meine Lieblingsanleitung zum Rippen und Codieren von Audio. Viel

2
Der Decoder füllt die 320kb bis 1411kb nicht einfach mit bedeutungslosen Bits auf, die Bitrate einer PCM-Datei ergibt sich aus dem Bit-per-Sample-Wert, der Anzahl der Kanäle und der Abtastrate. Für Standard-CD-Audio ist dies (2 Kanäle) * (Abtastrate 44,1 kHz) * (16 Bit pro Abtastung) = 1411 kbit / s.
Skelly

Einfach, MP3 ist komprimiert, FLAC ist nicht komprimiert. Beim Konvertieren werden die MP3-Daten dekomprimiert.
Moab

2
Das ist falsch. FLAC ist ein Audiokomprimierungsformat.
Ryan C. Thompson

Antworten:


31

Der Grund dafür, dass der FLAC größer ist als der MP3-Wert derselben Daten, liegt darin, dass sie unterschiedlich codiert sind. :) MP3 kodiert nur Wahrnehmungsinformationen, während FLAC jeden einzelnen Datenpunkt in einem kompakteren Format speichert.

  • Das Konvertieren eines WAV in einen FLAC entspricht dem Konvertieren eines BMP in einen PNG.
    • Gleiche exakte Pixel, aber verlustfrei komprimiert wie eine ZIP-Datei in eine kleinere Größe.
  • Das Konvertieren von WAV in MP3 entspricht dem Konvertieren von BMP in JPEG.

In ähnlicher Weise speichert MP3 nur Anweisungen zum Erzeugen von Wellen, die, wenn sie zusammengefügt werden, dem Original ähneln. Der Unterschied zwischen dem echten Signal und dem erzeugten Signal (dem Fehlersignal) besteht jedoch in zufälligen verrauschten Artefakten wie JPEG-Zacken . Wenn Sie dies dann in einem perfektionistischen Format wie FLAC speichern, müssen all diese Unebenheiten gespeichert werden, und es ist schwieriger, zufälliges Rauschen verlustfrei zu komprimieren, sodass die Datei größer wird. (Wirklich zufälliges Rauschen ist nicht komprimierbar. Wenn Sie eine Datei verlustfrei komprimieren, beseitigen Sie redundante Wiederholungsmuster und lassen sie eher wie zufälliges Rauschen aussehen.)

Ich wette, wenn Sie JPEG in PNG konvertieren, werden Sie die gleiche Vergrößerung wie beim Konvertieren von MP3 in FLAC bemerken, da der verlustfreie Perfektionisten-Codec sich jedes kleine zackige Artefakt merken muss, das nicht im Original-BMP enthalten war.

Diese Analogie ist nicht perfekt, da Audio eher wie ein Foto als ein Liniendiagramm ist, aber es hilft, die Idee zu vermitteln:

Ursprüngliche BMP-Größe: 29 kB

Blaue Punkte in PNG-Form

PNG-Größe: 629 B

Blaue Punkte in JPEG-Form mit Zacken

JPEG-Größe: 1,7 kB

Blaue Punkte mit Zacken, die in PNG umcodiert wurden

Aus JPEG erstelltes PNG: 6,2 kB


3
Sobald eine Datei in JPG konvertiert wurde, gehen natürlich Daten verloren und können nicht durch Konvertieren in PNG wiederhergestellt werden. Wenn der FLAC / PNG mehr Daten enthält, sind viele davon fiktiv.
Pavium

1
Ja. Es gehen aussagekräftige Daten verloren und es werden fehlerhafte Daten erstellt.
Endolith

1
Dies wird in den Beispieldiagrammen des Endolithen deutlich.
hplbsh

1
Dies ist eine erstaunlich gründliche Antwort. Gut gemacht!
Cowgod

1
Du hast recht. Ich weiß nicht, was ich gedacht habe.
Kevin Panko

2

Wenn Sie eine MP3-Datei dekodieren, unabhängig von der Bitrate, erhalten Sie Standard-PCM-Audio mit 1411 kbit / s / 44100 Hz und 16 Bit (oder unabhängig von der Quelle), das alle wahrnehmbaren und nicht wahrnehmbaren Auswirkungen des verlustbehafteten Kodierungsprozesses aufweist. Dieses Format ist für die Wiedergabe und Wiedergabe erforderlich Beim Codieren / Neucodieren werden alle Dateien eines Codecs dekomprimiert, wenn Sie sie auf Ihrem Computer, MP3-Player usw. wiedergeben.

Dem FLAC-Encoder ist es egal, ob das komprimierte Audio von einer dekodierten MP3-Datei oder einer brandneuen CD stammt. Er reduziert einfach die Größe der Quelldatei, ohne die Audiodaten zu ändern, wodurch eine vollständige Wiederherstellung der Quelle möglich wird. ein verlustfreier Prozess.

Eine FLAC-Datei aus einer MP3-Datei klingt genauso wie die MP3-Datei, eine FLAC-Datei aus einem CD-Track genauso wie die CD.


0

Zur Beantwortung Teil zwei, wenn Sie in eine WAV vom MP3 konvertieren zurück, dann ein lossless Encoder wählen, Sie sollten eine identische Qualität Datei, wenn Sie fertig sind.

Um festzustellen, warum der FLAC größer ist als der MP3-Player, verwenden Sie eines der stärker komprimierten Formate, dekomprimieren es und komprimieren es dann mit einem weniger effizienten Komprimierungsprogramm (allerdings mit einer höheren Wiedergabequalität).

Es ist wie zu fragen, warum das Konvertieren einer JPG in eine PNG größer wird - Sie dekomprimieren die Datei [teilweise] und komprimieren sie dann auf verlustfreie Weise erneut. FLAC ist wie PNG nicht für den Speicherplatz optimiert , sondern für die Qualität .


FLAC (und PNG) sind verlustfrei, daher macht es keinen Sinn zu sagen, dass diese für die Qualität optimiert sind.
Joakim Elofsson

3
@Joakim: verlustfrei == maximale Qualität, daher werden verlustfreie Formate per Definition auf Qualität optimiert .
Quack Quijote

2
Das ist per definitionem mein Punkt, es gibt also keine Optimierung. Wenn die Definition maximale Qualität ist, gibt es nichts zu optimieren
Joakim Elofsson

0

mp3 setzt voraus, dass ein Decoder abspielbar ist. Das Ergebnis des Decoders ist eine Annäherung an den Original-Track (normalerweise von einer CD). Der Decoder fügt also Daten hinzu, um ihn abspielbar zu machen (und dies sind keine Unsinnsdaten). Die resultierende Annäherung hat die gleiche Bitrate wie die ursprüngliche Spur. Ohne die Dekodierung des MP3s ergeben die Informationen keinen Sinn, können also nicht in etwas anderes konvertiert werden (es sei denn, die Kodierung ist sehr ähnlich, wie Stereo-MP3 zu 2X Mono-MP3). Und FLAC und MP3 ist nicht einmal annähernd ähnlich. Beim Dekodieren eines FLAC ist das Ergebnis keine Annäherung an die in FLAC kodierten Originaldaten, aber es ist genau dasselbe.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.