Grundlegendes zur Konvertierung und (De-) Komprimierung von verlustfreiem Audio

12

Ich habe ein paar Fragen zu verlustfreiem Audio. Ich überlege mir, meine gesamte Musiksammlung in eine verlustfreie .flac-Datei zu rippen, aber ich möchte zuerst ein paar Dinge darüber verstehen.

Wenn ich eine .flac-Datei habe und sie beispielsweise in .wav umwandeln möchte, wie kann ich dann vorgehen, um keinen Qualitätsverlust zu verursachen? Wenn ich es dekomprimiere, weiß ich, dass ich nicht an Qualität verlieren werde. Ist das Konvertieren von .flac in .wav dasselbe wie das Dekomprimieren?

Gilt das auch für das .ape-Format? Ich habe ein paar gemeinfreie Aufnahmen, die ich in .ape heruntergeladen habe, aber ich möchte sie in .flac umwandeln. Wäre es möglich, von .ape nach .flac zu wechseln, ohne .wav als Mittelsmann zu verwenden? Ich möchte sicherstellen, dass nicht einmal ein bisschen verloren geht.

Wenn es auch Anleitungen gibt, die die Welt von lossless fehlerlos erklären, wäre jemand bereit, einen Link zu teilen? :)

Ryan McClure
quelle

Antworten:

14

Zuerst:

Verstehen Sie den Unterschied zwischen einer Codierung und einem Containerformat . http://en.wikipedia.org/wiki/Digital_container_format

Ein Containerformat ist ein Datenformat, das andere codierte Daten "einkapselt". Es enthält häufig "Metainformationen" über die verschlüsselten Daten oder bietet die Möglichkeit, mehrere separate Streams verschlüsselter Daten oder ähnliches zu speichern.

Eine durch einen Codec erzeugte Codierung ist das eigentliche "Fleisch" des Datenstroms.

Das bekannteste Beispiel ist das Format "Ogg / Vorbis". Ogg ist das Containerformat und Vorbis ist die Codierung. Sie haben also eine Ogg-formatierte Datei und darin befinden sich diese kleinen Eimer, die codierte Daten enthalten. In jedem Bucket befindet sich ein Vorbis-codierter Datenstrom und sonst nichts. Auf den Eimer können beispielsweise der Name des Künstlers und der Songtitel gestempelt sein.

Also zurück zur Technik:

  1. Wenn Sie bereits Musik in einem verlustbehafteten Format wie MP3 oder Ogg / Vorbis haben, wird durch die Konvertierung in ein verlustfreies Format nur (viel) Speicherplatz verbraucht und die Qualität von NICHT - absolut NICHT - verbessert das Audio überhaupt. Sie können keine Wiedergabetreue erstellen, wenn diese bereits verloren gegangen ist. Es sei denn, Sie schreiben eine GUI-Oberfläche in Visual Basic in einer erfolgreichen TV-Show namens CSI, aber das ist Fantasie, nicht Realität.

  2. Wenn Sie Musik in anderen verlustfreien Formaten haben und diese in FLAC konvertieren möchten, können Sie dies tun.

  3. Gehen Sie vorsichtig mit dem Begriff "WAV" um. Wav muss nicht verlustfrei sein. Tatsächlich ist WAV nur ein Container für verschiedene mögliche Formate. In diesem Sinne ist es wie AVI. Sie können eine verlustfreie WAV-Datei haben, wenn es sich nur um PCM-Rohdaten handelt. Sie können jedoch auch MPEG-1-Layer-III-Daten (verlustbehaftet) in eine WAV-Datei einbetten.

  4. Bei der Konvertierung von einem verlustfreien Format in ein anderes können Daten verloren gehen, wenn Sie die Wiedergabetreue der Daten verringern. Wenn Sie beispielsweise einen vorzeichenlosen 16-Bit-PCM-Datenstrom mit 48000 Hz in einen 8-Bit-PCM-Datenstrom mit 44100 Hz konvertieren, verlieren Sie auf zwei Arten die Wiedergabetreue: Die Samples werden von 48000 auf nur 44100 pro Sekunde zusammengeführt Sekunde (was zu Datenverlust führt), und die Daten müssen heruntergemischt werden, um die Informationen in nur 8 Bits statt 16 pro Abtastung zu bringen, was die Qualität dramatisch beeinträchtigt.

