Universität Karlsruhe Fakultät für Informatik Universität Karlsruhe

Proseminar Redundanz, Fehlertoleranz und Kompression

Die Audiokodierung mp3

André Kappes

Inhaltsverzeichnis

        1. Einleitung: MP3, die erfolgreichste Audiokompression
        1.1. Standardisierung von MPEG Layer 3
        1.2. Spezifikation von En- und Decoder
        1.3. Erfolg von MPEG Layer 3
        1.4. Leistung
        2. Digitalisierung von analogen Signalen
        2.1. Audiosignale
        2.2. Abtasten
        2.3. Quantisierung
        2.4. Digitalisierte Signale
        3. Psychoakustische Prinzipien
        3.1. Das Gehör
        3.2. Maskierung
        4. MPEG-1 Layer 3 Algorithmus
        4.1. Umwandlung in die Frequenzdarstellung
        4.2. Nichtlineare Quantisierung und Huffman-Kodierung
        4.3. Das Format des Bitstroms und der Decoder
        4.4. Stereo-Kodierung
        5. Ausblick
        Literatur

1. Einleitung: MP3, die erfolgreichste Audiokompression

MP3-Boom

In den letzten drei Jahren ist MP3 der Audiokompressionstandard schlechthin geworden. Jeder, der sich mit Musik und deren digitaler Speicherung auseinandersetzt, dürfte inzwischen von ihm gehört haben, denn MP3 erfreut sich besonders beim Endanwender steigender Beliebtheit. Endlich sind Musikdateien so klein, dass man sie bequem aus dem Internet laden und auf dem heimischen PC speichern kann - oder noch besser: auf dem portablen MP3-Player überall hin mitnehmen kann. Und dabei ist der Qualitätsverlust beim Komprimieren - je nach gewählter Bitrate - fast nicht festzustellen. Im Internet ist ein riesiger MP3-Boom entstanden: MP3 führt seit längerem die Hitliste der meistgesuchten Begriffe in Suchmaschinen an, En- und Decoder sind zum Teil kostenlos zum Download verfügbar und in speziellen Netzen wie Morpheus, Gnutella und anderen floriert ein reger - wenn auch illegaler - Austausch von MP3-Dateien.

Struktur der Ausarbeitung

Dieser Text beinhaltet eine Einführung in die Eigenschaften und Funktionsweisen dieser Audiokompression: Zu Anfang wird auf die Eigenschaften von MP3 und insbesondere auf die Gründe seines überragenden Erfolgs eingangen. Die darauf folgenden Abschnitte erläutern die Grundlagen für die MPEG-Audiokompression: Zuerst wird die Digitalisierung von analogen Audiosignalen, dann das in MP3 verwendete psychoakustische Modell behandelt, das die eigentliche "Intelligenz" der Kompression darstellt. Danach wird der Algorithmus zur Kodierung von MP3-Dateien beschrieben und abschließend noch ein Ausblick auf künftige Entwicklungen gegeben.

1.1. Standardisierung von MPEG Layer 3

MP3 = MPEG Layer 3

MP3 steht eigentlich für MPEG Audiolayer 3. MPEG ist die "Motion Picture Experts Group", eine Arbeitsgruppe der ISO (International Organization for Standardization), die sich mit der Standardisierung von Video- und Audiokompression befasst. Ziel war es, die Datenmenge zur Speicherung, sowie für die Übertragung durch Kanäle mit begrenzter Bandbreite, wie Netzwerk- oder ISDN-Leitungen, zu reduzieren.

Geschichte

Die MPEG begann mit Ihrer Arbeit 1988. Verschiedene damals vorhandene Projekte zur Video- und Audiokompression wurden zusammengefasst. 1992 entstand der erste Standard MPEG-1. Neben der Videokompression spezifiziert er drei verschiedene Verfahren zur Audiokompression, die Audiolayer 1, 2 und 3, die aufsteigend komplexer, aber auch leistungsfähiger werden. Im Nachfolgestandard MPEG-2 (1994) werden außerdem noch einige Erweiterungen bezüglich der Anzahl der Kanäle und der möglichen Bitraten und Samplingfrequenzen (siehe Abschnitte 1.3, 2.2) vorgenommen.

Offener Standard

Der MPEG-Standard ist ein offener Standard, d.h. seine Spezifikation ist für jeden gegen ein gewisses Entgelt zugänglich. Des weiteren schreibt die ISO vor, dass Patenthalter an Standards ihre Lizenzen an alle zu gleichen Konditionen vergeben müssen. Das bedeutet, dass der Endanwender für eine En- oder Decoder-Lizenz genauso viel bezahlt wie industrielle Lizenznehmer.

1.2. Spezifikation von En- und Decoder

In der Spezifikation der MPEG-1-Audiolayers gibt es einen großen Unterschied zwischen Decoder und Encoder. Die MPEG versuchte, möglichst wenig normative Elemente in den Standard zu bringen. So wird bei der Audiokompression nur der Decoder und der Aufbau einer Datei eindeutig spezifiziert.

Der Encoder

Der Encoder ist nicht standardisiert. Es existiert lediglich eine Beispielimplementation, die allerdings aus den Anfängen des Standards stammt. Die darin verwendeten Daten und Verfahren sind deshalb noch nicht optimal. Der Bau eines Encoders bleibt somit völlig dem Implementierer überlassen, weshalb hier noch Raum für weitere Entwicklungen ist.

Einen wirklich effektiven Encoder zu bauen ist allerdings sehr aufwendig. Man benötigt dazu viele Messdaten von Testhörern um auf einer möglichst breiten Palette von Audiosignalen gute Qualität zu erzielen. So ist die Zahl der unabhängig entwickelten Encoder sehr klein. Das Fraunhofer Institut für Integrierte Schaltungen (IIS), das maßgeblich an der Entwicklung des MPEG-Standards beteiligt war, hat den berühmtesten Encoder entwickelt. Daneben gibt es noch einen Encoder der Firma Xing und verschiedene, aus der ISO-Beispielimplementation abgeleitete, wie z.B. bladeenc, Lame oder gogo.

Der Decoder

In der ISO-Spezifikation für MPEG Layer 3 wird auch der Decoder nicht bis in die Implementierung hinein beschrieben. Es wird dagegen eine allgemeine Vorgehensweise vorgestellt, nach der man den Decoder auf verschiedenen Systemarchitekturen (z.B. Fließkomma- und Festkommarechnern) implementieren kann. Zur Überprüfung, ob ein Decoder das leistet, was er soll, dient ein Beispieldecoder in der ISO-Norm, mit dem die Ausgabe des entworfenen Decoders verglichen werden kann ([KB]).

1.3. Erfolg von MPEG Layer 3

Professionelle Anwendungen

Noch bevor um 1998 MPEG Layer 3 vom Endanwender entdeckt wurde, gab es bereits viele industrielle Produkte, die auf MPEG basierten: Digital Audio Broadcasting (DAB), insbesondere z.B. das WorldSpace-Satellitensystem zur Radioübertragung, genauso wie die Audiodatenübermittlung per ISDN-Leitung für Videokonferenzen oder Digital Video Broadcasting (DVB) setzen auf MPEG Layer 3 auf.

Erfolg beim Endanwender

Schließlich wurde auch der Endanwender auf MPEG Layer 3 aufmerksam. Unterstützende Faktoren hierfür waren z.B. Außerdem trug dazu bei, dass MPEG Layer 3 ein offener Standard ist, dessen En- und Decoder für jeden lizensierbar sind. Im Gegensatz zu proprietären (firmeneigenen) Formaten wie der Minidisc von Sony oder der AC-3-Kompression von Dolby kann jeder einfach in Besitz eines En- und Decoders gelangen.

