Warum ist die Konvertierung von MP3 in WAV (PCM) verlustfrei?

2588
Robin Hood

Ich verstehe, dass beim Konvertieren zwischen Audioformaten, bei denen keine Stream-Codierung erforderlich ist, wie beim Konvertieren zwischen WAV (PCM), AIFF, FLAC, ALAC, WMA Lossless usw., der Vorgang normalerweise verlustfrei ist, da der PCM-Audiostrom gerade kopiert wird zum neuen Behälter. Je nach Containertyp wird möglicherweise ein Kompressionsalgorithmus durchlaufen, um Speicherplatz zu sparen, es sind jedoch immer noch Bit für Bit identische Daten. Sie können dasselbe auch mit einer MP4-Datei (AAC) tun, indem Sie den AAC-Audiostream in eine MKA-Container-Datei kopieren. Dies ist alles verlustfrei, da der Audiostrom nicht neu codiert wird.

Ich verstehe, dass beim Konvertieren zwischen Formaten wie dem zuvor aufgelisteten WAV (PCM), ALAC, FLAC usw. in ein Format, das die Codierung des Audiostroms nicht unterstützt, die Konvertierung eine Umcodierung erfordert. Beim Konvertieren in Formate wie MP3, MP4 (AAC), OGG (Vorbis), WMA Lossy usw. wird der Quell-Audiostrom neu codiert, und dabei werden Daten verworfen. Die neue Datei wird von schlechterer Qualität sein.

Ich kann meinen Kopf nicht herumwickeln, warum das Konvertieren von MP3 in WAV (PCM) verlustfrei ist (oder ALAC, FLAC usw.). Der Audiostrom ist neu codiert, so dass der neue Audiostrom nicht von schlechterer Qualität als der Audiostrom der MP3 ist. Kläre mich auf.

6
Im Allgemeinen wird es nur dekodiert und dann als unkomprimiert gespeichert. Alle Verluste ergaben sich, als Sachen rausgeschmissen wurden, um daraus eine MP3 zu machen. Ein besserer Weg zu sagen ist "es gibt keinen Verlust mehr". Wenn Sie ein JPEG haben und es zur vollständigen Bitmap dekomprimieren (was in den meisten Paint & Processing-Programmen vorkommt), haben Sie keine zusätzlichen Verluste, da es nur decodiert wird. Wenn Sie es dann als etwas speichern, das etwas rauswirft, um es zu verkleinern, kodieren Sie es neu und haben wieder einen Verlust. Wenn Sie es in ein anderes verlustbehaftetes Format umcodieren, wird es mit Verlust wieder dekodiert und erneut codiert. Psycogeek vor 9 Jahren 6
Konvertierung zwischen PCM-Containern in * nur * wenn und nur dann verlustfrei, wenn Abtastfrequenz und Auflösung / Bittiefe genau gleich sind. Selbst das erneute Abtasten auf eine höhere Frequenz oder Auflösung führt zu einem verlustreichen Ergebnis. agtoever vor 9 Jahren 4

2 Antworten auf die Frage

9
Robin Hood

PCM ist einer der am häufigsten verwendeten Audio-Codecs. Die meisten Computer (wie auch viele Geräte) verwenden es standardmäßig für die Audioausgabe / -eingabe. Alle Audiodaten, die auf diesem Gerät zu hören sind, egal ob von einer Datei oder einem Mikrofoneingang, befinden sich im PCM und werden verwendet, um eine Annäherung der ursprünglichen analogen Klänge zu erzeugen.

Wenn Sie eine digitale Audioaufnahme mit einem Mikrofon in einem System durchführen, das PCM für die Audioausgabe / -eingabe verwendet, ist der Audiostrom PCM. Wenn Sie diese Aufnahme verlustlos als WAV, FLAC, WMA Lossless, ALAC, AIFF usw. speichern, gibt es keinen Kodierungsprozess. Der Audiostream wird nur in die neue Containerdatei eingefügt. Es ist immer noch der PCM-Stream, den Ihr System vom Analog interpretiert Klänge der realen Welt.

Verlustfreie Formate können in 2 Typen unterteilt werden: komprimiert und unkomprimiert. Nicht komprimierte Formate wie WAV und AIFF speichern lediglich den PCM-Audiostrom. Komprimierte Formate wie FLAC, ALAC und WMA Lossless lassen die Streamdaten durch einen Kompressionsalgorithmus laufen, um Platz zu sparen, beispielsweise ein ZIP-Archiv. Die Daten werden nicht geändert, sondern nur effizienter gespeichert. Es ist immer noch als PCM codiert.

