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
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 IDused 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 4byte 5byte 6byte 7
76543210765432107654321076543210
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_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:

3210
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 4byte 5byte 6byte 7
76543210765432107654321076543210
horizontal size vertical size aspect ratio frame rate
byte 8byte 9byte 10byte 11
76543210765432107654321076543210
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
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 4byte 5byte 6byte 7byte 8byte 9
765432107654321076543210765432107654321076543210
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 5byte 6byte 7
76543210765432107654321076543210
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
76543210765432107654321076543210
display horizontal size 1 display vertical size 0 0 0

Picture_Coding_Extension

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

arrow
arrow
    全站熱搜

    BB 發表在 痞客邦 留言(0) 人氣()