MPEG Headers Quick Reference
This is a quick reference to the various
headers and streams found in MPEG/DVD. For a complete description you should get
a copy of ISO/IEC 13818.
This is an incomplete
work-in-progress

The header
Every stream or table begins with a 32-bit start code, codes
00 through B8 are video stream start codes (fully defined in 13818-2), and codes
B9-FF are stream-id's

byte 0

byte 1

byte 2

byte 3

0000 0000 0000 0000 0000 0001
Start code
prefix

Stream ID

Start code

used for

0x00

Picture

0x01 - 0xAF

slice

0xB0

reserved

0xB1

reserved

0xB2

user data

0xB3

Sequence
header

0xB4

sequence error

0xB5

extension

0xB6

reserved

0xB7

sequence end

0xB8

Group of
Pictures

Stream ID

used for

0xB9

Program end (terminates a program stream)

0xBA

Pack
header

0xBB

System Header

0xBC

Program Stream Map

0xBD

Private
stream 1

0xBE

Padding
stream

0xBF

Private
stream 2

0xC0 - 0xDF

MPEG-1
or MPEG-2 audio stream

0xE0 - 0xEF

MPEG-1
or MPEG-2 video stream

0xF0

ECM Stream

0xF1

EMM Stream

0xF2

ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A or ISO/IEC
13818-6_DSMCC_stream

0xF3

ISO/IEC_13522_stream

0xF4

ITU-T Rec. H.222.1 type A

0xF5

ITU-T Rec. H.222.1 type B

0xF6

ITU-T Rec. H.222.1 type C

0xF7

ITU-T Rec. H.222.1 type D

0xF8

ITU-T Rec. H.222.1 type E

0xF9

ancillary_stream

0xFA - 0xFE

reserved

0xFF

Program Stream
Directory

Picture header (0100)
Variable length.

byte 4

byte 5

byte 6

byte 7

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

temperal sequence number

frame type
1=I, 2=P
3=B, 4=D

VBV delay

---

additional fields appended beginning at byte 7 bit 2:
If frame type = 2
(P) or 3 (B) the following 4 bits are appended to the header:

3

2

1

0

full_pel_forward_vector

forward_f_code

This field
is used by MPEG-1 only, for MPEG-2 it should be set to 0 1 1 1

If frame type = 3 (B) the following 4 bits are appended to the header:

3

2

1

0

full_pel_backward_vector

backward_f_code

This
field is used by MPEG-1 only, for MPEG-2 it should be set to 0 1 1 1

additionally if the next bit is "1" (extra_bit_picture) it is followed by 8
bits of "extra" data (discarded by decoders). This continues until a "0" bit is
encountered.

Sequence header (01B3)
Variable length.

byte 4

byte 5

byte 6

byte 7

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

horizontal size

vertical size

aspect ratio

frame rate

byte 8

byte 9

byte 10

byte 11

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

bit rate

1

VBV buffer size

constrained parameters flag

load intra quantiser matrix

(load non-intra quantiser
matrix)

If either load quantiser matrix flag is =1, it
is immediately followed by the 64 byte table (moving the "load non-intra
quantiser matrix" flag, in the case of "load intra quantiser matrix")

Code

Aspect Ratio

Frame Rate

0

forbidden

forbidden

1

1:1

24000/1001 (23.976)

2

4:3

24

3

16:9

25

4

2.21:1(not used in DVD)

30000/1001 (29.97)

5

reserved

30

6

reserved

50

7

reserved

60000/1001 (59.94)

8

reserved

60

9

reserved

reserved

:

15

reserved

reserved

extension header (01B5)
There are a variety of extensions, denoted by
the first 4 bits.

Sequence_Extension
Fixed length.

byte 4

byte 5

byte 6

byte 7

byte 8

byte 9

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

0001

profile and level

progressive_sequence

chroma_format

horizontal size extension

vertical size extension

bit rate extension

1

vbv buffer size extension

low delay

frame rate extension n

frame rate extension d

Sequence_Display_Extension
Variable length.

byte 4

byte 5

byte 6

byte 7

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

0010

video format

color description flag =0

(not present)

=1

color primaries

transfer characteristics

matrix coefficients

byte 5
byte 8

byte 6
byte 9

byte 7
byte 10

byte 8
byte 11

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

display horizontal size

1

display vertical size

0 0 0

Picture_Coding_Extension
Variable length.

byte 4

byte 5

byte 6

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

1000

f_code[0][0] (forward horizontal)

f_code[0][1] (forward vertical)

f_code[1][0] (backward horizontal)

f_code[1][1] (backward vertical)

intra_DC_precision

picture_structure

byte 7

7

6

5

4

3

2

1

0

Top_Field_First

frame_pred_frame_dct

concealment_motion_vectors

q_scale_type

intra_vlc_format

alternate_scan

Repeat_First_Field

chroma_420_type

byte 8

byte 9

byte 10

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

progressive_frame

composite_display =0

0 0 0 0 0 0

(not present)

=1

v_axis

field_sequence

sub_carrier

burst_amplitude

sub_carrier_phase

0 0

Group Of Pictures (GOP) (01B8)
Fixed length, contains 3 flags and the
time stamp for the first frame.

byte 4

byte 5

byte 6

byte 7

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

drop frame flag

hour (0-23)

minute (0-59)

1

second (0-59)

frame (0-59)

closed GOP

broken GOP

0 0 0 0 0

DVD-Video home