1.4. Leistung

Die Leistung einer MPEG Layer 3-Kompression lässt im Wesentlichen durch drei Faktoren beschreiben: die eingesetzte Bitrate, die verwendete Bandbreite und die benutzten Kanäle.

Bitrate

Die Bitrate wird in Kilobit pro Sekunde (kbps) angegeben und bei der Kodierung eingestellt. Sie bestimmt maßgeblich die Kompression und die Qualität der erzeugten MPEG Layer 3-Datei. Je höher sie ist, desto mehr Bits hat der Encoder zum Komprimieren von einer Sekunde Audiosignal zur Verfügung, desto größer wird aber auch die Ausgabedatei, bzw. die in Netzen pro Sekunde zu übertragenden Bits, wenn man Echtzeitübertragungen nutzt.

Im MPEG-1 Standard werden mögliche Bitraten von 32 bis 320 kbps spezifiziert.

Bandbreite

Die Bandbreite (in Hz) einer Layer 3-Datei, bzw. allgemein einer Audiodatei gibt die höchste gespeicherte Frequenz an, diese entspricht der Hälfte des Bandbreitenwerts (siehe Abschnitt 2.2.). Unterstützt werden von MPEG-1 Layer 3 Bandbreiten von 32, 44.1 und 48kHz.

Kanäle

Sowohl ein wie auch zwei Audiokanäle können bei MPEG-1 Layer 3 kodiert werden. Zweikanalsignale können dabei Stereodaten oder zwei unterschiedliche Signale, z.B. verschiedene Sprachen enthalten.

MPEG-2-Erweiterungen zum Audiolayer 3

In MPEG-2 werden zusätzlich kleinere Samplingfrequenzen von 16, 22 und 24 kHz und Bitraten ab 16kbps zugelassen. Außerdem unterstützt MPEG-2 mehr als zwei Kanäle: Neben dem 3/2 Kanalkonzept mit linkem, rechtem und mittlerem bzw. Sourroundkanal gibt es zum Beispiel das aus dem Kino bekannte 5.1-Kanalverfahren ([FL1]). MPEG-2 spezifiziert außerdem ein zu MPEG Layer 3 inkompatibles, verbessertes Verfahren zur Audiokodierung, MPEG-2 AAC (Advanced Audio Coding) (siehe Abschnitt 5.).

Konstante und variable Bitrate

Bei Echtzeitübertragungen, auch MPEG Layer 3-Streams genannt, hat der Übertragungskanal meist eine begrenzte Bandbreite, z.B. 64kbps oder 128kbps bei Ein-, bzw. Zweikanal-ISDN-Leitungen. Deshalb ist es von Vorteil, wenn man eine feste Bitrate garantieren kann. Das versteht man unter dem Begriff konstante Bitrate (engl.: constant bit rate, CBR). Die Kodierung in konstanter Bitrate ist die ursprüngliche Methode bei der Erzeugung von MPEG Layer 3-Dateien. Sie wird heute am häufigsten eingesetzt.

Nachteilig bei konstanter Bitrate ist, dass nicht adaptiv auf die Komplexität des Eingangssignals reagiert werden kann. So erfordern Bereiche in einem Audiosignal, die mehr Information enthalten eventuell eine größere Bitrate, damit man sie ohne hörbaren Verlust kodieren kann. Andere Passagen im Signal, z.B. leise Abschnitte in einem Musikstück, benötigen gar nicht die volle zur Verfügung stehende Bitrate.

Neuere Encoder besitzen deshalb die Möglichkeit der Kodierung in variablen Bitrate (VBR). Das bedeutet, dass die verwendete Bitrate während der Kodierung an das Signal angepasst wird und sich fortwährend ändert. Je nach Encoder kann man dabei nur eine Qualitätsstufe (gut-mittel-schlecht), eine angepeilte Bitrate oder eine Bitrate, die keinesfalls überschritten werden darf, angeben. Der Vorteil bei variabler Bitrate ist ein reduzierter Ressourcenverbrauch (bezogen auf Platz und Kanalbandbreite) bei gleichzeitig besserer Qualität. Nachteilig ist ein etwas höherer Komplexitätsgrad bei der Kodierung.

Tabelle

Folgende Tabelle ([FR]) gibt Aufschluss darüber, wie Bitrate und Kompression und die erzeugte Qualität bei MPEG Layer 3 in Verbindung stehen. Die angegebene Bandbreite ist hierbei die des Eingangssignals, nicht die von der MPEG Layer 3-Kodierung eingesetzte.

In der Tabelle kann man erkennen, dass z.B. mit einer Übertragungskanalbreite von 64kbps wie sie Einkanal-ISDN-Leitungen besitzen schon Audiosignale in FM-Radioqualität übermittelt werden können. Für die Kodierung von Signalen in CD-Qualität verwendet man üblicherweise 128kbps und mehr (besser sind 160kbps oder sogar 192kbps). Zum Vergleich dazu: Ein umkomprimiertes Audiosignal in CD-Qualität (44.100 kHz, 16 Bit, Stereo) benötigt ca. 1.400 kbps = 1,4 Mbps (Megabit pro Sekunde, siehe Abschnitt 2.4).

Klangqualität Bandbreite Modus Bitrate Kompressionsrate
Telefon 2.5 kHz mono 8 kbps * 96:1
besser als Kurzwelle 4.5 kHz mono 16 kbps 48:1
besser als AM Radio 7.5 kHz mono 32 kbps 24:1
ähnlich FM Radio 11 kHz stereo 56...64 kbps 26...24:1
Fast-CD 15 kHz stereo 96 kbps 16:1
CD >15 kHz stereo 112..128kbps 14..12:1

*) nicht im MPEG-Standard. Erweiterung des Fraunhofer Instituts (MPEG 2.5)

2. Digitalisierung von analogen Signalen

Um zu verstehen wie die MPEG-Audiokompression funktioniert, muss man sich zuerst mit den Eingangsdaten auseinandersetzen, die komprimiert werden sollen, das sind digitalisierte Audiosignale.

2.1. Audiosignale

Schallwellen

Audiosignale sind Schallwellen. Als solche sind sie nur in den seltensten Fällen reine Sinusschwingungen. Vielmehr besteht eine Schallwelle aus einer Überlagerung von unendlich vielen Sinuskurven und ist auch nicht periodisch wie die Sinusfunktion. Zwei Größen bestimmen im Wesentlichen die Art der Schallwelle: Die Amplitude A ist die maximale Differenz des Ausschlags vom Nulllevel. Sie bestimmt die von der Welle übertragene Energie, hier also den Schalldruck (in dB, Dezibel) des Signals und somit letztendlich die von uns wahrgenommene Lautstärke. Die Frequenz f gibt die Anzahl der Schwingungen pro Sekunde an (in Hz, Hertz) und charakterisiert die wahrgenommene Tonhöhe. Jede einzelne dieser unendlich vielen Sinuskurven besitzt für sich eine Amplitude Ai und Frequenz fi. Die Amplitude gibt an mit welchem Anteil die Sinusschwingung mit Frequenz fi in der gesamten Schallwelle vertreten sein wird. Eine normale Schallwelle entsteht also aus der Addition, der mathematischen Überlagerung aller unendlich vielen Sinuskurven.


