Spätestens seit es mit dem ATARI Falcon030 so einfach wie nie zuvor ist, Musik und Sprache zu samplen, wird das Wissen um die unterschiedlichen Sample-Formate immer wichtiger. Diese Serie beschreibt, wie die wichtigsten Formate aufgebaut sind, zeigt, wie man sie konvertieren kann, und erklärt verschiedene Packverfahren. Am Ende wird als Bonbon ein komplettes Konvertierungsprogramm auf der Mega-Disk der ST-Computer erscheinen.
Zunächst aber wollen wir uns mit den Grundlagen des Samplens beschäftigen. Töne werden in der heimischen Stereoanlage als analoge elektrische, kontinuierliche Schwingungen dargestellt. Mit solchen Signalen können digitale Computer üblicherweise nicht viel anfangen. Damit diese Daten im Computer bearbeitet werden können, müssen sie mit einer festen Rate abgetastet, die analogen Spannungswerte digitalisiert und schließlich in den Speicher eingelesen werden.
Dazu benötigt man einen AD-Wandler, der bei herkömmlichen Computern extern angeschlossen werden muß. Besitzer eines Falcons sind da fein raus, denn dieser hat die nötige Hardware schon eingebaut.
Wie oben erwähnt, besteht das Samplen aus zwei unterschiedlichen Vorgängen: dem Abtasten und dem Digitalisieren. Abtasten bedeutet, den kontinuierlichen Signal verlauf nur zu bestimmten Zeitpunkten zu erfassen. Diese Zeitpunkte haben normalerweise immer einen gleichen zeitlichen Abstand. Z.B. werden die Sprachsignale oft 8000mal pro Sekunde abgetastet. Man sagt in diesem Fall, man benutzt eine Sample-Frequenz von 8kHz. Jeder abgetastete Analogwert wird dann beim Digitalisieren in einen digitalen Wert umgewandelt. Bild 1 veranschaulicht dies.
Diese beiden Vorgänge sind mit unterschiedlichen Problemgattungen verbunden, die beim Arbeiten mit Samples zu beachten sind, um klanglich gute Ergebnisse zu erzielen.
Bei der Wahl der Sample-Frequenz ist das Abtasttheorem von entscheidender Bedeutung: Will man ein Signal, das als höchste Frequenz die Frequenz f enthält samplen, so muß als Sample-Frequenz mindestens 2f gewählt werden, um das Signal später wieder exakt rekonstruieren zu können.
Ist beispielsweise das Analogsignal eine Sinusschwingung von 4kHz, so muß die Sample-Frequenz mindestens 8kHz betragen, um dann beim Abspielen die Schwingung wieder korrekt wiedergeben zu können.
Um den Sachverhalt verständlich zu machen, betrachten wir den sinusförmigen Signalverlauf der Frequenz 4kHz. Um das Signal als Schwingung mit der korrekten Frequenz zu erkennen, muß man mindestens 2mal pro Periode abtasten. Findet die Abtastung zu langsam statt, entstehen falsche Frequenzanteile. In Bild 2 ist zu sehen, daß bei Abtastung mit der Frequenz 2f (24kHz = 8kHz) nach dem Digitalisieren die Frequenz des Signals dieselbe ist. Tastet man langsamer ab, z.B. mit 1.5f (1.54kHz = 6kHz), hat der digitale Signalverlauf nicht mehr viel mit dem Original zu tun.
Wird also ein Signal mit der Sample-Frequenz 2f abgetastet, das höhere Frequenzen als f enthält, entstehen sogenannte Spiegelfrequenzen, die im Originalsignal überhaupt nicht vorhanden sind. Das heißt, durch eine zu geringe Abtastrate gehen nicht nur Frequenzen des Originalsignals verloren, es kommen auch neue - falsche -hinzu. Dadurch kann die Klangqualität erheblich gestört werden. Dieser Effekt, der auftritt, wenn das Abtasttheorem verletzt wird, heißt Aliasing. Ein Beispiel ist in Bild 3 zu sehen.
In der Realität haben aber praktisch alle Tonsignale Frequenzen bis zum Ende des hörbaren Bereichs (20kHz) und darüber hinaus. Soll trotzdem nicht mit unendlich hoher Frequenz abgetastet werden, so muß man sich mit einem Filter, der zu hohe Frequenzen entfernt, behelfen: Der Filter soll Frequenzen bis zur Hälfte der verwendeten Sample-Frequenz möglichst gut durchlassen, höhere aber entfernen. D.h., für verschiedene Sample-Frequenzen müssen verschiedene Filter benutzt werden. Üblicherweise ist das bei kommerziell erhältlichen Samplern mehr oder weniger gut berücksichtigt.
Nur beim Selbstbau muß man das extra beachten.
Aus ähnlichen Gründen muß dann auch beim Abspielen derselbe Filter wie vorher verwendet werden. Läßt man ihn weg, entstehen Oberwellen, also höhere Frequenzen, die sich als eine Art Pfeifen oder Klirren bemerkbar machen.
Grundsätzlich möchte bestimmt jeder alles in der bestmöglichen Qualität aufnehmen, die für das menschliche Ohr sinnvoll ist, also ca. 50 kHz als Sample-Frequenz verwenden. In der tatsächlichen Anwendung spricht aber einiges dagegen, das wirklich zu tun.
Oft liegen Signale vor, die selbst keine so hohen Frequenzen enthalten. Ohne jeden Verlust können dann niedrigere Sample-Frequenzen benutzt werden. Beim Telefon zum Beispiel werden nur Frequenzen bis 4kHz übertragen. Somit reichen 8HKz als Sample-Frequenz aus. Mehr wäre einfach Verschwendung von Speicherplatz. Das Ohr erwachsener Menschen kann meist nur bis ca. 16kHz hören. Also reichen 32HKz als Sample-Frequenz eigentlich in fast allen Fällen aus.
Natürlich ist auch zu berücksichtigen, mit welchem Equipment das Sample später wieder hörbar gemacht werden soll. Den Piezo-Piepser bei Standard-PCs wollen wir gar nicht erwähnen ... Aber auch Lautsprecher, wie sie im Falcon oder in ‘multimedia‘-Monitoren eingebaut sind, rechtfertigen selten mehr als 20kHz Sample-Frequenz.
Im Zweifelsfall ist man aber nur mit der höchsten Sample-Frequenz auf der sicheren Seite - vielleicht wird das Machwerk ja mal in den Charts zu finden sein.
Auch von der Sample-Hardware werden einige Vorgaben gemacht. Auf einfachen SUN-Rechnern gehen meist nur 8kHz, auf STE/TTs z.B. 12,5 und 25kHz. Leider sind die Sample-Frequenzen nicht standardisiert: Während SUNs 8000Hz benutzen, sind im Falcon 8196Hz eingebaut. Unterschiede von ca. 5% beim Abspielen bemerkt das Ohr aber glücklicherweise praktisch nicht. Hier einige typische Sampling-Raten:
Hz | System |
---|---|
8000 | SUN, digitales Telefon |
8013 | NeXT |
8195 | Falcon |
11127 | Mac |
12517 | STE/TT/Falcon |
18900 | CD-ROM/XA-Standard |
22000 | PC |
22050 | 0.5 mal CD-Standard |
22254 | Mac |
24000 | Mac |
25033 | STE/TT/Falcon |
33880 | Falcon |
44100 | CD |
48000 | DAT, Mac |
49170 | Falcon |
Beim Digitalisieren werden die noch analogen Werte in digitale umgewandelt. Hier ist es von entscheidender Bedeutung, mit welcher Auflösung, d.h. mit wieviel Bit das geschieht, denn die dabei auftretende Quantisierung der Werte führt bei der Wiedergabe zu einem Klirren.
Das Klirren entsteht durch das bei der Quantisierung des Signals stattfindende Runden. Damit wird klar, daß je höher die Auflösung ist, die Fehler um so kleiner werden und das Klirren abnimmt. Als Maß für das Klirren wird in der Audiotechnik der Klirrfaktor benutzt. Er wird bestimmt aus dem Verhältnis der Effektiv werte der unerwünschten Frequenzanteile und des gesamten Ausgangssignals.
Es gibt eine Möglichkeit, den Klirrfaktor direkt aus der Anzahl der Quantisierungsstufen zu berechnen:
k=1/sqrt(q2-1 ); (q = Anzahl der Quantisierungsstufen)
Das ist also der minimale Klirrfaktor bei der Auflösung q. In Wirklichkeit kommen die Fehler des Analogkreises hinzu. Außerdem wird das Signal nur selten voll ausgesteuert sein, so daß effektiv weniger Stufen benutzt werden und k somit ansteigt.
Auch der Signalgeräuschabstand hängt direkt von der Anzahl der Quantisierungsstufen ab:
s=10*lg(1/k<sup>2</sup>); (s in dB)
Hier eine Tabelle für die typischen Auflösungen:
Bits | 1 | 4 | 8 | 12 | 16 |
---|---|---|---|---|---|
q | 2 | 16 | 256 | 4096 | 65536 |
k | 58% | 6,26% | 0,39% | 0,024% | 0,0015% |
s | 4,8 | 24 | 48 | 72 | 96 |
Viele Computeranwender haben meist sowieso keine große Auswahl, weil ihre Sampler nur 8 Bit zulassen. Damit sind Sprachsignale schon gut aufzeichenbar, weil hier erst ein Klirrfaktor von über 5% als störend angesehen wird.
Für HiFi-Anwendungen dagegen sind 16 Bit - wie beim Falcon - gerade gut genug, denn Verstärker haben (analog bedingte) Klirrfaktoren von ca. 0.008%. Auch CD-Player liegen im Bereich von 0.004% (besser als 0.0015% geht’s ja theoretisch gar nicht).
Welche Möglichkeiten gibt es also, Samples im Computer zu speichern9 Neben der Frage der Auflösung stellen sich nämlich noch einige andere, die in den unterschiedlichen Dateiformaten natürlich unterschiedlich beantwortet wurden (wen wundert’ s?).
Es macht natürlich nur Sinn, Stereo-Samples zu verwenden, wenn auch das Eingangssignal Stereo ist - ansonsten verschwendet man nur Speicherplatz.
Stimmt diese Darstellung nicht mit der der Sample-Hardware überein, so ist das unüberhörbar. Der ATARI-Falcon benutzt vorzeichenbehaftete Werte, was das Rechnen damit erleichtert.
Wer viel mit Samples arbeitet, wird schnell feststellen, daß dabei erhebliche Datenmengen entstehen. Nimmt man z.B. auf dem Falcon in bester Qualität in Stereo auf, so fallen 200KB/s an. Da ist eine Festplatte mit einer einzigen Single schnell gefüllt...
Aus diesem Grund gibt es eine Reihe von Methoden, um die Daten online zu komprimieren. In der Regel sind dabei zwar erhebliche Ersparnisse von bis zu 50% möglich, aber leider nimmt die Klangqualität dabei ab. Denn im Gegensatz zu herkömmlichen Packprogrammen wird die Information nicht nur komprimiert, sondern wirklich reduziert.
Die am weitesten verbreitete Methode nützt dabei eine physiologische Eigenschaft des menschlichen Ohrs aus. Die Lautstärke eines Tons steigt logarithmisch mit der Amplitude an. Das heißt, eine Verzehnfachung der Amplitude bewirkt ,nur‘ eine Verdopplung der Lautstärke.
µ-law-/a-law-Kompression
Diese beiden Kompressionsarten arbeiten so, daß sie Änderungen in leisen Passagen genauer wiedergeben als in lauten. Warum ist das sinnvoll?
Schauen wir uns ein leises 16-Bit-Signal an, das im Bereich von -100 bis +100 liegt. Ändert sich nun die Amplitude zum Beispiel um 1000. so entspricht dies etwa einer Verdopplung der Lautstärke. Die gleiche Änderung um 1000 bei einem bereits lauten Signal von ca. -10000 bis +10000 bewirkt nur eine Zunahme der Lautstärke um ca. 5%.
Die Kompression geht nun so vor, daß aus einem 16-Bit-Wert über eine logarithmische Kennlinie ein 8 Bit Wert erzeugt wird. Beim Entpacken wird dann der 8-Bit-Wert wieder in einen 16-Bit-Wert umgewandelt. Der Dynamikbereich entspricht dann etwa dem eines 14-Bit-Samples.
Die beiden Formate stammen aus dem Bereich des digitalen Telefons, dabei ist µ-law der amerikanische, a-law der europäische Standard.
Dieses Verfahren geht einen Schritt weiter. Statt die Sample-Werte über eine logarithmische Kennlinie zu packen, wird hier jeweils die Differenz zweier aufeinanderfolgender Werte im logarithmischen Format abgespeichert. Der Vorteil liegt auf der Hand: Üblicherweise sind die Unterschiede zweier aufeinanderfolgender Werte kleiner als die Sample-Werte an sich. Nachdem die logarithmische Kompression ja für kleinere Werte kleinere Fehler mit sich bringt, ist das Gesamtsignal nach dem Entpacken weniger fehlerbehaftet als bei µ-law.
Soll allerdings nun ein Sample-Wert an einer bestimmten Stelle mitten im Sample errechnet werden, so muß - da ja nur die Differenz zum vorhergehenden Wert abgespeichert wurde - auch der vorherige Wert bekannt sein. Die Folge ist, daß das Sample von Anfang an entpackt werden muß. Bei der Bearbeitung der Samples führt das zu unschönen Rechenzeiten, die deutlich vermindert werden können, indem das Sample in einzelne Blöcke unterteilt wird, die mit ungepackten Stützpunkten1 beginnen. So muß immer nur höchstens ein Block durchgescannt werden, um den gewünschten Wert zu errechnen. Diese Länge kann unterschiedlich sein, liegt aber oft bei 64000 Bytes.
Das Deltapackformat ist bisher nur im DVSM-Format verwirklicht und wurde für das Programm WinRec für den Falcon entwickelt. Inzwischen wird es auch von Programmen wie Fortune und anderen unterstützt.
Dieses Format (Adaptive Differential Pulse Code Modulation) geht noch einen Schritt weiter: Es versucht, aus den beiden vorhergehenden Sample-Werten den nächsten zu errechnen. Gespeichert wird dann im Sample nur die Differenz zwischen errechnetem und wirklichem Wert in 4 Bit. Diese Differenz wird gleichzeitig dazu verwendet, interne Parameter anzupassen, die die Vorhersage werte bestimmen.
ADPCM wurde von IBM ins RIFF/ Wave-Format eingebracht. Es wird auch dort in der Telefontechnik verwendet, wo µ-law noch zuviel Datenmengen produziert, z.B. bei VoiceMailmg per Modem.
Nach diesem etwas theoretischen Überblick über das Samplen und die Sample-Formate geht es im nächsten Teil endlich zur Sache. Wir werden dort ein Konzept zum Umwandeln wichtiger Formate und die ersten Formate selbst im Detail vorstellen.
Literatur:
[1] E. Hölzer, H. Holzwarth: Pulstechnik, Band 1 - Grundlagen, Springer 1982
[2] Guido van Rossum: Frequently Asked Question List, NetNews, comp, sounds