Avatar
www.fr-an.de

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

  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

 
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:

  1. 1 - Sequence Extension
  2. 2 - Sequence Display Extension
  3. 3 - Quant Matrix Extension
  4. 4 - Copyright Extension
  5. 5 - Sequence Scalable Extension

 

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

Fr_An - Letzte Änderung: 30. November 2009

seit 28. Juli 2010