Abbildung 1: Analoges Eingangssignal

Analoge Übertragung

Die herkömmliche Art Audiosignale zu übermitteln ist die analoge Übertragung. "Analog" bedeutet gleichartig und bezeichnet Vorgänge die zwar verschieden sind, aber trotzdem gleichen Gesetzmäßgikeiten unterliegen. In diesem Fall verhalten sich Schallwellen und elektromagnetische Wellen analog zueinander. Die grundsätzliche Beschaffenheit des Signals, nämlich das es eine Welle ist, also eine Überlagerung unendlich vieler Sinuskurven, ändert sich bei der Überführung von Schall in elektromagnetische Wellen nicht. So funktioniert die Signalübertragung beispielsweise in HiFi-Anlagen oder beim analogen Telefon.

2.2. Abtasten

Zur digitalen Speicherung möchte man die kontinuierliche Welle durch eine Reihe von diskreten Werten darstellen. Dazu misst man in bestimmten Zeitabständen den Signalwert: Die Schallwellen werden in elektromagnetischen Schwingungen übertragen, das bedeutet, der Strompegel am Audioeingang ändert sich fortwährend, gemäß dem übertragenen Audiosignal. Dieser Pegel wird gemessen. Diesen Prozess bezeichnet man als das Abtasten (engl. sampling) eines Signals. Die entstehenden Abtastwerte werden auch Samples genannt.

Zu entscheiden bleibt, wie oft in der Sekunde, d.h. mit welcher Frequenz man das Signal abtasten soll. Das Abtasttheorem von Shannon macht darüber eine Aussage:

Abtasttheorem (Shannon, 1948)

Enthält ein Signal keine Frequenzen, die größer sind als die Frequenz f0, so kann man es exakt wiedergeben, in dem man die Signalwerte an einer Reihe von diskreten Punkten im Abstand
       1
t = --------
      2*f0
angibt. ([SH])

Anders ausgedrückt muss die Abtastrate (engl. sampling rate, sampling frequency) mindestens doppelt so groß wie die höchste zu erfassende Frequenz sein. Will man beispielsweise alle Frequenzen unterhalb von 12kHz erfassen, so muss man alle Frequenzen über 12kHz herausfiltern und dann mit mindestens 24kHz Samplingfrequenz abtasten.

Natürlich gehen beim Abtasten Daten verloren. Betrachtet man aber die Tatsache, dass das menschliche Gehör nur ungefähr einen Frequenzbereich von 20Hz bis 20.000Hz wahrnehmen kann, so wird dieser Verlust unhörbar, wenn man die Abtastrate groß genug wählt. Die Samplingfrequenz sollte zur qualitativ hochwertigen Repräsentation des Audiosignals also über 40.000Hz liegen. Bei CD-Qualität verwendet man deshalb eine Abtastrate von 44,1kHz. Inzwischen gibt es auch Formate mit 48 und 96kHz Abtastrate.


Abbildung 2: Abtasten des analogen Signals

2.3. Quantisierung

Dennoch ist Digitalisierung von analogen Signalen verlustbehaftet. Der Computer kann nur ganze, bzw. endliche Zahlen verarbeiten. Die abgetasteten Pegelwerte entsprechen aber keineswegs ganzen Zahlen, sondern können jeden Wert zwischen Ober- und Untergrenze annehmen. Um sie digital zu erfassen, werden die Abtastwerte gerundet. Dieses Vorgehen bezeichnet man als Quantisierung. Man speichert jeden Abtastwert als Ganzzahl mit bestimmter Auflösung in Bit. Die größte in dieser Auflösung darstellbare Zahl entspricht der Obergrenze der Pegelausschläge, die kleinste der Untergrenze. Je höher die Auflösung ist, desto mehr Zwischenwerte zwischen Ober- und Untergrenze können unterschieden werden, desto genauer wird das Signal also gespeichert.

Bei CD-Qualität quantisiert man jeden Abtastwert beispielsweise als 16Bit-Ganzzahl. Damit kann man 65.536 verschiedene Werte darstellen.

Quantisierung bedeutet also die Speicherung eines Wertes mit bestimmter Auflösung. Je kleiner diese Auflösung, desto mehr Rundung wird eingeführt und desto ungeauer ist der schließlich gespeicherte Wert.


Abbildung 3: Quantisieren, Werten wird Mittelwert des Intevalls zugeordnet

2.4. Digitalisierte Signale

Das Datenaufkommen für ein digitalisiertes Audiosignal in CD-Qualität sieht also wie folgt aus: Das Eingangssignal wird 44.100 Mal pro Sekunde abgetastet und jeder Abtastwert wird als 16Bit Ganzzahl gespeichert. Da Stereosignale vorliegen, verdoppelt sich dieses Datenaufkommen nochmal, weil man beide Kanäle getrennt speichern muss. Es ergibt sich also für eine Sekunde Musik in CD-Qualität ein Datenaufkommen von:
        44.100 Hz * 16 Bit * 2 = 1.411.200.000 Bit/s = 1,4 MBit/s
Das bedeutet, dass das Datenaufkommen für Audiosignale in akzeptabler Qualität sehr groß ist, im Vergleich zu heutigen Speichermedien und vor allem Übertragungskanalbreiten. Auch mit herkömmlicher, verlustfreier Kompression (LZW-Verfahren u.ä.) lässt sich das Datenaufkommen nur um einen Faktor 2 verringern ([PN]). Aus diesem Grund heraus ist die Notwendigkeit für Audiokompression entstanden.

3. Psychoakustische Prinzipien

Die MPEG-Audiokompression beruht auf dem Umstand, dass in Audiosignalen vorhandene "Information" vom Gehör nicht wahrgenommen werden kann. Das Gehör verfügt über eine Art Filterfunktion: Bei einer Überlagerung von Geräuschen dominiert das lauteste. Leisere Signale können teilweise überhaupt nicht mehr gehört werden. Ein Beispiel ist das Ticken eines Weckers. Bei Stille ist es gut hörbar, klingelt der Wecker, kann man es nicht mehr wahrnehmen, obwohl der Wecker weitertickt. Das Ticken wird also durch das Klingeln maskiert.

Damit enthält aber solche nichthörbare "Information" gar keine eigentliche Information, denn sie wird für den Empfänger irrelevant. Eine Audiokompression muss deshalb versuchen, die irrelevante Information zu erkennen und diesen Umstand möglichst geschickt auszunutzen. Zum ersten Schritt benötigt man eine möglichst präzise Beschreibung des menschlichen Gehörs. Diese kommt aus der Psychoakustik, die sich mit der Wahrnehmung von Geräuschen befasst.

3.1. Das Gehör

Das Gehörorgan, auch Cochelarorgan genannt, befindet sich im Innenohr. Dort wird eine Frequenzanalyse der einfallenden Schallwellen vorgenommen: Verschiedene Bereiche des Gehörs werden durch verschiedene Frequenzen angeregt. Das Gehör kann so Frequenzen von ungefähr 20Hz bis 20kHz erfassen (mit zunehmendem Alter oft nur bis 16kHz).

Um also die durch Maskierung unhörbaren Daten zu erkennen, muss man als ersten Schritt das Audiosignal ebenfalls in den Frequenzbereich transformieren.

Kritische Bänder

