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 code 32 0x000001B3
Horizontal Size 12
Vertical Size 12
Aspect ratio 4
Frame rate code 4
Bit rate 18 Actual bit rate = bit rate * 400, rounded upwards. Use 0x3FFFF for variable bit rate.
Marker bit 1 Always 1.
VBV buf size 10 Size of video buffer verifier = 16*1024*vbv buf size
constrained parameters flag 1
load intra quantizer matrix 1 If bit set then intra quantizer matrix follows, otherwise use default values.
intra quantizer matrix 0 or 64*8
load non intra quantizer matrix 1 If bit set then non intra quantizer matrix follows.
non intra quantizer matrix 0 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 # of bits Description
sync word 12 0xFFF
ID 1 '1'=mpeg1 '0'=mpeg2
layer 2 '11'=1 '10'=2 '01'=3
no protection 1 '0'=Protected by CRC (16bit CRC follows header)
'1'=Not Protected
bit rate index 4
sampling frequency 2 kHz '00'=44.1 '01'=48 '10'=32
padding 1
private 1
mode 2 '00'=Stereo '01'=joint stereo '10'=dual channel '11'=single channel
mode extension 2
copyright 1 0=none 1=yes
original or copy 1 0=copy 1=original
emphasis 2

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