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 0byte 1byte 2byte 3
0000 0000 0000 0000 0000 0001
Start code prefix
Stream ID
Start codeused for
0x00Picture
0x01 - 0xAFslice
0xB0reserved
0xB1reserved
0xB2user data
0xB3Sequence header
0xB4sequence error
0xB5extension
0xB6reserved
0xB7sequence end
0xB8Group of Pictures
Stream IDused for
0xB9Program end (terminates a program stream)
0xBAPack header
0xBBSystem Header
0xBCProgram Stream Map
0xBDPrivate stream 1
0xBEPadding stream
0xBFPrivate stream 2
0xC0 - 0xDFMPEG-1 or MPEG-2 audio stream
0xE0 - 0xEFMPEG-1 or MPEG-2 video stream
0xF0ECM Stream
0xF1EMM Stream
0xF2ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A or ISO/IEC 13818-6_DSMCC_stream
0xF3ISO/IEC_13522_stream
0xF4ITU-T Rec. H.222.1 type A
0xF5ITU-T Rec. H.222.1 type B
0xF6ITU-T Rec. H.222.1 type C
0xF7ITU-T Rec. H.222.1 type D
0xF8ITU-T Rec. H.222.1 type E
0xF9ancillary_stream
0xFA - 0xFEreserved
0xFFProgram Stream Directory

Picture header (0100)

Variable length.
byte 4byte 5 byte 6byte 7
76543210 76543210 76543210 76543210
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:
3210
full_pel_forward_vectorforward_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:
3210
full_pel_backward_vectorbackward_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 4byte 5 byte 6byte 7
76543210 76543210 76543210 76543210
horizontal size vertical size aspect ratio frame rate
byte 8byte 9 byte 10byte 11
76543210 76543210 76543210 76543210
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")
CodeAspect RatioFrame Rate
0forbiddenforbidden
11:124000/1001 (23.976)
24:324
316:925
42.21:1(not used in DVD)30000/1001 (29.97)
5reserved30
6reserved50
7reserved60000/1001 (59.94)
8reserved60
9reservedreserved
:
15reservedreserved

extension header (01B5)

There are a variety of extensions, denoted by the first 4 bits.

Sequence_Extension

Fixed length.
byte 4byte 5 byte 6byte 7 byte 8byte 9
76543210 76543210 76543210 76543210 76543210 76543210
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 4byte 5 byte 6byte 7
76543210 76543210 76543210 76543210
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
76543210 76543210 76543210 76543210
display horizontal size 1 display vertical size 0 0 0

Picture_Coding_Extension

Variable length.
byte 4byte 5 byte 6
76543210 76543210 76543210
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
76543210
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 8byte 9 byte 10
76543210 76543210 76543210
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 4byte 5 byte 6byte 7
76543210 76543210 76543210 76543210
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