Wenn Sie dann den verlustfreien Export nehmen und ihn in eine MP3-Datei mit 128 kbps konvertieren, ist eine erneute Codierung erforderlich. Kodierung bedeutet, die Audio-Stream-Daten auf eine neue Art zu organisieren. Dies ist ein verlustfreier Prozess. Meines Wissens gibt es jedoch keine Codecs, die dies tun, da dies sinnlos wäre. Die Datei klingt genauso, die Wiedergabe erfordert eine Dekodierung des Audios, was mehr Systemressourcen erfordert, und die gleiche Größe wie die Originaldatei hätte. Daher führen Codecs wie MP3, WMA Lossy, AAC, Vorbis (OGG) usw. auch zusätzliche Operationen aus. Eine übliche Operation ist das Verwerfen von Daten, die als von geringerer Bedeutung angesehen werden. Das Verwerfen von Daten führt zu einer geringeren Dateigröße.

Das Folgende ist keine perfekte Analogie, aber ich denke, es bringt den Punkt rüber.

Nehmen wir an, ein " I hate you Sarah!" auf ein Stück Papier geschriebenes " " repräsentiert den PCM-Audiostrom in der WAV-Datei, die Sie nach dem Aufnehmen verlustfrei exportiert haben.

Das Codieren dieser Daten in einem anderen Codierungsformat wäre äquivalent dazu, die Buchstaben bis zu " h Iyae oSr! haatu" durcheinander zu bringen . Die Decodierungssoftware weiß, wie dieser Codec Daten anordnet, um die Nachricht aufzulösen.

Wie bereits erwähnt, werden bei Formaten wie MP3 auch Daten während des Kodiervorgangs verworfen. Die MP3-Nachricht wäre also eher wie " h I Sr! h tu", und wenn sie entschlüsselt wird ("unjumbled"), wäre dies " I h t u S r h!". Wenn Sie dies zurücklesen, erhalten Sie immer noch die Nachricht, aber das Ausschließen von Buchstaben verändert den Klang ein wenig. Je mehr Sie ausschließen, desto schlechter wird es, bis Sie einen Punkt erreichen, an dem Sie die ursprüngliche Nachricht nicht mehr verstehen können.

Der MP3-Audiostrom steht für den ursprünglichen PCM-Audiostrom. Wenn Sie die MP3-Datei wiedergeben, wird sie in PCM decodiert, aber die verworfenen Daten werden nicht offensichtlich zurückgegeben. Es klingt in diesem Beispiel plausibel, die fehlenden Buchstaben wieder einzufügen, aber denken Sie daran, Computer sind nicht so schlau wie wir, und dies ist ein sehr einfaches Beispiel.

Wenn Sie die MP3-Datei in eine WAV-Datei konvertieren wollten, werden Sie technisch in PCM decodiert und dann den PCM-Stream gespeichert. Aus diesem Grund ist die WAV-Datei größer als die MP3-Datei. Es gibt keinen Datenverlust, da der MP3-Stream immer nur eine Darstellung für einen PCM-Stream war. Die Codec-Spezifikation gibt dem Decoder an, wie er MP3 in das PCM-Format zurück decodieren soll. Wenn Sie die MP3-Datei in eine AAC mit 128 kbit / s konvertieren möchten, wird die MP3-Datei in PCM decodiert. Anschließend wird der PCM-Stream als AAC codiert. Der Kodierungsprozess von PCM zu AAC führt zu weiterem Datenverlust, da "I h t u S r h!"wird wie die ursprüngliche Nachricht behandelt. Beachten Sie, dass die Buchstaben nicht zusammengedrückt werden. Wenn die AAC-Datei erstellt wird, werden Leerzeichen von ausgeschlossenen Buchstaben nicht Teil der Nachricht sein, wenn Sie herausfinden möchten, was am sichersten zu verwerfen ist Aus diesem Grund führt das Umcodieren von Daten mit derselben Bitrate zu einer Qualitätsverschlechterung.

0
Jente

Sie sagen also, wenn Sie eine MP3-Datei in WAV umkodieren, ist sie verlustfrei? WAV ist ein unkomprimiertes, losloses Format, MP3 ist ein "verlustbehaftetes" Format. Verlustreiche Formate werden immer komprimiert. Wenn Sie von verlustbehaftet zu verlustfrei umcodieren, erhalten Sie eine Datei, die verlustfrei aussieht, was aber nicht der Fall ist.

Sie können dies überprüfen, indem Sie die Spektralanalyse auf die Datei anwenden. Das Bild unten zeigt eine verlustfreie Datei, die von einer MP3-Datei transkodiert wurde. Kannst du das Regal bei 16 kHz sehen? In einer nicht komprimierten verlustlosen Datei (wie WAV) sollte das Regal nicht vorhanden sein.

Wirklich gute Informationen zum Transcoding: https://www.whatinterviewprep.com/prepare-for-the-interview/spectral-analysis/

Nur ein kleines Detail: MP3 ist ein Audio-Codec. WAV ist ein Containerformat und daher nicht verlustbehaftet oder verlustfrei. PCM-Audio wird normalerweise in WAV-Containern gespeichert, und PCM ist verlustfrei. slhck vor 9 Jahren 4