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

Sequence Header

Jeder Header beginnt mit dem PACK_START_CODE_PREFIX, welcher aus den drei Bytes 0, 0 und 1 besteht. Als Hexadezimale Zahl wird er mit $000001 dargestellt. Daran schließt sich die ID an. Beim Sequence Header ist dies der Wert $B3. Die Länge des Headers besitzt entsprechend den verwendeten Matrixen verschiedene Längen.

Jeder Sequence Header stellt einen möglichen Einsprungpunkt dar. Das bedeutet, nur wo ein Sequence Header ist, kann ein Kapitel erstellt werden. Vergleiche dazu "Mögliche Kapiteleinsprungspunkte: 1"

Es soll auch vorkommen, dass Sequence Header nicht mit $000001B3 sondern mit $000000B3 gekennzeichnet werden.

Aufbau

  • 4 Byte: SEQUENCE_HEADER_CODE = $000001B3
  • 12 Bit: Width - Bildbreite in Pixel
  • 12 Bit: Height - Bildhöhe in Pixel
  • 4 Bit: Aspect Ratio - Seitenverhältnis
  • 4 Bit: Framerate - Bildwiederholfrequenz
  • 18 Bit: Bitrate
  • 1 Bit: Marker
  • 10 Bit: VBV
  • 1 Bit: Constrained Parameter Flag
  • 1 Bit: Intra Matrix laden (0) oder Standard (1)?
  • 64 Byte: Intra Matrix, wenn nicht Standard Matrix verwandt wird.
  • 1 Bit: Non Intra Matrix laden (0) oder Standard (1)?
  • 64 Byte: Non Intra Matrix, wenn nicht Standard Matrix verwandt wird.

Als Schema:

 76543210
0SEQUENCE_HEADER_CODE
1
2
3
4Bildbreite
5noch BildbreiteBildhöhe
6noch Bildhöhe
7Aspect RatioFramerate
8Bitrate
9noch Bitrate
10noch BitrateMarkerVBV
11VBVCPFLaden?I M
12noch Intra Matrix
...
75noch Intra MatrixLaden?
76Non Intra Matrix
...
139

 
Dem Sequence Header ist der MPEG-Typ nur direkt zu entnehmen, wenn der Aspect Ratio einen Wert über 4 besitzt. Dann ist es jedoch ein MPEG-1 Video.

Erläuterungen

Die Werte für den Aspect Ratio:

Wert Aspect Ratio Text
0'forbidden'
11:1 Square Pixels
24:3 Display
316:9 Display
42.21:1 Display
5-15'reserved'

Die Werte für die Frame Rate (Bildwiederholrate):

Wert Frame Rate Zahl Frame Rate Text
00'forbidden'
124000/1001.0'23.976 fps -- NTSC encapsulated film rate'
224.0'Standard international cinema film rate'
325.0'PAL (625/50) video frame rate'
430000/1001.0'29.97 -- NTSC video frame rate'
530.0'NTSC drop-frame (525/60) video frame rate'
650.0'double frame rate/progressive PAL'
760000/1001.0'double frame rate NTSC'
860.0'double frame rate drop-frame NTSC'
9-150'reserved'

Die Bitrate wird in 400 Bit je Sekunde angegeben. Der Wert $3FFFF soll eine variable Bitrate bedeuten. Im Test gaben TMPGEnc und CCEB dort jeweils die maximale Bitrate an.

Das Markerbit soll Fehler aufdecken. Es muss immer den Wert 1 besitzen.

Der VBV ist der Speicher, welcher zum Decoden der Bilder notwendig ist. Er wird in 16 kB Blöcken angegeben.

Das Constrained Parameter Flag ist hier immer auf 0 gesetzt. Der TMPG Encoder 2.5* benutzt die 10 Bit für den VBV und das Bit des Constrained Parameter Flag für den VBV-Angabe, so dass hier immer nur die Hälfte des VBV angezeigt wird.

Das Intra bzw Non Intra Matrix laden Bit gibt an, ob die Standardmatrix verwendet wird oder an dieser Stelle die entsprechende Matrix gespeichert ist und geladen werden muss. Die Matrix ist im Zig Zag Scan gespeichert.

Extensionen

Dem Sequence Header schliessen sich mindestens eine Extension an. Darüber wird ein MPEG-2 identifiziert. Die ID der Extension ist $B5. Daran schliesst sich die ID der Extension an. Für den Sequence Header dürften diese Extensionen in Frage kommen:

Testprogramm

Mit diesem Testprogramm kann man einen MPEG-2 Elemantar Stream scannen und die Sequence Header sowie dessen User Data anzeigen lassen.

MPEG2 Elementar Test 01 (165 kb) - MD5
Stand: 13. Oktober 2008