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
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.
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.
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]).
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.
- die zunehmende Verbreitung von Soundkarten, CD-Laufwerken und
CD-Brennern
- zunehmender und schneller Internetzugang
- ausreichend schnelle Computer für das En- und Decoden
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.
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)
Um zu verstehen wie die MPEG-Audiokompression funktioniert, muss man
sich zuerst mit den Eingangsdaten auseinandersetzen, die komprimiert
werden sollen, das sind digitalisierte 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.
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
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
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.
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.
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.
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]).
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
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.
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):
- Die Frequenzlinien des Frames werden mit der aktuellen
Quantisierungsschrittgröße quantisiert
- Die quantisierten Werte werden mit dem Huffman-Verfahren kodiert.
- 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.
- 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):
- Die in der gegenwärtigen Situation vorhandenen
Quantisierungsgeräusche werden berechnet. Dazu bildet man die
Differenz von ursprünglichem Frequenzspektrum und quantisiertem
Frequenzspektrum.
- Anschließend wird für jedes Skalierungsfaktorband geprüft, ob die
Maskierungskurve diese Quantisierungsgeräusche maskiert, oder ob sie
hörbar bleiben würden.
- 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.
- 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.
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
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.
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.
- [KB]:
Karl-Heinz Brandenburg, Harald Popp:
An Introduction to
MPEG Layer 3.
EBU Technical Review, Juni 2000.
- [KS]:
Kent Salomonsen, Sten Sogaard, Eddie Proft Larsen:
Design and Implementation of an MPEG/Audiolayer III Bitstream Processor.
Aalborg University, Institut of Electronic Systems, 1997.
- [FB]:
Frank Baumgarte, Charalampos Ferekidis, Hendrik Fuchs:
A Nonlinear Psychoacoustic Model Applied to the ISO-MPEG Layer 3 Coder.
Institut für Theoretische Nachrichtentechnik und Informationsverarbeitung,
Universität Hannover.
- [AS]:
Andreas Spanias, Ted Painter:
A Review of Algorithms for
Perceptual Coding of Digital Audio Signals.
Department of Electrical
Engineering, Telecommunications Research Center, Arizona State University,
Tempe, Arizona, 1997.
- [HF]:
H.Frey:
Alles über Euro-ISDN.
Franzis-Verlag, 1997, 3.Auflage.
- [FL1]:
Felix von Leitner:
Die Kunst des Weglassens.
c't, Heft 3, 2000.
- [FL2]:
Felix von Leitner:
MP3 selbst gestrickt.
c't, Heft 3, 2000.
- [MC1]:
Matthias Carstens:
Musik kompakt.
c't, Heft 21, 1998.
- [MC2]:
Matthias Carstens:
Was ist MP3?.
c't, Heft 9, 1999.
- [SH]:
Scot Hacker:
MP3: The Definite Guide.
O'Reilly, März 2000, 1.Auflage.
- [SH]:
C.E. Shannon:
A Mathematical Theory of Communcation.
Bell System Technical Journal Vol. 27, Juli u. Oktober 1948.
- [PN]:
Peter Noll:
Audiocodierung: Vom Hörfunkstandard zum
Advanced Audio Coding.
Institut für Nachrichtentechnik und
Theoretische Elektrotechnik, TU Berlin, 1999.
- [GB]:
Gabriel Bouvigne:
www.mp3-tech.org.
http://www.mp3-tech.org.
- [FR]:
Fraunhofer Institut für Integrierte Schaltungen:
Audio und Multimedia.
http://www.iis.fraunhofer.de/amm/index.html.
|
Letzte Änderung: 2002-02-18 13:12:06
|