Empirische Untersuchungen haben ergeben, dass die bestimmten Frequenzen zugeordneten Bereiche nicht fließend ineinander übergehen, sondern dass es sogenannte kritische Bänder gibt, die jeweils bestimmte Frequenzbereiche abdecken. Frequenzen innerhalb eines kritischen Bandes werden zusammen wahrgenommen, deshalb sind dort Maskierungseffekte besonders ausgeprägt. Ein lauter Ton in einem kritischen Band bewirkt, dass man andere Frequenzen im gleichen Band nur sehr schlecht hören kann.

Die kritischen Bänder sind nicht gleichbreit, sondern werden mit zunehmender Frequenz breiter. Damit verbunden wird auch die Auflösung für höhere Frequenzen schlechter. Am dichtesten liegen die kritischen Bänder im Bereich von 2-5kHz, was ungefähr der Frequenz der menschlichen Sprache entspricht.

Das heißt: Kritische Bänder sollten bei der Maskierung zusammen behandelt werden und das Frequenzspektrum sollte möglichst nach der Lage der kritischen Bänder unterteilt werden.

3.2. Maskierung

Der zentrale Effekt, der zur Irrelevanz von bestimmten Daten in Audiosignalen führt, ist die Maskierung. Diese bildet beim MPEG-Algorithmus das Fundament der Kompression.

Gleichzeitige Maskierung

Im Beispiel mit dem Wecker haben wir festgestellt, dass leise Geräusche von lauteren verdeckt werden. Betrachtet man einen bestimmten Zeitpunkt so existiert dort also ein Effekt der gleichzeitigen Maskierung. Ein Signal mit bestimmter Frequenz und Lautstärke erzeugt einen Bereich in der Frequenzdomäne, in dem andere Signale nicht wahrgenommen werden können. Dieser wird durch eine Lautstärkenschwelle begrenzt, die man als Maskierungskurve bezeichnet. Diese Kurve nimmt nach beiden Seiten von der Frequenz des maskierenden Signals ab. Je größer also der Frequenzunterschied zu der Frequenz des maskierenden Signals ist, desto weniger laut muss ein zweites Signal sein, damit man es hört.

In Abbildung 4 ([FR]) ist die Markierungskurve (masking threshold) für einen Maskierer dargestellt. Alle unterhalb dieser Linie liegenden Frequenzen werden unhörbar (masked sound, inaudible signal). "Threshold in quiet" bezeichnet die absolute Hörschwelle, also den Schalldruck, den ein Signal mindestens haben muss, damit man es überhaupt hört. Die absolute Hörschwelle hängt von der Frequenz ab. Sie ist am niedrigsten zwischen 2 und 5kHz und nimmt zu den tiefen, wie hohen Frequenzen zu. Durch ein Signal wird die absolute Hörschwelle folglich ausgelenkt und Maskierung verursacht.


Abbildung 4: Gleichzeitige Maskierung mit einem Maskierer

Temporale Maskierung

Neben der gleichzeitigen Maskierung existiert außerdem eine zeitliche Maskierung. Nach einem lauten Signal braucht das Gehör eine gewisse Zeit, bis es wieder leisere Signale wahrnehmen kann. Diese Zeitspanne beträgt ungefähr 50 bis 300ms. Daneben gibt es auch eine Maskierung vor dem Signal, in der ebenso leisere Geräusche nicht gehört werden können. Die Zeitspanne dafür ist allerdings viel kürzer: Sie beträgt nur etwa 5ms. Die temporale Maskierung ist dabei eigentlich nur ein Spezialfall der gleichzeitigen Maskierung, die noch über das Abklingen eines Geräusches hinaus wirkt. In Abbildung 5 ([AS]) entsteht durch den blauen Maskierer eine zeitliche Maskierungskurve (schwarz).


Abbildung 5: Zeitliche Maskierung

Im MPEG Layer 3-Algorithmus wird hauptsächlich nur die gleichzeitige Maskierung ausgenutzt. Erst bei MPEG-2 AAC gehen auch die temporalen Maskierungseffekte voll ein (siehe Abschnitt 5.).

Die Maskierungskurve

Um irrelevante Daten zum Zeitpunkt t zu erkennen, muss man also in diesem Zeitpunkt die Maskierungskurve für das Audiosignal ermitteln. Unter dieser Kurve liegen dann alle Daten, die unhörbar sind.

Empirisch messbar sind aber nur Maskierungskurven für einfache Signalkonfigurationen. Die Maskierungsfunktion eines reinen Sinustons (eine einzige Frequenz) kann durch Hörtests ermittelt werden. Zur Kodierung liegen aber im Normalfall komplexe, unvorhersagbare Signal vor. Deshalb werden in dem zu kodierenden Signal erst einzelne Maskierer ermittelt. Deren Maskierungsfunktionen kann man berechnen und schließlich zu einer resultierenden Maskierungsfunktion überlagern.

Bei der Berechnung der einzelnen Maskierungskurven wird das Modell der kritischen Bänder einbezogen. Man unterscheidet zwischen der Maskierung innerhalb eines kritischen Bandes und der Maskierung, die auf die Nachbarbänder wirkt und berechnet die Maskierungsfunktion jeweils verschieden.

Überlagerung der Maskierungskurven

In der ISO-Beispielimplementation für den MPEG-Encoder, also im anfänglichen MPEG-Modell wird die resultierende Maskierungskurve folgendermaßen berechnet. Man geht von einer linearen Addition der einzelnen Maskierungskurven aus. Weil diese aber unterschiedlich sind, je nach dem, ob der Maskierer eher ein Ton (ideal: eine einzige Frequenz) oder ein Geräusch (ein breites Band von Frequenzen) ist, wird vorher die Art des Maskierers bestimmt. Damit erzielt man relativ gute Resultate. Im hohen Frequenzbereich wird aber z.B. davon ausgegangen, dass Maskierer eher Geräusche als Töne sind, denn Rauschen tritt üblicherweise genau in diesem Bereich auf. Dadurch wird bei Tönen mit hohen Frequenzen eine zu breite Maskierungskurve berechnet.

Ein neuerer Ansatz propagiert dagegen, dass die Maskierungskurven sich in nichtlinearer Form addieren. Damit erhält man nach Untersuchungen deutlich bessere Ergebnisse als mit dem ursprünglichen MPEG-Ansatz, denn auch das Gehör scheint auf einer Nichtlinearität zu basieren ([FB]).

4. MPEG-1 Layer 3 Algorithmus

Der Algorithmus zur Kodierung von MPEG Layer 3-Dateien beinhaltet folgende Schritte: Zuerst wird das Audiosignal in den Frequenzbereich überführt. Die Maskierungskurve zum jeweiligen Zeitpunkt wird bestimmt und die Frequenzdaten werden aufgrund dieser Daten entsprechend quantisiert. Dieses geschieht in einem iterativen Prozess, der auch eine Kodierung der Ausgabedaten mit dem Huffman-Verfahren beinhaltet.

Abbildung 6 ([KB]) stellt den groben Aufbau eines MPEG Layer 3-Encoders dar. Gelb markiert ist die im folgenden Abschnitt erklärte Wandlung des Audiosignals in die Frequenzdarstellung. Die blau unterlegten Blöcke beinhalten die Berechnung des psychoakustischen Modells. In den roten Abschnitten erfolgt die eigentliche Kodierung, wie sie in Abschnitt 4.2 beschrieben wird. Der grüne Abschnitt formatiert den Ausgabestrom und fügt, wenn gewünscht, unter anderem eine Fehlererkennung und -korrektur mittels CRC (Cyclic Redundancy Code) hinzu.

