Proseminar: Redundanz

Vortrag 14: MP3-Audiokompression

Thorsten Scheuermann


Inhalt


1. Allgemeines über MPEG-Audiokompression

Das MP3-Audioformat (genauer: MPEG 1 Layer III) ist das komplexeste von drei Audiokompressionsverfahren (Layer I bis III), die von der Motion Picture Experts Group im MPEG-1-Standard spezifiziert wurden. Der Layer (Ebene) III-Algorithmus ist ein ISO-Standard und wurde maßgeblich am Fraunhofer Institut für integrierte Schaltungen entwickelt. Von Layer I bis III steigt sowohl die Kodiererkomplexität als auch die Leistung (Wiedergabequalität pro Datenrate). Die Dekodierer sind abwärtskompatibel (ein Dekodierer, der Layer II-Datenströme dekodieren kann, versteht auch Layer I-Datenströme). Der ISO-Standard spezifiziert lediglich das Datenformat und den Dekodierer, jedoch nich den Kodierer. Auf diese Weise läßt sich eine Verbesserung der Verfahrens auf der Kodiererseite realisieren und die verfügbaren Dekodierer können weiterhin verwendet werden.
Folgende Tabelle zeigt die erzielbaren Kompressionsraten bei subjektiver Erhaltung der ursprünglichen CD-Qualität:

Tabelle 1: Vergleich der Kompressionsraten
Kompressionsverfahren Kompressionsverhältnis Datenrate
CD-Audio (unkomprimiert) 1:1 ca. 1,4 MBit/s
MPEG-1 Layer I 1:4 384 kBit/s
MPEG-1 Layer II 1:6...1:8 256...192 kBit/s
MPEG-1 Layer III 1:10...1:12 128...112 kBit/s

Alle drei Verfahren akzeptieren Audiosignale mit einer Abtastfrequenz von 32, 44,1 oder 48 kHz.

Tabelle 2: mögliche Datenraten des kodierten Datenstroms
Verfahren Datenrate
Layer I 32...448 kBit/s
Layer II 32...384 kBit/s
Layer III 32...320 kBit/s

Die Kompressionsverfahren arbeiten nicht verlustfrei, d.h. das Originalsignal kann nach der Kompression nicht genau rekonstruiert werden. Um die hohen Kompressionsraten zu erzielen, arbeitet der Kodierer im Frequenzbereich und entfernt die Signalkomponenten, die vom menschlichen Gehör nicht wahrgenommen werden können.


2. Digitalisierung von Audiosignalen und Quantisierungsrauschen

Bei der Digitalisierung eines analogen Audiosignals wird die Signalamplitude in periodischen Zeitabständen abgetastet und als diskreter Wert (Sample) gespeichert (quantisiert). Die Abtastgenauigkeit wird in Bits angegeben: Je mehr Bits zur Speicherung der Samples verwendet werden, desto besser wird das analoge Signal approximiert. Speichert man das digitalisierte Signal hingegen mit wenigen Bits Genauigkeit, rauscht das Signal bei anschließender Wiedergabe (Digital-Analog-Wandlung) stärker. Dieses durch den Wandelungsprozeß eingeführtes Rauschen nennt man Quantisierungsrauschen.


3. Psychoakustik

Das Gebiet der Psychoakustik beschreibt, wie das menschliche Gehör die Lautheit von Tönen empfindet, was durch Hörtests ermittelt werden kann. Das Gehör reagiert auf Frequenzen zwischen 20 Hz und 20 kHz, am empfindlichsten ist es zwischen 2 und 4 kHz.
Für die Bewertung der Leistung eines Audiokodierers, der psychoakustische Phänomene ausnutzt ("Perceptual Audio Coder"), existieren bisher keine technischen Verfahren, deshalb werden Hörtests mit geschulten Testpersonen durchgeführt.
Im folgenden sollen die Eigenschaften des Gehörs vorgestellt werden, die der MP3-Kodierer zur Kompression ausnutzt:

3.1 Hörschwelle

Töne müssen eine Mindestlautstärke haben, um von einem Hörer wahrgenommen zu werden. Diese Mindestlautstärke ist abhängig von der Frequenz des Tons. Spielt man einer Testperson Töne verschiedener Frequenz vor, deren Lautstärke man erhöht, bis sie gerade wahrgenommen werden, erhält man folgendes Diagramm:


Bild 1: Hörschwelle als Funktion der Frequenz

3.2 Simultane Maskierung und kritische Frequenzbänder

