Projekte > MPEG-1/2 Video > MPEG-2 Elementar Stream Video

Stream Struktur

Struktur eines MPEG-2 Programmstreams.

Video Stream:

SequenceSequence...Sequence

Der Videostream besteht aus mehreren aufeinanderfolgenden Sequenzen.

Sequence:

Sequence
Startcode
Video
Parameter
Bitstream
Parameter
QTs,
Misc
Group of
Picture
...Group of
Picture
Sequence
Endcode

Die Sequenz kann bzw sollte weitere Sequenzheader enthalten. Üblicherweise vor jeder Group of Picture (GOP). Die Sequenzheader werden zum Erstellen von Einsprungpunkten (Kapitelmarken) und zum schnellen Spulen benötigt. Am Ende sollte eine Sequenzendecode stehen. Dies scheint bei MPEG-2 jedoch nicht üblich zu sein.

Group of Picture (GOP):

GOP
Startcode
Time
Code
GOP
Params
Picture...Picture

Die GOP enthält die verschiedene Bildtypen. Es gibt I, P, B und D-Frames.

Intra Picture (I-Frames) sind Vollbilder. Predicted Picture (P-Frames) sind Teilbilder und referieren auf die vorausgegangenen I/P-Frames. Bidirectorial Pictures (B-Frames) sind ebenfalls Teilbilder und referieren auf das vorausgegangene sowie das folgende I/B-Frame. Direct Coded Picture (D-Frames) werden in MPEG-2 nicht verwandt.

Picture:

Picture
Startcode
TypeBuffer
Params
Encode
Params
Slice...Slice

Die Reihenfolge der Bilder entspricht nicht der Reihenfolge, in welcher sie angezeigt werden. Die Bilder sind aus Slices zusammengesetzt.

Slice:

Slice
Startcode
Vertical
Position
QScale Macroblock...Macroblock

Slices sind eine vertikale und horizontale Zusammenfassung von Macroblöcken.

Macroblock:

Address
Increment
TypeMotion
Vector
QScaleCBPb0...b5

Ein Macroblock umfasst einen Bildausschnitt von insgesamt 16x16 Bildpunkten (Pixeln). Darin werden die YUV 4:2:0 (YCbCr) Farbinformationen gespeichert. In den ersten vier Blöcken b0 bis b3 sind die Y-Komponenten aller Bildpunkte enthalten. Im fünften Block b4 sind die blauen Chrominanzwerte (Cb) für jeweils 4 Bildpunkte in einem Punkt gespeichert. Im sechsten Block b5 entsprechend die roten Chrominanzwerte (Cr).