Jeder digitale Audiostream, auch der von einem komprimierenden (verlustbehafteten oder verlustfreien) Encoder codierte, verfügt über die folgenden "Sample-Formateigenschaften", die wesentliche Elemente sind, die die Eigenschaften des Streams beschreiben:

  1. Stichprobenbitbreite und -tiefe, dh 8-Bit, 16-Bit usw. Bitbreite und -tiefe unterscheiden sich geringfügig, und es gibt auch Little-Endian / Big-Endian (was die Qualität nicht beeinträchtigt) und Signed oder Unsigned (was auch nicht der Fall ist) die Qualität beeinflussen, aber die Art und Weise, wie der Encoder / Decoder mit den Daten umgeht). Der wichtigste Punkt ist, dass "mehr Bits besser sind". 32-Bit ist also besser als 16-Bit usw.

  2. Frequenz, auch Abtastrate genannt. Mehr ist besser, weil mehr "Samples" von Audio pro Sekunde wiedergegeben werden. Stellen Sie sich vor, Sie streichen schnell mit dem Finger über ein Kartenspiel und sehen zu, wie die Karten verschwommen vorbeiziehen - so geschieht digitales Audio im Wesentlichen. Jedes Sample ist eine Karte, und wenn mehr Karten pro Sekunde vorbeifliegen, ist der Klang nahtloser. Wenn Sie nur 5 Karten pro Sekunde umdrehen, werden Sie feststellen, dass alles verschwimmt, wenn Sie Tausende von Karten pro Sekunde umdrehen. Mehr ist also besser, weil es natürlicher und realitätsnaher ist, was analog und unendlich teilbar ist (naja, bis auf die Planck-Einheiten, aber das ist umstritten und falsch).

"Verlustfrei" bedeutet nur, dass Sie keine Daten verlieren, wenn Sie dasselbe oder ein besseres Beispielformat in der Ausgabe verwenden, das Sie in der Eingabe verwendet haben.

Wenn Sie also vom 16-Bit- auf das 32-Bit-Sample-Format wechseln, gehen keine Daten verloren. Wenn Sie jedoch von 32 Bit auf 16 Bit wechseln, gehen Daten verloren.

Die Antwort auf Ihre Frage, ob die Verwendung von FLAC sinnvoll ist, hängt von den Quelldaten ab: Wenn Sie 64-Bit-WAV-Dateien haben, die ursprünglich in diesem Beispielformat mit 192000 Hz (oder 192 kHz) aufgezeichnet wurden, konvertieren Sie sie in eine " Standard "FLAC Sample Format von 16-Bit und 44,1 KHz, werden Sie eine TON von Daten verlieren. Wenn Ihre WAV-Datei jedoch 8-Bit mit nur 22100 Samples pro Sekunde ist und Sie sie in einen 16-Bit-FLAC mit 44100 Samples pro Sekunde konvertieren, gehen keine Daten verloren. Je nachdem, ob sich die verlustfreie Komprimierung oder das kleinere Sample-Format durchsetzen, kann es sogar zu einer Vergrößerung der Datei kommen.

Das Sample-Format wirkt sich darauf aus, wie viel Speicherplatz die Datei belegt, sodass die "größeren" Bits und die "schnelleren" Abtastraten mehr Speicherplatz belegen.

Was die Praxis und das menschliche Ohr betrifft: Sie werden es nicht wirklich bemerken, wenn Sie Originale mit hoher Wiedergabetreue auf 16-Bit-44,1-kHz-FLAC konvertieren. Aber Sie werden auch keine Verbesserung bemerken, wenn Sie eine MP3 in FLAC konvertieren. Sie müssen also bewerten, in welchem ​​Beispielformat sich Ihre Quelldaten befinden, bevor Sie entscheiden, was zu tun ist.

Nachdem ich Ihnen alle diese Informationen zur Verfügung gestellt habe, sind hier meine direkten und eindeutigen, erklärungsfreien Antworten auf Ihre Fragen:

Ich habe ein paar Fragen zu verlustfreiem Audio. Ich überlege mir, meine gesamte Musiksammlung in eine verlustfreie .flac-Datei zu rippen, aber ich möchte zuerst ein paar Dinge darüber verstehen.

Wenn sich Ihre Musiksammlung auf CDs befindet und Sie sie auf FLAC rippen möchten, passt das meiner Meinung nach sehr gut. Die Audioqualität der CD liegt bei 44,1 kHz und bei 16 Bit pro Sample. Dies stimmt genau mit den Standardeinstellungen von FLAC überein (zumindest mit den Standardeinstellungen der von mir verwendeten Encoder). Sie verlieren also keine Daten und sie sind mathematisch identisch mit den Eingabedaten, wenn sie dekodiert werden.

