Ω  Einführung  Ω  Aufbau  Ω  Kompression  Ω  Codierung  Ω  Encoder  Ω  Glossary  Ω  Bookmarks  Ω  


mp3s.name wünscht allen ein frohes Fest...
...und einen guten Rutsch ins neue Jahr!

 

Struktur von MP3s

MP3s werden in kleinere Einheiten, die als Frames bezeichnet werden geteilt. Jedes Frame besteht aus einem Header und den Audiodaten. Im Header werden die Bitrate, sowie andere Eigenschaften angegeben. Am Anfang oder Ende des MP3-Files können im sogenannten ID3-Tag Informationen zum Liednamen, Autor und anderen musikspezifischen Daten angegeben werden.

Jedes Frame enthält eine feste Anzahl von Abtastwerten (Samples). Bei Level 3 der MPEG Kompression sind dies 1152 Abtastwerte pro Frame (32 Subbänder x 36 Samples). Neben dem Header und den eigentlichen Audiodaten besteht ein Frame aus einem Prüfsummencheck, sowie unter Umständen aus einem so genannten Bit-Reservoir. Ein solches Reservoir entsteht, wenn sich die Samples innerhalb des Frames so komprimieren lassen, dass nicht die komplette theoretische Bit-Anzahl eines Frames benötigt wird.

to top

Frames per Second (fps)

Genauso wie es für Filme einen festgelegten Standard gibt, wieviele Frames pro Sekunde gespielt werden sollen, gibt es auch bei MP3s eine Richtlinie dafür. Egal wie groß die Bitrate ist, ein Frame enthält immer 26ms Audiodaten, das heißt etwa 38 fps, auch wenn sich die Bitrate und das Frame vergößert bzw. verkleinert. Weiterhin ist die Anzahl der gespeicherten Samples konstant bei 1,152 pro Frame. Die Größe eines Frames kann mit folgender Formel berechnet werden:

(144*Bitrate) / (Samplerate+Padding) [in Bytes]

Obwohl jedes einzelne Frame die Headerdaten enthält, ist der Platzverbrauch des Headers jedoch trotzdem äußerst gering, da dieser immer nur 32 Bit enthält. Die Anzahl der Audiodaten ist um ein vielfaches größer, als der Speicherplatzbedarf, der durch die Header entsteht.

to top

Der Header: Bitlegung

Der Anfang eines MP3-Frames kennzeichnet ein 32 Bit langer Header, der mit einem 11 Bit SYNC-Block beginnt. Dieser "sync block'' ist wichtig, um beispielsweise Daten am Anfang zu ignorieren, oder während der Wiedergabe in der Aufnahme vor- bzw. zurückspringen zu können. Dabei ist zu beachten, dass nur jeweils ein ganzes Frame abgespielt werden kann. Auch bei Streaminganwendungen ist es nötig, aufgrund von auftretendem Packetloss, resyncen zu können.

Nach dem SYNC-Block folgt das ID-Bit, welches definiert, ob das Frame in MPEG-1 oder MPEG-2 codiert wurde. Die nächsten 2 Bit legen fest, in welchem Layer sich die Daten befinden. Ist das Protection Bit nicht gesetzt, folgt dem Header eine 16 Bit lange Checksumme. Das Bitrate-Feld enthält Angaben zur Bitrate, mit der das entsprechende Frame encoded wurde. Zusätlich zur Bitrate kann ein "padding bit'' gesetzt werden, welches einem Ausgleich zwischen den Framegrößen dient. Zum Beispiel kann ein mit 128 kbps codierter Layer II Bitstream Frames mit 417 und Frames mit 418 Bytes enthalten. Bei Frames mit 417 Bytes wird das "padding bit" gesetzt, um dies auszugleichen. Das Mode Field I legt den stereo/ mono Status des Frames fest. Sollte Joint-Stereo eingestellt sein, befinden sich weitere Informationen dazu in der Mode-Extension. Das Copyright Bit legt fest ob es offiziell erlaubt ist die Datei zu kopieren. Es wird meist entsprechend dem entsprechenden Bit auf CD oder DAT-Medium gesetzt, jedoch von den meisten Programmen ignoriert. Das Private Bit ist nicht weiter definiert, und kann von Applikationen für eigene Zwecke verwendet werden. Das Emphasis Bit legt fest ob das entsprechende Bit am Originalmedium gesetzt ist. Es wird jedoch kaum noch verwendet. Letztendlich überprüft der Encoder die Checksumme, soweit sie vorhanden ist und encodiert die Audiodaten des Frames. Das nächste Frame durchläuft den selben Prozess.

to top

Struktur des Headers

In der folgenden Tabelle sind die einzelnen Header-Abschnitte nochmals genannt und mit ihrer Bitlänge angegeben:

to top

Position Aufgabe Länge in Bit
A Frame-SYNC 11
B MPEG Audioversion (MPEG-1, 2, etc.) 2
C MPEG Layer (Layer I, II, III, etc.) 2
D Protection (wenn aktiv: Checksumme nach Header) 1
E Bitrate-Index 4
F Frequenz der Samplingrate (z. B. 44.1kHz) 2
G Padding Bit (kompensiert unvollständige Belegung) 1
H Private Bit (Applikations-spezifische Trigger) 1
I Channelmode (Stereo, Joint-Stereo) 2
J Mode-Extension (bei Verwendung von Joint Stereo) 2
K Copyright 1
L Original ("0" wenn Kopie, "1" wenn Orignial) 1
M Emphasis (veraltet) 2
to top

Reservoir

Manchmal kann es vorkommen, dass die Menge an Daten aufgrund von komplexen Musikstücken in einem Frame nicht untergebracht werden kann. Für diesen Fall erlaubt das MP3-Format ein sogenanntes "byte reservoir'', das als eine Art "overflow buffer'' fungiert. Normalerweise ist dieses Reservoir kein getrennter Bereich in einem MP3, sondern freier Speicherplatz, der in anderen Frames nicht verwendet wird.

to top

ID3-Tag

Das ID3-Tag enthält zahlreiche Informationen zu dem MP3 und kann sich am Anfang oder am Ende des Files befinden (je nach Version). In der älteren ID3v1 Version befindet sich der Tag am Ende, da angenommen wurde, dass einige Player Probleme haben könnten, wenn sich der Tag am Anfang der Datei befindet. Erst in Version ID3v2 wird der Tag am Anfang des MP3 Files gestellt, da dies beispielsweise bei Streaming-Applikationen ermöglicht, den Titel anzuzeigen. Einige Player können bereits diese ID3 Tags während dem Stream verwerten, daher werden Informationen z. B. bei einer Radiopräsentation immer aktuell gehalten.

to top

to top