Gleitkommazahlen in digitaler Audioanwendung

Gleitkommazahlen in digitaler Audioanwendung

Inhaltsverzeichnis

Überblick

Von Gleitkommazahlen und deren Vorteilen wird bereits seit Jahren in der digitalen Audiobearbeitung Gebrauch gemacht. Üblich sind 32-Bit oder 64-Bit Gleitkommazahlen.

Der Vorteil ist, dass der Dynamikbereich der Audiosignale nur noch vom Wertebereich der Gleichkommazahl abhängt und damit in der Praxis keine Übersteuerung stattfinden kann.

Der Nachteil ist, dass durch die technisch bedingten Rechenungenauigkeiten von Gleitkommazahlen der Klirrfaktor bei jeder Rechenoperation erhöht wird.

Um die Kompatibilität mit der stärker verbreiteten Festkomma-Audiosignalen zu ermöglichen, werden Gleitkomma-Audiosignale vor der Konvertierung auf einen Wertebereich zwischen +1,0 und −1,0 normalisiert. Dieser Wertebereich wird dann auf den entsprechenden Wertebereich der Festkomma-Zahlen (meist mit 16 oder 24 Bit Genauigkeit) umgerechnet. Entsprechend geschieht die Umrechnung von Festkomma- auf Gleitkomma-Audiosignale.

Summenbusse

Als erstes Beispiel dienen Mixingbusse in digitalen Mischpulten und HD-Recordingsystemen, die Signale aus verschiedenen Quellen aufsummieren und zu einem Signal zusammenfassen, das dann weiterverarbeitet wird. Bei der Rechnung mit Integerzahlen treten bei dieser Anwendung, sofern die zu verarbeitenden Eingangssignale nicht alle ohne Pegelveränderung in die Summe einfließen sollen, Rundungsfehler auf. Als Beispiel sollen hier 5 Signale unter der Betrachtung eines einzelnen Samples dienen, die jeweils den Wert 12345 haben. Diese sollen mit jeweils −20 dB in einen Summenbus einfließen, der dann wiederum um +6dB angehoben wird. Weiterhin wird extremerweise (um den Effekt zu verdeutlichen) angenommen, dass der Mixingbus intern mit nur 16 Bits arbeitet, die aufgezeigten Effekte sind selbstverständlich auch bei anderen Bittiefen nachzuweisen. Rein rechnerisch ergibt sich nun auf dem Bus das Signal

(12345 · -20dB) · 5 · +6dB = (12345 / 10) · 5 · 2 = 12345

Um diese Berechnung mathematisch korrekt durchzuführen, muss bei der Division des Eingangssamples auf Kommazahlen zurückgegriffen werden, also als Ergebnis des Zwischenergebnisses “(12345/10)” 1234,5 als Wert gültig sein. Im Falle einer reinen Integerdivision kann hier allerdings ein deutlicher Fehler ausgemacht werden. Das Ergebnis auf dem Summenbus ist dann   1234 · 10 = 12340,   es sind also Informationen verloren gegangen. Noch eindeutiger wird dieser Effekt, wenn man von einer noch stärkeren Dämpfung des Eingangssignals und/oder einer noch größeren Verstärkung des Summensignals, die den Fehler multipliziert, ausgeht.

Alternativ hierzu kann der Algorithmus auch so umgestellt werden, dass die Division erst im letzten Schritt erfolgt:

(12345 / 10) · 5 · 2 = (12345 · 10) / 10

Diese Vorgehensweise würde zwar den Rundungsfehler auch mit Integerarithmetik eliminieren, allerdings würde als Zwischenwert innerhalb der Berechnung aber 123450 auftauchen, ein Wert, der mit den angenommenen 16 Bits nicht mehr darstellbar ist. Des Weiteren muss bei Integermixingbussen bedacht werden, dass für ein einfaches Aufsummieren von Signalen stets ein ausreichender Headroom zur Verfügung steht, da pro Signaladdition ein weiteres Bit benötigt wird, um das Summensignal nicht ins Clipping zu bringen. Für eine Addition von 32 Eingangssignalen ist also schon ein Summenbus notwendig, der 4 Bit breiter ist als die Eingangssignale. Mit 8 Bit Headroom ließen sich maximal 256 Signale zusammenfassen. Im folgenden Kapitel wird sich zeigen, dass diese Grenze in anderen Szenarien deutlich schneller erreicht werden kann als in Summenbussen digitaler Mischpulte. Mit Gleitkommaarithmetik fallen diese Effekte weniger ins Gewicht, da die zu erwartenden Rundungsfehler geringer sind und nicht davon ausgegangen werden muss, dass ein Zwischenwert den Rahmen des mit Floating-Point-Zahlen darstellbaren Zahlenraums sprengt. Allerdings können sehr kleine Werte gegenüber sehr großen bei der Berechnung verloren gehen, ein Effekt, der aber gerade in der Audiotechnik eher verschmerzbar ist, da für das menschliche Ohr sehr leise Signale von lauten Signalen meist psychoakustisch verdeckt werden. In dieser Anwendung wird im Übrigen von Floating-Point reger Gebrauch gemacht – die meisten modernen HD-Recordingsysteme (namentlich Nuendo, Logic, Samplitude, SADiE, Pyramix) arbeiten intern mit auf Gleitkommazahlen basierenden Bussen. Pro Tools arbeitet mit Festkommaarithmetik.