Zunächst wird der Algorithmus für einen Audiosignalkanal erklärt, denn er arbeitet bei mehreren Kanälen zu größten Teil auf jedem Kanal einzeln. Wie man Stereodaten möglichst effektiv komprimiert, wird erst danach erläutert (siehe Abschnitt 4.4).


Abbildung 6: Aufbau eines MPEG Layer 3-Encoders

4.1. Umwandlung in die Frequenzdarstellung

Die bei der Zeit-Frequenz-Umwandlung eingesetzte Filterbank ist eine sogenannte Hybrid-Filterbank (verflechtete Filterbank). Die Verflechtung besteht dabei in einer Hintereinanderschaltung einer Polyphase Filterbank wie sie auch beim MPEG Audiolayer 1 oder 2 eingesetzt wird, gefolgt von einer modifizierten diskreten Cosinustransformation (MDCT).

Frame-Bildung

Zu Anfang wird das Audiosignal in kleiner Abschnitte, sogenannte Frames unterteilt. Ein Frame in Layer 3 besteht aus 1152 Samples.

Polyphase Filterbank

Der erste Schritt zur Umwandlung der Audiosignale im Zeitbereich in den Frequenzbereich ist eine Polyphase Filterbank (Mehrphasenfilterbank). Hierbei handelt es sich um eine Anzahl Bandpass-Filter, die jeder einen bestimmten Frequenzbereich herausfiltern können.

In der Filterbank werden 32 parallele Bandpass-Filter eingesetzt. Das Spektrum wird in 32 gleichbreite, sogenannte Subbänder unterteilt, die zu jeweils einem Filter gehören. Beim Filtern werden nun die ersten 32 Samples im Zeitbereich in 32 Samples im Frequenzbereich umgewandelt. Das Ergebnis ist ein Spektrum für die Zeitspanne t1, der ersten 32 Samples. Die gleiche Umwandlung geschieht mit den nächsten 32 Zeitsamples und ergibt ein Spektrum für die Zeitspanne t2. Insgesamt erhält man 36*32 Frequenzwerte für 36 Zeiten t1 bis t36. Das sind also 36 Frequenzspektren mit jeweils 32 Werten. In jedem Subband stehen dabei 36 Samples im Zeitbereich, die alle in einem bestimmten Frequenzbereich liegen. Abbildung 7 zeigt einen Ausschnitt (12 Samples pro Subband) einer Ausgabe der Filterbank.

Bei der Filterbankanalyse des Signals entstehen Aliasing-Effekte, d.h. Daten, die doppelt gespeichert werden: Die Filterbänke sind nicht ideal rechteckig, sondern überlappen sich gegenseitig an den Rändern. Deshalb werden Frequenzen eventuell in zwei benachbarten Subbändern gespeichert. Diese redundante Information wird in einem späteren Teil des Encoders wieder herausgerechnet.


Abbildung 7: Ausgabe der Polyphase Filterbank: 32 Subbänder mit Zeitsamples

Die modifizierte diskrete Cosinustransformation

Die modifizierte diskrete Cosinustransformation (MDCT) ist eine Zeit-Frequenz-Transformation ähnlich der diskreten Fouriertransformation. Im Gegensatz zur normalen diskreten Cosinustransformation (DCT) wie sie z.B. bei der JPEG-Kompression zum Einsatz kommt, arbeitet die MDCT nicht auf zweidimensionalen, sondern nur auf eindimensionalen Daten. Außerdem überlappen sich bei der MDCT die aufeinanderfolgenden Transformationsfenster um 50%. Dadurch werden plötzliche Übergänge an den Transformationsblockgrenzen vermieden

Bei Layer 3 wird die MDCT auf die Ausgabe der Polyphase Filterbank angewendet, um die Auflösung im Frequenzbereich noch weiter zu erhöhen. Jedes Subband wird getrennt betrachtet. Dessen Zeitsamples werden in den Frequenzbereich überführt. Die einzelne Frequenzlinie eines Subbands wird so in mehrere Frequenzwerte aufgespalten. Da sich aufeinanderfolgende Frames zur Hälfte überlappen, kann man bei der Transformation die 36 Zeitwerte pro Subband auf nur 18 Frequenzlinien pro Subband abbilden. Zur Rekonstruktion der ursprünglichen Subband-Samples muss man das vorangehende und nachfolgende Frame mit dem aktuellen überlagern und verrechnen. Pro Subband entstehen somit 18 Frequenzlinien, also besteht ein Layer 3-Frame danach aus einem Spektrum mit 576 (=32*18) Frequenzlinien.

Die Frequenzauflösung wird durch die MDCT deutlich verbessert, die Zeitauflösung wird aber entsprechend schlechter, da das erhaltene Frequenzspektrum nun die Zeitspanne aller 1152 Eingangssamples repräsentiert.

Die Verschlechterung der Zeitauflösung hat zur Folge, dass ein Pre-Echo-Effekt auftreten kann. Als Pre-Echo bezeichnet man solche Geräusche, die vor dem eigentlichen Signal entstehen. Beobachten kann man es bei solchen Signalen, die mit einer großen, plötzlichen Lautstärkenänderung beginnen, insbesondere wenn ein Bereich mit sehr niedrigen Amplituden vorausgeht. Als typisches Beispiel gelten Kastagnetten oder andere Percussionsinstrumente. Fällt solch ein Signal in das Ende eines Layer 3-Frames, so ist die durchschnittliche Lautstärke im gesamten Frame relativ groß im Gegensatz zu der tatsächlichen Lautstärke des vorangehenden leisen Abschnitts. Der Encoder berechnet damit eine höhere Maskierungskurve für das gesamte Frame, die die Tatsache, dass die Maskierung erst mit dem einsetzenden lauten Signal beginnt, außer Acht läßt. Während der Quantisierung können wegen der berechneten Maskierungskurve mehr Quantisierungsgeräusche eingefügt werden (siehe Abschnitt 4.2), die gleichmäßig im gesamten Frame verteilt werden. Damit entstehen vor dem eigentlichen Signal Geräusche. Werden diese nicht durch die relativ kurze temporale Pre-Maskierung des Signals verdeckt, so bleiben sie als Pre-Echo hörbar.

Im linken Bild von Abbildung 8 ([AS]) sieht man das unkodierte Audiosignal von Kastagnetten. Im rechten Bild wurde dieses mit einem Transform Coder (d.h. basierend auf einer diskreten Zeit-Frequenztransformation wie bei MPEG Layer 3) kodiert. Man kann deutlich die eingefügten Geräusche vor dem eigentlichen Signal erkennen.


Abbildung 8: Pre-Echo-Beispiel, links: unkodiertes Signal, rechts: durch Transform Coder kodiertes Signal

Um dem Pre-Echo-Effekt vorzubeugen, werden bei der MDCT unterschiedliche Transformationsblocklängen gewählt. Lange Blöcke werden bei stationären, sich also zeitlich wenig ändernden Signalen eingesetzt, um die Kompression zu erhöhen. Kurze Blöcke werden bei sich schnell ändernden Signalen verwendet, um den Bereich, in dem Pre-Echo auftreten kann zu verkleinern. Die Entscheidung darüber, welcher Typ von Signal vorliegt, liefert das psychoakustische Modell. Die Verbindung "window switching" in Abbildung 6 markiert diesen Umstand.

