Avatar
www.fr-an.de

MPEG-1 Elementar 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

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

Als Schema:

  7 6 5 4 3 2 1 0
0 SEQUENCE_HEADER_CODE
1
2
3
4 Bildbreite
5 noch Bildbreite Bildhöhe
6 noch Bildhöhe
7 Aspect Ratio Framerate
8 Bitrate
9 noch Bitrate
10 noch Bitrate Marker VBV
11 VBV CPF Laden? I M
12 noch Intra Matrix
...
75 noch Intra Matrix Laden?
76 Non 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 Testpro- gramm 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

Fr_An - Letzte Änderung: 13. Oktober 2008
Counter
seit 28. Juli 2010