MPEG elementary stream explained

An elementary stream (ES) as defined by the MPEG communication protocol is usually the output of an audio encoder or video encoder. An ES contains only one kind of data (e.g. audio, video, or closed caption). An elementary stream is often referred to as "elementary", "data", "audio", or "video" bitstreams or streams. The format of the elementary stream depends upon the codec or data carried in the stream, but will often carry a common header when packetized into a packetized elementary stream.

Header for MPEG-2 video elementary stream

Partial Sequence Header Format!Field Name!# of bits!Description
start code320x000001B3
Horizontal Size12
Vertical Size12
Aspect ratio4
Frame rate code4
Bit rate18Actual bit rate = bit rate * 400, rounded upwards. Use 0x3FFFF for variable bit rate.
Marker bit1Always 1.
VBV buf size10Size of video buffer verifier = 16*1024*vbv buf size
constrained parameters flag1
load intra quantizer matrix1If bit set then intra quantizer matrix follows, otherwise use default values.
intra quantizer matrix0 or 64*8
load non intra quantizer matrix1If bit set then non intra quantizer matrix follows.
non intra quantizer matrix0 or 64*8

General layout of MPEG-1 audio elementary stream

The digitized sound signal is divided up into blocks of 384 samples in Layer I and 1152 samples in Layers II and III. The sound sample block is encoded within an audio frame:

The header of a frame contains general information such as the MPEG Layer, the sampling frequency, the number of channels, whether the frame is CRC protected, whether the sound is the original:

Field Name
  1. of bits
Description
sync word120xFFF
ID1'1'=mpeg1 '0'=mpeg2
layer2'11'=1 '10'=2 '01'=3
no protection1'0'=Protected by CRC (16bit CRC follows header)
'1'=Not Protected
bit rate index4
sampling frequency2kHz '00'=44.1 '01'=48 '10'=32
padding1
private1
mode2'00'=Stereo '01'=joint stereo '10'=dual channel '11'=single channel
mode extension2
copyright10=none 1=yes
original or copy10=copy 1=original
emphasis2
Although most of this information may be the same for all frames, MPEG decided to give each audio frame such a header in order to simplify synchronization and bitstream editing.

See also

External links