Bei der Blockbildung für die Transformation wird jedes Subband einzeln betrachtet. Je nach Art des Signals im gewählten Subband wird entweder ein langer Block gebildet, der aus 36 Zeitsamples 18 Frequenzlinien produziert. Bei kurzen Blöcken werden immer drei kurze Blöcke hintereinander gebildet, von denen jeder 6 Frequenzlinien enthält, die zu verschiedenen Zeitabschnitten gehören. Diese entstehen jeweils aus 12 Subband-Zeitsamples, aufgrund der bei der MDCT vorhandenen 50%-Überlappung. In einem Subband eines Layer 3-Frames stehen dadurch also immer 18 Frequenzlinien.

Aliasing-Reduzierung

Wie bereits oben erwähnt, enthält das Frequenzspektrum aus der MDCT noch immer redundante Daten von den Filterbänken. Frequenzen an den Rändern der Subbänder sind in den benachbarten Bänder mitgespeichert. Um diese Daten herauszufiltern, werden im MPEG-Standard vordefinierte, sogenannte "Butterfly"-Berechnungen ausgeführt, die die Frequenzen in den Subbandrändern miteinander verrechnen ([KS]).


Abbildung 9: Umwandlung eines Layer 3-Frames in den Frequenzbereich - Zusammenfassung

In Abbildung 9 ([KS]) sind noch einmal alle Schritte zusammengefasst, die im Layer 3-Algorithmus das Signal in den Frequenzbereich transformieren.

FFT und psychoakustisches Modell

Zur Gewinnung von Daten für das psychoakustische Modell und letztendlich zum Berechnen der Maskierungskurven verwendet man meistens eine Fast-Fourier-Transformation (FFT) parallel zur eigentlichen Zeit-Frequenzumwandlung, die die Eingangssamples eines Frames ebenfalls in den Frequenzbereich transformiert.

Es handelt sich dabei um eine 1024-Punkt FFT und vier 256-Punkt-FFT'en, um sowohl im Zeitbereich, als auch im Frequenzbereich eine möglichst hohe Auflösung zu erzielen. Diese ist insbesondere für die unterschiedlichen Blocklängen, die bei der MDCT entstehen, erforderlich. Die FFT'en werden jeweils für ein Layer 3-Frame berechnet. Dabei ist es trotz des Unterschieds zwischen FFT, basierend auf 1024 Samples und der Framebreite von 1152 Samples sinnvoll, eine Zweier-Potenz zu wählen. Die FFT braucht im Gegensatz zu einer 1152-Punkt diskreten Fouriertransformation weniger als 1/100-tel Rechenzeit ([KS]).

Aus den Daten der FFT wird die Pre-Echo-Kontrolle bei der MDCT gewonnen. Außerdem wird jetzt die resultierende Maskierungskurve für jedes Layer 3-Frame aus dem psychoakustischen Modell bestimmt.

4.2. Nichtlineare Quantisierung und Huffman-Kodierung

Im nächsten Abschnitt erfolgt die tatsächliche Kodierung des Layer 3-Bitstroms. Als Eingangsgrößen des Algorithmus dienen die zuvor berechneten 576 Frequenzlinien des Frames, die spezifische, resultierende Maskierungskurve aus dem psychoakustischen Modell und die vom Anwender eingestellte Bitrate. Die Frequenzlinien werden in einem iterativen Prozess aus zwei verschachtelten Schleifen quantisiert und Huffman-kodiert. Die Maskierungskurve dient dabei zur Überprüfung der Güte der Quantisierung. Bevor die eigentliche Iteration beschrieben wird, werden erst die dabei verwendeten Verfahren und Faktoren wie Quantisierung, die Skalierungsfaktoren und die Huffman-Kodierung vorgestellt.

Die Bitrate wird für jedes Frame einzeln gespeichert und kann somit in jedem Frame neu vorgegeben werden. Diese Tatsache wird bei der Kodierung mit variabler Bitrate ausgenutzt: Hierbei wird die Bitrate in jedem Frame an die jeweilige Komplexität des Audiosignals angepasst.

Quantisierung

Die 576 Spektrallinien eines Layer 3-Frames werden quantisiert, um die Datenmenge zu reduzieren. Dazu führt man einen Faktor ein: Die Quantisierungsschrittgröße, auch globale Verstärkung (engl.: global gain) bestimmt, wie stark, d.h. mit welcher Auflösung quantisiert wird. Eine Frequenzlinie wird auf ein Vielfaches der Quantisierungsschrittgröße gerundet und dieser neue Faktor anstelle des alten Werts gespeichert. Entsprechend kann man die ursprüngliche Frequenzlinie bis auf Rundung wieder ausrechnen, indem man den neuen Wert mit der Quantisierungsschrittgröße multipliziert.

Quantisierungsschrittgröße, Qualität und erreichte Kompression beeinflussen sich gegenseitig: Je größer die Quantisierungsschrittgröße ist, desto mehr Rundung wird in Kauf genommen, desto größer ist also die Abweichung vom ursprünglichen Spektrum und desto schlechter die Qualität. Durch eine höhere Quantisierung werden allerdings auch die erhaltenen Werte kleiner und somit das Datenaufkommen reduziert.

Der im MPEG Layer 3-Algorithmus verwendete Quantisierer ist ein sogenannter "power-law"-Quantisierer. Er hat die Eigenschaft, dass er kleinere Werte mit größerer Genauigkeit quantisiert, bei größere Werte dagegen größere Rundungsfehler in Kauf nimmt. Dies geschieht um zu verhindern, dass nur gering vorhandene Frequenzanteile durch die Quantisierung zu schnell zu 0 kodiert werden und verschwinden. Bei großen Spektrallinien kann dagegen die quantisierte Lautstärke der entsprechende Frequenz von der tatsächlichen weiter abweichen, ohne dass man einen Unterschied wahrnimmt. Man spricht deshalb hierbei auch von einer nichtlinearen Quantisierung.

Quantisierungsgeräusche

Fällt die Rundung bei der Quantisierung zu stark aus, so wird sie hörbar. Diese Geräusche bezeichnet man als Quantisierungsgeräusche. Diesen Effekt kann man sowohl im Zeit- wie im Frequenzbereich beobachten.


Abbildung 10: Quantisierungsgeräusche, links: 16Bit Audiosignal, rechts: 4Bit quantisiert

Verwendet man bei der Speicherung von unkodierten Audiosignalen statt der 16Bit wie bei CD-Qualität nur 4Bit, so entsteht im hohen Frequenzbereich ein breites Band an neuen Frequenzen. Dieses nehmen wir als Rauschen wahr. In Abbildung 10 sieht man das Frequenzspektrum des Ausgangssignals und das des mit 4Bit quantisierten Signals. Bei letzterem kann man die eingefügten Quantisierungsgeräusche im hohen Spektrum erkennen.

Im Frequenzbereich dagegen bewirkt eine zu starke Rundung bei der Quantisierung, dass das Signal verwaschen wirkt.

Skalierungsfaktoren

Das Spektrum der 576 Frequenzlinien wird nun in 24 Blöcke unterteilt, derart, dass ein Block ungefähr einem kritischen Band des Gehörs entspricht. Jedem dieser Blöcke wird ein Skalierungsfaktor (engl.: scalefactor) zugeordnet, wobei man solch einen Block auch als Skalierungsfaktorband bezeichnet. Die Skalierungsfaktoren dienen dazu, die durch die Quantisierung eventuell erzeugten Quantisierungsgeräusche wieder auszugleichen. Initiert werden diese Faktoren mit 1.0 und dienen als Multiplikatoren mit den Frequenzwerten im entsprechenden Skalierungsfaktorband. Hier geht also die Unterteilung des Spektrums nach den kritischen Bändern des Gehörs ein.