Ein Ton von 1 kHz und einer Lautstärke von 60 dB (der "Maskierungston") verändert die Hörschwelle drastisch. Töne ähnlicher Frequenz müssen nun wesentlich lauter sein, um ebenfalls wahrgenommen zu werden. Das Gehör kann die Frequenzen zwar unterscheiden, aber die Rezeptoren beeinflussen sich gegenseitig. Frequenzanteile eines Signals, die unter den Kurven liegen, kann man also einfach weglassen, ohne daß sich die Wahrnehmung des Klangs ändert. Umgekehrt kann man ebenfalls beliebige Frequenzanteile hinzufügen, solange sie schwach genug sind, um unter der Hörschwelle zu bleiben.


Bild 2: Maskierung durch einen 1 kHz-Ton

Mit zunehmender Frequenz des Maskierungstons wird der maskierte Frequenzbereich breiter. Die Breite dieser sogenannten "kritischen Frequenzbänder" liegt zwischen unter 100 Hz für die tiefsten wahrnehmbaren Töne und über 4 kHz für die höchsten. Der Grad der Maskierung einer bestimmten Frequenz ist lediglich abhängig von der Signalintensität im kritischen Band dieser Frequenz. Der vom Gehör wahrnehmbare Frequenzbereich läßt sich in 27 kritische Bänder unterteilen.


Bild 3: Maskierung durch mehrere Töne


Bild 4: Kritische Frequenzbänder

3.4 Zeitliche Maskierung

Außer der simultanen Maskierung existiert auch eine zeitliche Variante: Nach Registrierung eines Tons und dessen Verstummen benötigt das Gehör eine "Erholungszeit", während der es einen ähnlichen, leiseren Ton nicht wahrnimmt. Die Zeit, die vergeht, bis der leisere Ton wahrgenommen wird, ist abhängig vom Lautstärke- und vom Frequenzverhältnis der beiden Töne und liegt im Bereich von ca. 5 bis 20 ms.


4. Der MP3-Kodierer

Der Komprimierungs- und Kodierungsprozeß läßt sich in mehrere Stufen unterteilen. Bild 5 zeigt den schematischen Aufbau eines MP3-Kodierers:


Bild 5: Blockdiagramm eines MP3-Kodierers

4.1 Filterbank

Die Filterbank transformiert das zu kodierende Audiosignal vom Zeit- in den Frequenzbereich, wobei es in 32 Frequenzbänder (Subbänder) gleicher Breite unterteilt wird, welche die kritischen Bänder approximieren sollen. Für 32 eingelesene Samples wird pro Subband ein Sample ausgegeben. Eine unerwünschte Eigenschaft der Filterbank ist das sogenannte "Aliasing": Die 32 Subbänder überlappen sich, und so kann ein Ton einer festen Frequenz zwei Bänder beeinflussen.
Die Subbänder werden durch eine modifizierte diskrete Cosinus-Transformation (MDCT) jeweils nochmals in 18 Teilbereiche unterteilt. Dadurch ergibt sich eine höhere Spektralauflösung, außerdem ist es nun möglich, den Aliasingeffekt teilweise zu entfernen.

4.2 Psychoakustisches Modell

Das psychoakustische Modell ist die Schlüsselkomponente des Kodierers: Hier wird ermittelt, wie stark die Maskierung in den verschiedenen Subbändern ist. Folgende Schritte werden ausgeführt:

4.3 Quantisierung

Die Frequenzsamples der Subbänder werden zu Blöcken mit je 1152 Samples zusammengefaßt (12 Samples x 32 Subbänder x 3), die gemeinsam quantisiert werden.


Bild 6: Gruppierung der Frequenzsamples für einen Block

Das prinzipielle Verfahren des Quantisierers ist folgendes: Wenn die Signalintensität eines Subbandes unter dessen Maskierung liegt, muß das Signal gar nicht kodiert werden, weil es unhörbar bleibt. Ansonsten werden die Frequenzsamples mit gerade so vielen Bits quantisiert, daß das dadurch eingeführte Quantisierungsrauschen durch die Maskierung gerade noch unhörbar bleibt.
Für jede Gruppe von 3x12 Samples eines Subbandes gibt es einen Wert, der angibt, mit wie vielen Bits Auflösung diese Samples quantisiert werden und bis zu drei Skalierungsfaktoren (höchstens einer für 12 Samples). Die Skalierungsfaktoren werden bei der Dekodierung mit den quantisierten Samples multipliziert, wodurch sich eine Verbesserung der Quantisierungsauflösung ergeben kann. Drei Skalierungsfaktoren pro Block werden nur verwendet, wenn es unbedingt nötig ist, um Verzerrungen des Signals zu vermeiden. Skalierungsfaktoren werden von zwei oder allen drei 12er-Gruppen gemeinsam genutzt wenn: (1) sich die Werte der Skalierungsfaktoren ähnlich genug sind, oder (2) wenn der Kodierer erkennt, daß die zeitliche Maskierung des Gehörs die eingeführten Fehler unhörbar macht.
Es wird eine Iterationsschleife durchlaufen, die Quantisierungsparameter in geordneter Weise variiert, die Samples quantisiert und das dadurch erzeugte Quantisierungsrauschen tatsächlich ausrechnet, um zu prüfen, ob es im unhörbaren Bereich bleibt. Wenn dies nicht der Fall ist, wird für die entsprechenden Subbänder eine feinere Quantisierung gewählt ("noise allocation"). Diese Schleife benötigt den Hauptteil der Rechenzeit beim Quantisierungsprozeß. Außerdem werden die quantisierten Samples zusätzlich Huffman-kodiert, um eine weitere Reduzierung des Speicherbedarfs zu erzielen. Die verwendeten Huffman-Bäume sind statisch.
Für ein Audiosignal, das mit einer Abtastfrequenz von 44,1 kHz aufgezeichnet wurde und durch Kompression auf eine Datenrate von 128 kBit/s reduziert werden soll, ergibt sich pro Datenblock eine Größe von:

