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.
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.
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.
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.
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.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.
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:
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:
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.
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.