Huffman-Kodierung

Die nach der Quantisierung erhaltenen Werte werden anschließend mittels Huffman-Verfahren kodiert. Das Huffman-Verfahren hat den Vorteil, das es redundante Daten verlustfrei entfernen kann und ist mit einer der Gründe, wieso MPEG Layer 3 hohe Audioqualität bei kleinen Bitraten erzielen kann.

Kleinere Werte treten im quantisierten Frequenzspektrum häufiger auf als große. Deshalb werden diesen kürzere Huffman-Codewörter zugeordnet. Große Werte erhalten entsprechend längere Codewörter. In Layer 3 sind 32 statische Huffman-Tabellen vorgegeben, aus denen der Algorithmus die für das vorliegende Signal günstigste auswählen kann. Beim weiteren Vorgehen wird das gesamte Layer 3-Frame in kleinere Abschnitte eingeteilt, die alle verschiedene Huffman-Tabellen nutzen können. Auf diese Weise kann man die gewählte Huffman-Tabelle auch auf den Ausschnitt des Frequenzspektrums anpassen, dass kodiert wird. Innerhalb dieser Abschnitte werden Paare von Frequenzwerten oder bei kleinen Werten Quadrupel gemeinsam kodiert.

Iteration

Die Aufgabe der folgenden Iteration ist es, zu gegebener Bitrate und Maskierungskurve die entsprechende Quantisierungsschrittgröße und die die Quantisierungsgeräusche korrigierenden Skalierungsfaktoren zu ermitteln. Dazu werden zwei ineinander geschachtelte Schleifen benutzt ([KB]).

Die innere Schleife (rate control loop):

  1. Die Frequenzlinien des Frames werden mit der aktuellen Quantisierungsschrittgröße quantisiert
  2. Die quantisierten Werte werden mit dem Huffman-Verfahren kodiert.
  3. Die Bitrate bestimmt die Größe, die ein kodiertes Frame haben darf. Liegt die durch die Huffman-Kodierung ausgegebene Framegröße darüber, so wird die Quantisierungsschrittgröße erhöht.
  4. Die Schleife wird wiederholt, bis die Größe des kodierten Frames in der von der Bitrate vorgegebenen liegt.
Die innere Schleife kontrolliert also die letztendlich ausgegebene Datenrate und wird deshalb als "rate control loop" bezeichnet.

Die äußere Schleife (distortion control loop):

  1. Die in der gegenwärtigen Situation vorhandenen Quantisierungsgeräusche werden berechnet. Dazu bildet man die Differenz von ursprünglichem Frequenzspektrum und quantisiertem Frequenzspektrum.
  2. Anschließend wird für jedes Skalierungsfaktorband geprüft, ob die Maskierungskurve diese Quantisierungsgeräusche maskiert, oder ob sie hörbar bleiben würden.
  3. Sind die Quantisierungsgeräusche in einem Skalierungsfaktorband hörbar, so wird der Skalierungsfaktor erhöht. Die Frequenzlinien in diesem Band werden größer und können mit der gleichen Quantisierungschrittgröße genauer quantisiert werden. Der Skalierungsfaktor wird so angepasst, dass keine Quantisierungsgeräusche mehr hörbar sind.
  4. Durch die Modifikation des Skalierungsfaktors in einem Skalierungsfaktorband ändern sich dort die quantisierten Werte, deshalb muss jetzt die innere Schleife erneut ausgeführt werden. Liegen dagegen in allen Bändern die Quantisierungsgeräusche unter der Maskierungskurve, so muss kein Skalierungsfaktor mehr verändert werden und die Schleife bricht ab.
Die äußere Schleife kontrolliert also die Größe der eingeführten Quantisierungsgeräusche in jedem Skalierungsfaktorband und damit die Qualität der Ausgabe. Sie wird als "distortion control loop" (Verzerrungskontrollschleife) oder "noise control loop" (Geräuschkontrollschleife) bezeichnet.

Die innere Schleife konvergiert immer, denn die Quantisierungsschrittgröße kann im schlimmsten Fall soweit erhöht werden, bis alle Frequenzwerte zu 0 verschwinden. Die Konvergenz der äußeren Schleife ist dagegen nicht sicher: Ist die Bitrate zu niedrig, so gibt es eventuell gar keine Konfiguration von Quantisierungsschrittgröße und Skalierungsfaktoren, bei der die Quantisierungsgeräusche in allen Skalierungsfaktorbändern unhörbar sind und die Schleife wird endlos weiterlaufen. Eine simple Lösung für dieses Problem ist, Abbruchbedingungen wie eine bestimmte Anzahl Durchläufe einzuführen, damit die Schleife terminiert. Geschickter ist jedoch, wenn man diese Situation erst gar nicht entstehen lässt. Deshalb werden in guten MPEG Layer 3-Encodern Rahmenbedingungen, z.B. in Form von Toleranzschwellen für jede Bitrate extra gesetzt, damit die äußere Schleife möglichst rasch mit akzeptablem Ergebnis konvergiert.

Bit-Reservoir

In Layer 3 wurde außerdem ein sogenanntes Bitreservoir implementiert. In dieses können die bei der Kodierung eines Frames nicht benötigte Bits gepackt werden. Im darauf folgenden Frame steht das Bitreservoir dann zusätzlich zum Kodieren zur Verfügung. Dies Reservoir ist allerdings nicht sehr groß, es umfasst nur 4088 Bit ([KS]). Um wirklich adaptiv auf das Eingangssignal reagieren zu können, ist die variable Bitrate geeignet.

4.3. Das Format des Bitstroms und der Decoder

Format des Bitstroms

Der Ausgabestrom des Encoders ist im Wesentlichen durch die Layer 3-Frames gegliedert, in denen jeweils 1152 Samples kodiert sind. Benötigt werden zusätzlich Informationen, um aus den kodierten Spektrallinien die ursprünglichen Daten rekonstruieren zu können.


Abbildung 11: Aufbau eines Layer 3-Frames

Einem Layer 3-Frame geht ein Header voraus, der eine Signatur zur Identifizierung eines neuen Frames enthält. Optional kann man nach dem Header eine Fehlererkennung basierend auf den Cyclic Redundancy Codes (CRC) mit Größe 16 Bit kodieren. Diese schützt die wichtigsten Informationen im Header und in der Seiteninformation, ohne die das ganze Frame auf jeden Fall nicht ausgelesen werden kann. Im Anschluss daran folgen die Seiteninformationen zur Rückwandlung der eigentlichen Daten. Gespeichert werden die benutzten Huffman-Tabellen, Skalierungsfaktoren, Quantisierungsschrittgröße und die eingesetzten MDCT-Transformationsblöcke. Im Anschluss an die Seiteninformationen kommen die Hauptdaten, d.h. die kodierten Spektrallinien und danach optional noch ein benutzerdefinierter Datenblock, in dem z.B. bei Digital Audio Broadcasting (eingesetzt bei live Radiostreams) der aktuelle Musiktitel übermittelt werden kann. In Abbildung 11 ([KS]) ist die grobe Struktur eines Layer 3-Frames dargestellt.

MPEG Layer 3-Decoder