Computerschnittstellen

Apple führte im März 2001 mit Mac OS X eine komplett überarbeitete Version des Betriebssystems ein, das mit Core Audio ein Audiosubsystem mitbringt, welches intern komplett auf Gleitkommazahlen basiert. Lediglich bei der Schnittstelle in Richtung der angeschlossenen Hardwarekomponenten oder beim Ausspielen in Dateien kann optional noch in Integerlogik gewandelt werden. Seit der Version 10.3 kann für die Durchführung dieser Operation auf die Erweiterungen der AudioUnits zurückgegriffen werden. Hierzu muss nur ein entsprechendes Konverterobjekt instantiiert und an der richtigen Stelle in die Prozesskette eingehängt werden.

DirectSound, die Microsoft-eigene Schnittstelle zur Soundverarbeitung hingegen, arbeitet nur mit Integern.

Das von Steinberg Media Technologies (später Pinnacle und mittlerweile Yamaha) entwickelte, speziell auf niedrige Latenzen ausgelegte Interface namens ASIO ist zur Anbindung von Soundhardware gedacht und unterstützt Sampleraten von 32kHz bis 192kHz bei Wortbreiten von 16, 24 und 32 Bit in Integernotation sowie 32-bit und 64-bit Gleitkommawerte.

Plugins, die für die RTAS-Schnittstelle von Pro Tools, für Steinbergs VST-Umgebung programmiert wurden oder die für die generische Verwendung unter Mac und Logic als Audio Units implementiert wurden, werden ebenfalls mit Gleitkommawerten angesprochen.

Die Schnittstelle DXi, die von Cakewalk (TwelveToneSystems) für deren Produkte Sonar und HomeStudio entwickelt wurde, verschafft sich in diesem Zusammenhang einen eher zweifelhaften Ruhm als einzige Ausnahme. In diesem System sind Gleitkommazahlen nicht gedacht, es muss komplett in ganzzahliger Arithmetik gerechnet werden.

Die Wandlung in analoge Signale geschieht bei fast allen System bereits in der Treiberschicht, es sei denn, es wird Hardware angesprochen, die mit einem DSP ausgestattet ist. In diesen Fällen übernimmt dieser dann die Aufgabe und entlastet damit die CPU des Hostrechners.

Die meisten aktuellen Programme, die Audiodaten verarbeiten, sind mittlerweile bei der internen Datenverarbeitung auf die Verwendung von Gleitkommazahlen umgestiegen, da die Vielzahl an Signalquellen schnell den Headroom des digitalen Mixers in Integerarithmetik sprengen würde (siehe #Summenbusse). Die Hersteller der folgenden Applikationen werben mit der Verwendung von Gleitkommazahlen als internes Datenformat

Pro Tools spielt in diesem Zusammenhang mit den von Digidesign eingesetzten externen DSP-Racks der TDM-Systeme eine Sonderrolle, da die dort zum Einsatz kommenden DSPs von Motorola nur Integerarithmetik beherrschen.

Dateiformate

Auch in einigen Datenformaten zur Speicherung von Multimediainformationen werden Gleitkommazahlen verwendet, um Umrechnungsfehler, die ansonsten bei der Kodierung und Dekodierung entstehen könnten, zu vermeiden. Die folgende Tabelle gibt einen Überblick über häufig verwendete, nicht datenreduzierte Audioformate und zeigt, in welchen Zahlenformaten diese jeweils Audioinformationen ablegen können.

Format 8-bit Int 16-bit Int 24-bit Int 32-bit Int 32-bit FP 64-bit FP
Microsoft WAV format (little endian) x x x x x x
Apple/SGI AIFF format (big endian) x x x x x x
Sun/NeXT AU format (big endian) x x x x x x
RAW PCM data x x x x x x
Ensoniq PARIS file format x x x x
Amiga IFF / SVX8 / SV16 format x x
Sphere NIST format x x x x
VOC files x
Berkeley/IRCAM/CARL x x x x
Sonic Foundry's 64 bit RIFF/WAV x x x x x
Matlab (tm) / GNU Octave x x x x
Portable Voice Format x x x
Audio Visual Research x x
MS WAVE mit WAVEFORMATEX x x x x x

(FP = Floating-Point, Int = Integer)

Bei datenreduzierten Formaten gestaltet sich die Analyse etwas schwieriger, da diese auf Containerformaten basieren, die in der Regel intern alle Notationen zulassen. So ist es beispielsweise in Apples Quicktime-Codecs möglich, Gleitkommazahlen direkt abzuspeichern. Es gibt allerdings nach wie vor kein Medium für Endverbraucher, auf dem in standardisierter Form Samples in Gleitkommazahlen zum Einsatz kommen.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Gleitkommazahlen — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Fließkommazahl — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitkomma — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitkommaarithmetik — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitkommastandard — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitpunkt — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitpunktarithmetik — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Gleitpunktformat — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Hidden bit — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

  • Rechengenauigkeit — Eine Gleitkommazahl (auch Gleitpunktzahl oder Fließkommazahl; engl. floating point number) ist eine approximative Darstellung einer reellen Zahl. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen. Zusammen mit den… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”