Wenn ich eine .flac-Datei habe und sie beispielsweise in .wav umwandeln möchte, wie kann ich dann vorgehen, um keinen Qualitätsverlust zu verursachen? Wenn ich es dekomprimiere, weiß ich, dass ich nicht an Qualität verlieren werde. Ist das Konvertieren von .flac in .wav dasselbe wie das Dekomprimieren?

Sie können es in eine .wav-Datei konvertieren, die dasselbe oder ein breiteres Beispielformat als die Eingabedaten aufweist, und Sie haben keinen Qualitätsverlust.

Wenn ein Mediaplayer das Audio in Ihrer Flac-Datei wiedergibt, werden die Flac-Daten im Wesentlichen in ein PCM-Format dekodiert, bevor diese PCM-Daten an die Soundkarte gesendet werden. Es wird auf genau die Daten dekomprimiert, die eingegangen sind. Wenn also 16-Bit-PCM-Daten mit 44,1 kHz eingehen, werden diese ausgegeben und an Ihre Lautsprecher weitergeleitet.

Der einzige Unterschied zwischen dieser Aktivität und dem Konvertieren des Audios in eine WAV-Datei besteht darin, dass beim Konvertieren in eine WAV-Datei ein WAV-Container mit den entsprechenden Füllbits usw. erstellt werden muss. Außerdem können Sie das Beispielformat auswählen der WAV-Datei. Unter der Annahme, dass das Beispielformat identisch ist, besteht der einzige Unterschied zwischen Ihren FLAC- und WAV-Dateien in der Dateigröße: Die WAV-Dateien sind erheblich größer.

Gilt das auch für das .ape-Format? Ich habe ein paar gemeinfreie Aufnahmen, die ich in .ape heruntergeladen habe, aber ich möchte sie in .flac umwandeln. Wäre es möglich, von .ape nach .flac zu wechseln, ohne .wav als Mittelsmann zu verwenden? Ich möchte sicherstellen, dass nicht einmal ein bisschen verloren geht.

Nein, dies ist nicht möglich, ohne ein PCM-Format als Vermittler zu verwenden. Aber ja, es ist möglich, ohne eine WAV-Datei zu verwenden. Beachten Sie den Unterschied. PCM-Datenstrom. WAV-Datei. Wenn Ihnen die Unterscheidung nicht klar ist, lesen Sie den Anfang meines Beitrags erneut. Wenn Sie sicherstellen möchten, dass "nicht einmal ein bisschen" verloren geht, müssen Sie Ihre APE-Dateien untersuchen und verstehen, in welchem ​​Beispielformat sie vorliegen, und sicherstellen, dass Ihr FLAC-Encoder so eingestellt ist, dass er für dieselben Einstellungen codiert.

Intern wird jedes Audio-Konvertierungsprogramm vom Quellformat in ein verlustfreies PCM-Sample-Format dekodiert und diese PCM-Samples anschließend im Zielformat neu kodiert.

Wenn es auch Anleitungen gibt, die die Welt von lossless fehlerlos erklären, wäre jemand bereit, einen Link zu teilen? :)

Meiner Meinung nach ist der beste Weg, um zu lernen, zu tun. Wenn Sie sich Zeit nehmen, um das Gstreamer-Framework, seine Verwendung und die Bedeutung der verschiedenen Tunables des Beispielformats sowie das Erstellen einer Pipeline zu erlernen, werden Sie ein wirklich tiefes Verständnis für digitales Audio entwickeln. Hör zu. http://gstreamer.freedesktop.org/ Sie können das Gstreamer SDK auch von http://code.entropywave.com/gstreamer-sdk/ herunterladen (Windows wird unterstützt) und mit gst-launch-0.10 experimentieren, ohne etwas kompilieren zu müssen von der Quelle.

Ein paar aufschlussreiche Dinge:

gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 audioconvert gst-inspect-0.10 audioresample

Dann lerne etwas über Kappen, den Bau von Pipelines usw. und du wirst gleich weitermachen.

* Hinweis: Mir ist klar, dass ich nicht erklärt habe, was PCM ist. Wikipedia macht das besser als ich: http://en.wikipedia.org/wiki/Pulse-code_modulation