Der Aufbau des Decoders ergibt sich direkt aus dem des Encoders. Im Decoder werden alle Schritte in umgekehrter Reihenfolge ausgeführt: In Abbildung 12 ([KB]) ist der schematische Aufbau dargestellt. Zuerst wird der MPEG Layer 3-Bitstrom dekodiert und die Seiteninformationen für die inverse Quantisierung gewonnen. Nach der Rückgängigmachung der Quantisierung werden mittels inverser modifizierter diskreter Cosinustransformation (IMDCT) und anschließender Filterbanksynthese wieder die ursprünglichen Samples im Zeitbereich berechnet. Der Decoder kann sehr gut auf Übertragungsfehler reagieren, so dass bei Bit-Fehlern in einzelnen Teilen die gesamte Datei oder der Stream weiterhin lesbar bleibt.


Abbildung 12: Struktur des MPEG-Decoders

4.4. Stereo-Kodierung

Der bisher beschriebene Algorithmus nutzte nur die Redundanz innerhalb eines Kanals aus, um die Daten zu komprimieren. Im Normalfall handelt es sich bei den zu kodierenden Signalen für MPEG Layer 3 um Stereo-Signale, wie z.B. Popmusik. Dabei ist es sehr häufig so, dass eine starke Ähnlichkeit zwischen linkem und rechtem Kanal besteht. Diese Redundanz zwischen den Kanälen will man ebenfalls reduzieren. MPEG Layer 3 spezifiziert dazu zwei verschiedene Methoden: "Joint Stereo" und "Intensity Stereo".

Die Stereo-Kodierung wird im Layer 3-Algorithmus nach der Umwandlung in die Frequenzdarstellung ausgeführt.

Joint Stereo

Bei Joint Stereo, auch MS-Stereo genannt, handelt es sich um eine verlustfreie Kodierung der beiden Audiokanäle. Die starke Ähnlichkeit der Kanäle wird ausgenutzt, indem man zwei neue Kanäle bildet. Auf dem Middle-Kanal (M) wird die Summe von linkem und rechtem Kanal gespeichert, auf dem Side-Kanal (S) kodiert man die Differenz der Ursprungskanäle. So enthält der Middle-Kanal die Hauptmenge an Information, während auf dem Side-Kanal nur wenig Information vorhanden ist. Beide Kanäle werden getrennt quantisiert und man erreicht eine relativ gute Kompression. Joint Stereo eignet sich vor allem für Signale, die in CD-Qualität gespeichert werden sollen.

Intensity Stereo

Intensity Stereo ist im Gegensatz zu Joint Stereo verlustbehaftet. Ausgenutzt wird hier, dass das Gehör im hohen Frequenzbereich die Raumposition der Schallquelle weniger gut unterscheiden kann als im tieferen. Ab einer bestimmten Grenze z0 werden deshalb im hohen Frequenzbereich die späteren Skalierungsfaktorbänder der beiden Kanäle zu einem einzigen zusammengefasst, dessen Raumposition gespeichert wird. Dadurch werden natürlich Signale, die ursprünglich nur in einem Kanal zu hören waren, auf beide Kanäle verteilt. Unterhalb von z0 kann man linken und rechten Kanal entweder separat oder mittels Joint Stereo kodieren. Mit Intensity Stereo geht man also einen Kompromiss bei der Qualität ein, kann aber dann Signale auf Kanälen mit kleinerer Bandbreite übertragen.

5. Ausblick

Mp3Pro - Eine MPEG Layer 3-Erweiterung

In der letzten Zeit ist eine Erweiterung zum ursprünglichen MPEG Layer 3 auf den Markt gekommen. Mp3Pro nutzt eine schon früher bei der Audiokompression eingesetzte Technik names "Spectral Band Replication" (SBR). Dabei wird ein Teil des hohen Frequenzbereichs nicht herkömmlich gespeichert, sondern aus den tieferen Abschnitten des Spektrums wiedergewonnen. Ein Mp3Pro-Encoder geht hierbei folgendermaßen vor: Bis zu der Frequenz von 8kHz werden die Daten mit dem ursprünglichen MPEG Layer 3-Algorithmus kodiert. Für die Frequenzen von 8 bis 16kHz berechnet der Encoder Parameter zu deren Rekonstruktion, die sich auf den Bereich unter 8kHz beziehen. Diese werden in den benutzerdefinierten Daten am Ende des jeweiligen Layer 3-Frames gespeichert. Ein Mp3Pro-Decoder fügt dann dem Spektrum unter 8kHz die rekonstruierten Frequenzlinien wieder hinzu. Mp3Pro-Dateien bleiben auch für gewöhnliche MPEG Layer 3-Decoder weiterhin lesbar, sind aber für diese natürlich auf 8kHz im Frequenzspektrum begrenzt.

Vorteilhaft bei dieser Technik ist, dass das Datenaufkommen weiter reduziert werden kann, da die zur Rekonstruktion des Spektrums benötigten Parameter viel weniger Platz brauchen als die ursprünglichen Spektrallinien. Bei einer Bitrate von 64kbps erreicht man zum Beispiel schon die Qualität einer herkömmlichen MPEG Layer 3-Datei mit 100kbps. Nachteilig ist der erhöhte Rechenaufwand: Ungefähr dreimal mehr Prozessorressourcen werden zur Dekodierung benötigt. Außerdem ist Spectral Band Replication verlustbehaftet und führt im allgemeinen nur bei niedrigen Bitraten zur gewünschten, starken Reduzierung des Datenstroms (siehe auch [GB]).

MPEG-2 Advanced Audio Coding (AAC)

MPEG-2 AAC ist im Gegensatz zur reinen Erweiterung Mp3Pro ein potentieller Nachfolger von MPEG Layer 3. Bei der Spezifikation des MPEG-2-Standards erkannte man, dass man bei Aufgabe der Abwärtskompatibilität zu den MPEG-1 Audiolayers die Kompression noch erheblich weiter verbessern könnte. So entstand als Ergänzung zum MPEG-2-Standard 1997 eine neue Audiokompressionsmethode, das Advanced Audio Coding (AAC), bei deren Entwicklung das Fraunhofer Institut IIS wieder eine führende Rolle spielte. In MPEG-2 AAC werden noch mehr psychoakustische Effekte ausgenutzt, inbesondere die temporale Maskierung. Die Kompressionsraten konnten so bei gleicher Qualität im Verhältnis zu MPEG Layer 3 weiter verbessert werden.

Fazit

MPEG Layer 3 wird in jedem Fall noch einige Zeit lang der führende Audiostandard in der Welt bleiben, vor allem auch durch seine hohen Kompressionsraten bei beeindruckend gut bleibender Qualität. Ob sich letztendlich MPEG-2 AAC als neuer Standard etablieren kann, lässt sich schwer voraussagen, von technischer Seite bringt er jedenfalls die richtigen Voraussetzungen mit. In jedem Fall kann man für die nächsten Jahre laut Expertenschätzungen mit noch niedrigeren Bitraten bei gleichbleibender Qualität rechnen ([AS]), denn das Thema Audiokompression scheint noch nicht ganz ausgereizt. Was Mp3Pro angeht, so ist sein Erfolg eher fraglich. Für den Endanwender ist es mangels ausreichender Qualität nicht so interessant, für Datenübertragungen aber durchaus brauchbar.

Ich bedanke mich fürs Lesen und hoffe, Sie konnten mit dem, was ich geschrieben habe, etwas anfangen. Falls Sie noch Fragen haben sollten, können Sie mich via eMail kontaktieren.

Literatur

  [Universität Karlsruhe] [Institut für Technische Informatik] [E-Mail an Autor]  
Letzte Änderung: 2002-02-18 13:12:06