KOMPRESSION (AUDIO)
(Kategorie: Computer)
Hier wird versucht zu erklären, wie Audiosignale (also Töne, Musik usw...) in Dateien gespeichert werden. Empfohlen werden im Vorfeld die Artikel Kompression und Kompression (Grafik). Im Anschluss wird noch auf die eigentliche Kompression eingegangen: MP3, OGG, FLAC usw...
Wie werden Töne in Dateien gespeichert? Nun, um das zu erklären, ist es zunächst sinnvoll zu betrachten, was passiert, wenn Sie z.B. ein Mikrofon an den Rechner anschließen und hineinsprechen. Was tut der Computer?
Im Mikrofon befindet sich eine Membran, die anfängt zu schwingen, wenn sie von Schallwellen getroffen wird - und diese Schwingungen werden im Mikrofon in elektrische Schwankungen umgewandelt, die durch das Kabel laufen.
Was haben wir jetzt: Einen ununterbrochenen, aber in der Stärke schwankenden Stromfluss.
So gelangen sie in Ihre Soundkarte im Computer. Und dort wird dieses (analoge) "Stromschwankungssignal" in digitale Werte umgewandelt, und zwar so:
In der Soundkarte befindet sich ein Zeitgeber, der in jeder Sekunde z.B. 44100x das Signal an ein Messgerät gibt: Miss jetzt! Woraufhin dieses Messgerät den zu diesem Zeitpunkt anliegenden Strompegel misst und an den Rechner weitergibt. Es liefert aber nicht Werte wie "+0,5 V" oder "-0,25 V", sondern: Es nimmt den Spannungswert, der maximal anliegen darf, und teilt ihn z.B. in 65536 Stufen auf (von -32768 bis +32767). - Warum genau 65536? Weil das 2^16 ist. Das Messergebnis kann also mit 16 Bit dargestellt werden, oder: mit 2 Byte; und man nennt es: ein Sample. In diesem Fall: Ein 16-bit-Sample. Und die Zahl 44100/s (oder 44,1 kHz) in diesem Beispiel, die Häufigkeit, mit der die Werte gemessen werden, nennt sich: Samplingfrequenz.
Was haben wir jetzt: Eine Folge von Zahlen (Samples). 44100 Stück pro Sekunde, jeweils zwischen -32768 und +32767.
Diese Samples könnte man nun in eine Datei schreiben. Wie groß würde die denn? Nun, pro Sekunde kommen 44100 Werte mit je zwei Byte hinein, d.h. 88,2 kB/s. Bedenken wir noch, dass normalerweise Musik heutzutage in Stereo geliefert wird, also mit zwei Spuren, dann haben wir bereits 176,4 kB/s. Eine Minute Musik, so gespeichert, braucht also bereits 10,5 MB! Ach was, rechnen wir auch gleich noch aus, wieviel Musik, so gespeichert, auf einen CD-Rohling mit 700 MB passen würde: 66 Minuten.
Ein Dateiformat, bei dem einfach (und unkomprimiert) diese Samples drinstehen, ist das WAVE-Format (musik.wav). Und auch auf Audio-CDs befinden sich genau diese Daten: Audiosamples mit 16 Bit und 44,1 kHz sind der Standard auf Musik-CDs. Und da CDs (egal was für welche) maximal so ziemlich 700 MB enthalten können, passt auf eine Musik-CD eben eine reichliche Stunde Musik drauf...
Wie aber kriegen wir diese Datenmassen jetzt kleiner?
Eine Möglichkeit ist natürlich, überhaupt weniger Daten zu produzieren. Man könnte seltener messen, z.B. statt 44100x nur 32000x pro Sekunde. Oder noch seltener. Man kann in Mono aufnehmen, das halbiert die Dateigröße. Und man könnte statt 2^16 Schwankungsstufen (also 65536) nur 2^8 Stufen benutzen, also nur 1 Byte pro Sample. Wenn Sie es können, dann probieren Sie mal, eine beliebige Musikdatei mit diesen Werten neu abzuspeichern: 8bit, 32kHz, Mono. Und natürlich im wave-Format. - Statt 10,5 MB/min haben Sie dann nur noch etwa 2 MB/min. Aber: Es klingt scheußlich! (Solche Qualitäten wurden/werden zum Teil z.B. im Telefonnetz benutzt...)
Ein anderer Ansatz wird bei Verfahren wie MP3 gewählt. Grob vereinfacht kann man sich das so vorstellen:
- Die Abfolge von Zahlen, aus denen unsere WAV-Datei besteht, repräsentiert ja gewissermaßen die ursprüngliche Schallwelle - würde man sie in ein Koordinatensystem einzeichnen, dann würde fast das gleiche Bild entstehen, wie wenn man das ursprüngliche Mikrofon an einen Oszillografen angeschlossen hätte (die Geräte, die die lustigen Wellenbilder aus Stromschwankungen erzeugen). Mit einem Unterschied: Im Oszillografen sähen wir eine durchgehende Linie, im Korrdinatensystem hätte wir nur nebeneinanderliegende Punkte. (Und je höher die Samplingfrequenz, desto mehr Punkte hätten wir.)
- Wie kann man ein solches "Muster" nun komprimieren? Es gibt ein mathematisches Werkzeug mit dem Namen "Fourier-Transformation" (den der Leser sofort wieder vergessen darf), das dazu benutzt werden kann, um aus einer Summe von Schwingungen (also z.B. unserem Wellenmuster, in dem Töne unterschiedlichster Frequenz drinstecken) die einzelnen Schwingungen zu extrahieren! Man kann also ein Programm schreiben, das mithilfe dieses Verfahrens unsere Audiodatei in einzelne Frequenzen zerlegt.
- Und da kommen dann beispielsweise Dinge raus wie "Bei Sekunde 3.5 haben wir eine laute Schwingung von 440 Hz, eine weitere etwas leisere von 1789 Hz und eine von 24560 Hz." Und diese Informationen kann man nun zur Kompression nutzen!
- Wiederholen sich bestimmte Schwingungsmuster über einen längeren Zeitraum, kann man das nutzen und eine Information wie "für 4 Sekunden 4200 Hz" speichern, anstatt 4 Sekunden*44100 Samples=176400 Byte abzuspeichern! (Ganz besonders praktisch: Wenn z.B. zu Beginn der Aufnahme totale Stille herrscht... "Für 4 Sekunden Wert 0".) Manche Wellen kann man auch verwerfen: Schwingungen über 20000 Hz hört niemand mehr, Schingungen unter 16 Hz ebensowenig. (Und selbst wenn: Die meisten Boxen daheim können dies auch gar nicht wiedergeben.) Wozu also speichern? Weg damit! - Derlei verschiedenste Kniffe werden in solchen Audiokompressionsverfahren genutzt, um das Klangmuster möglichst effektiv zu zerlegen, die einzelnen Bausteine zu untersuchen, Strukturen zu erkennen, und sie entweder zu verwerfen oder platzsparend zu speichern.
Im Ergebnis sind solche Dateien im Schnitt vielleicht zehnmal kleiner als das WAV-Original - also noch kleiner als unser Telefonbeispiel oben. Aber: Sie klingen (fast) genausogut wie das Original!
Was noch zu bemerken ist:
- Erstens sind solche Kompressionsverfahren relativ rechenintensiv - Sie werden also Ihren Computer beim Komprimieren eine ganze Weile beschäftigt sehen.
- Zweitens: Diese Art der Kompression ist natürlich verlustbehaftet! Sie können eine MP3-Datei nicht wieder in den "Original-Wave-Zustand" zurückversetzen. Das kann für Sie egal sein - aber z.B. ein Tonmeister wird sein aufgenommenes Material niemals als MP3 abspeichern (und lieber noch eine weitere Festplatte mitnehmen).
- Drittens: Sollten Sie MP3-Dateien anfertigen, seien Sie nicht überfordert von den vielen Einstellungen, die man dort angeben kann. Wie bei jeder Kompression muss man eben einen Mittelweg finden zwischen Platzsparen einerseits und dem damit einhergehenden Qualitätsverlust andererseits. Für normale Musikkompression sind 192 kB/s und Joint Stereo vollkommen ausreichend.
- Und letztens: Um die Dateien später abspielen zu können, benötigen Sie ein Gerät oder Programm, das das jeweilige Kompressionsverfahren kennt! Im Falle von MP3 ist dies natürlich nicht schwer, da es sich um einen sehr verbreiteten Standard handelt - aber es gibt diverse andere (und bessere) Verfahren, die weniger verbreitet sind, OGG oder FLAC beispielsweise.