allquixotic
quelle
Wow, das ist einfach unglaublich, wie klar und hervorragend Sie das alles erklärt haben. Ich habe noch nie an die Hälfte dieser Dinge gedacht, gute Denkanstöße. Vielen Dank für die Antwort - und die Zeit, die Sie dafür gebraucht haben! +1!
Ryan McClure
Sie sollten immer darauf abzielen, Bitraten und Abtastraten intakt zu halten, da verlustfrei im Idealfall identische PCM-Daten vorausgesetzt werden. Ein Upsampling auf etwas anderes als die doppelte Samplerate ist niemals verlustfrei (Sie können keine Nullen gleichmäßig hinzufügen) und verschwendet Speicherplatz. In jedem Fall sollte dies kein Problem für FLAC sein, da es jede PCM-Bitauflösung von 4 bis 32 Bit pro Abtastung, jede Abtastrate von 1 Hz bis 655.350 Hz in Schritten von 1 Hz und jede Anzahl von Kanälen von 1 bis verarbeiten kann 8 ( de.wikipedia.org/wiki/FLAC#Design )
mtone
WAV enthält immer PCM. Es ist vielleicht kein PCM in CD-Qualität (aber praktisch kann man dies im Allgemeinen annehmen, da dies fast immer der Fall ist), aber es wird PCM sein, nicht so etwas wie MPEG 3 Layer 2.
psusi
@psusi: Sorry aber du liegst falsch. Bitte lesen Sie den Wikipedia-Artikel über WAV: en.wikipedia.org/wiki/WAV . Wenn Sie möchten, kann ich einen Link zu einer WAV-Datei veröffentlichen, die MP3-Audio enthält. Bei WAV-Dateien ist zu beachten, dass es sich nur um eine RIFF-Datei handelt und dass es sich bei einer RIFF-Datei um eine relativ einfache Überarbeitung eines Mediencontainerformats handelt. Aber zumindest in seiner grundsätzlichen Bedeutung unterscheidet es sich nicht wesentlich von Ogg oder Matroska, abgesehen davon, dass es nur Audio und nicht Video unterstützt. Edit: Ich muss keine wav / mp3-Datei erstellen; Yay! In der Tat ist es von Wikipedia verlinkt! nch.com.au/acm/8kmp316.wav
allquixotic
Diese Antwort enthält einige Ungenauigkeiten. "Frequenz, auch als Abtastrate bezeichnet. Mehr ist besser, weil mehr" Abtastungen "von Audio pro Sekunde wiedergegeben werden." - So funktionieren Sampleraten nicht. Wenn die Bittiefe nicht beteiligt wäre, könnten Daten mit einer Abtastrate von 48 kHz verlustfrei Signale mit bis zu 24 kHz darstellen, und das Hinzufügen weiterer Abtastwerte würde dies nicht ändern. Weitere Samples beeinflussen nur, welche Frequenzen Sie darstellen können. Das Konvertieren von 44,1 kHz in 48 kHz ist auch nicht unbedingt verlustfrei, selbst wenn der eingeführte Fehler wahnsinnig klein ist.
cooky451
1

Ich muss der Aussage von allquixotic widersprechen.

Wenn Sie bereits Musik in einem verlustbehafteten Format wie MP3 oder Ogg / Vorbis haben, wird durch die Konvertierung in ein verlustfreies Format nur (viel) Speicherplatz verbraucht und die Qualität von NICHT - absolut NICHT - verbessert das Audio überhaupt. Sie können keine Wiedergabetreue erstellen, wenn diese bereits verloren gegangen ist. Es sei denn, Sie schreiben eine GUI-Oberfläche in Visual Basic in einer erfolgreichen TV-Show namens CSI, aber das ist Fantasie, nicht Realität.

Es fehlt an Kenntnissen der Tontechnik und man füttert Menschen mit der falschen Aussage.

  1. Ogg und Vorbis verfügen beide über Container, in denen die ursprünglichen Wave-Dateninformationen gespeichert und mit diesen Daten verlustfrei konvertiert werden können. Bitte google genug.

  2. Selbst eine verlustfreie Konvertierung von MP3 in eine niedrige Qualität verbessert den Klang VIEL. Sie ist nicht so perfekt wie das Original, lässt sich jedoch problemlos mit Dynamik und Dithering beheben. https://www.izotope.com/de/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

Bei Audio handelt es sich nicht um 10100110101001-Daten, daher bedeutet eine geringere Dateigröße nicht, dass die Qualität verloren geht. Möglicherweise haben Sie vor Jahrzehnten Erfahrung mit 128 kbit / s bis 320 kbit / s und schätzen, dass 128 kbit / s nicht verlustfrei sind. Bitte lassen Sie sich diese einfache Aufgabe testen und umsetzen.

Seandex
quelle