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

Sequenz Header

Jeder Code 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 eine ID an. Beim Sequenz Header ist dies der Wert $B3. In Abhängigkeit von den verwendeten Matrixen kann der Header verschiedene Längen besitzen.

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

Bis dahin ist nicht sicher, ob ein MPEG-1 oder -2 vorliegt. Es sei denn, der Wert für den Aspect Ratio beträgt mehr als 4. Dann ist es ein MPEG-1. Im Falle von MPEG-2 schließt sich nun die SEQUENCE_EXTENSION_DATA $000001B5 an.

Erläuterungen

Die Werte für den Aspect Ratio von MPEG-1:

Wert Aspect Ratio Zahl Aspect Ratio Text
00'forbidden'
11'square pixels'
20.6735'0.6735'
30.7031'16:9, 625 line, PAL'
40.7615'0.7615'
50.8055'0.8055'
60.8437'16:9, 525 line, NTSC'
70.8935'0.8935'
80.9157'4:3, 625 line, PAL, CCIR601'
90.9815'0.9815'
101.0255'1.0255'
111.0695'1.0695'
121.0950'4:3, 525 line, NTSC, CCIR601'
131.1575'1.1575'
141.2015'1.2015'
150'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 Einheiten zu 400 Bit je Sekunde angegeben. Der Wert $3FFFF bedeutet eine variable Bitrate.

Das Markerbit soll Fehler im Stream 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 wird wohl gesetzt, wenn die Spezifikationen für Bildgröße usw überschritten werden. Dieses Flag wird nur bei MPEG-1 benutzt.

Der TMPG Encoder 2.5* benutzt für die Angabe des VBV die 10 Bit des VBV und das Bit für das Constrained Parameter Flag.

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.

Testprogramm

Mit dem folgenden kleinen Testprogramm kann man einen MPEG-1 Video Elemantar Stream scannen und die Sequence Header anzeigen lassen.

MPEG1 Elementar Test 1 (166 kb) MD5
Stand: 13. Oktober 2008