1152 (Samples/Block) x 128000 (Bits/s) / 44100 (Samples/s) = 3344 (Bits/Block)

Benötigt ein Block weniger als die diese Anzahl an Bits, so werden die übrigen Bits an das sogenannte "Bit-Reservoir" übergeben. Läßt sich umgekehrt ein Block nicht ohne hörbaren Qualitätsverlust mit der vorgegebenen Blockgröße kodieren, so können Bits aus dem Bit-Reservoir entnommen werden, die zusätzlich zur Kodierung des Blocks verwendet werden. Die Blöcke, die nicht die ganze Blockgröße benötigen, werden mit Daten der nächsten Blöcke aufgefüllt; siehe Bild 8. Es dürfen jedoch zu keiner Zeit mehr Bits entnommen werden als im Bit-Reservoir vorhanden sind.

4.4 Format des Datenstroms

Ein MP3-Datenstrom beginnt immer mit einem Kopf, in dem z.B. Informationen über die benutzte Kodierung (Layer I bis III), die Datenrate und die Abtastfrequenz abgelegt sind. Danach folgen die einzelnen Datenblöcke mit je 1152 Samples, die folgendermaßen aufgebaut sind:


Bild 7: Format eines Blocks im MP3-Datenstrom

Der CRC-Block (Cyclic Redundancy Check, siehe Vortrag 4) ist optional. Im Kopf des Datenstroms steht, ob er vorhanden ist.
Im "Side Information"-Block steht unter anderem, mit welchen Huffman-Bäumen die Hauptdaten kodiert sind und ein Zeiger auf den Beginn der tatsächlich zum Block gehörenden Daten.
Die Hauptdaten sind Huffman-kodiert und enthalten die Skalierungsfaktoren und die quantisierten Samples. Es besteht die Möglichkeit, zusätzliche Daten in den Datenstrom einzubinden (z.B. zusätzliche Audiokanäle oder Liedtexte), die vom Dekodierer ignoriert werden, wenn er nichts mit ihnen anzufangen weiß. Wegen des Bit-Reservoirs gehören die Daten nicht zwangsläufig zum aktuellen Datenblock, wie Bild 8 verdeutlicht.


Bild 8: Ausschnitt eines MP3-Datenstroms

4.5 Kodierung von Stereosignalen

Bisher wurde nur die Kodierung eines einkanaligen Audiosignals berücksichtigt, doch Musikstücke liegen üblicherweise als Stereomaterial vor.
Prinzipiell ergibt sich der Stereoeindruck durch Phasen- und Pegeldifferenzen zwischen linkem und rechtem Kanal. Die Bestimmung der Richtung eines Schallereignisses geschieht je nach Frequenz unterschiedlich. Tiefe Töne sind räumlich gar nicht ortbar, mittlere Töne werden durch eine Kombination von Lautstärkeunterschied und Zeitpunkt des Eintreffens am linken und rechten Ohr geortet, hohe Frequenzen hingegen nur noch durch den Lautstärkeunterschied.
Das Stereosignal (bestehend aus linkem und rechtem Kanal) wird vom MP3-Kodierer in die Mitte/Seite-Kodierung umgewandelt, das heißt in ein Mitten- (L+R) und ein Seitensignal (L-R) zerlegt. Das Seitensignal enthält sehr viel weniger Informationen als ein normales Monosignal und kann deshalb stärker komprimiert werden.


5. Der MP3-Dekodierer

Der Aufwand zur Dekodierung eines MP3-Datenstroms ist verglichen mit dem der Kodierung gering. Es müssen lediglich die kodierten Frequenzsamples rekonstruiert werden, die dann durch eine inverse modifizierte Cosinus-Transformation (IMDCT) und eine inverse Filterbank wieder in den Zeitbereich zurückgewandelt werden.


Bild 9: Blockdiagramm eines MP3-Dekodierers


6. Literatur


Thorsten Scheuermann, 8. Februar 1999