Table of Contents

MPEG-2 Elementary Video

  1. stream structure
  2. Sequence headers
  3. Sequence Extension
  4. Sequence Display Extension
  5. Quant Matrix Extension
  6. Copyright extension
  7. Sequence Scalable Extension
  8. Group of Pictures
  9. Picture headers
  10. Picture Display Extension
  11. Picture Coding Extension
  12. Slice

The structure differs from that of MPEG-1 elementary video in terms of the possible extensions and, in the case of the TMPG encoder, the number of slices.

Structure of an MPEG-2 program stream.

Sequence Sequence ... Sequence

 
The video stream consists of several consecutive sequences.

 

Sequence:

Sequence
start code
video
parameters
bitstream
parameters
QT's,
Misc
Group of
Picture
... Group of
Picture
Sequence
end code

 
The sequence can or should contain further sequence headers. Usually before each Group of Picture (GOP). The sequence headers are needed for creating entry points (chapter markers) and for fast scrolling. At the end there should be a sequence decode. However, this does not seem to be common with MPEG-2.

 

Group of Picture (GOP):

GOP
start code
timecode
_
GOP
params
Picture ... Picture

 
The GOP contains the different picture types. There are I, P, B and D frames.

Intra picture (I-frames) are full images. Predicted picture (P frames) are partial pictures and refer to the previous I/P frames. Bidirectional pictures (B frames) are also partial pictures and refer to the preceding and following I/B frame. Direct Coded Picture (D-Frames) are not used in MPEG-2.

 

Picture:

Picture
start code
Type buffer
params
Encode
Params
Slice ... Slice

 
The order of the images does not correspond to the order in which they are displayed. The images are composed of slices.

 

Slice:

Slice
start code
Vertical
position
QScale macro block ... macro block

 
Slices are a vertical and horizontal aggregation of macroblocks.

 

macro block:

Address
Increment
Type Motion
Vector
QScale CBP b0 ... b5

 
A macroblock comprises an image section with a total of 16x16 picture elements (pixels). It stores the YUV 4:2:0 (YCbCr) color information. The Y components of all pixels are contained in the first four blocks b0 to b3. In the fifth block b4, the blue chrominance values ​​(Cb) are stored in one point for each 4 pixels. The corresponding red chrominance values ​​(Cr) are in the sixth block b5.

Sequence headers

Each header starts with the PACK_START_CODE_PREFIX, which consists of the three bytes 0, 0 and 1. As a hexadecimal number, it is represented as $000001. This is followed by the ID. For the sequence header, this is the value $B3. The length of the header has different lengths according to the matrices used.

Each sequence header represents a possible entry point. This means that a chapter can only be created where there is a sequence header.

It should also happen that sequence headers are not marked with $000001B3 but with $000000B3.

Construction
  1. 4 bytes: SEQUENCE_HEADER_CODE = $000001B3
  2. 12 Bit: Width - Image width in pixels
  3. 12 Bit: Height - image height in pixels
  4. 4 bit: Aspect Ratio - aspect ratio
  5. 4 bit: frame rate - refresh rate
  6. 18 bit: bit rate
  7. 1 bit: markers
  8. 10 bits: VBV
  9. 1 bit: Constrained parameter flag
  10. 1 bit: load intra matrix (0) or standard (1)?
  11. 64 bytes: Intra matrix if non-standard matrix is ​​used.
  12. 1 Bit: Load Non Intra Matrix (0) or Standard (1)?
  13. 64 bytes: Non Intra Matrix, unless Standard Matrix is ​​used.

As a scheme:

  7 6 5 4 3 2 1 0
0 SEQUENCE_HEADER_CODE
1
2
3
4 image width
5 nor image width image height
6 nor image height
7 aspect ratio frame rate
8th bitrate
9 nor bitrate
10 nor bitrate marker VBV
11 VBV CPF Load? IN THE
12 still intra matrix
...
75 still intra matrix Load?
76 Non intra matrix
...
139

 
The MPEG type can only be taken directly from the sequence header if the aspect ratio has a value above 4. But then it is an MPEG-1 video.

 

Explanations

The values ​​for the aspect ratio:

value Aspect ratio text
0 'forbidden'
1 1:1 square pixels
2 4:3 screen
3 16:9 screen
4 2.21:1 display
5-15 'reserved'

 

The values ​​for the frame rate (refresh rate):

value Frame rate number Frame rate text
0 0 'forbidden'
1 24000/1001.0 '23.976 fps -- NTSC encapsulated film rate'
2 24.0 'Standard international cinema film rate'
3 25.0 'PAL (625/50) video frame rate'
4 30000/1001.0 '29.97 -- NTSC video frame rate'
5 30.0 'NTSC drop-frame (525/60) video frame rate'
6 50.0 'double frame rate/progressive PAL'
7 60000/1001.0 'double frame rate NTSC'
8th 60.0 'double frame rate drop frame NTSC'
9-15 0 'reserved'

The bit rate is given in 400 bits per second. The value $3FFFF is supposed to mean a variable bitrate. In the test, TMPGEnc and CCEB each indicated the maximum bit rate there.

The marker bit is intended to detect errors. It must always have the value 1.

The VBV is the memory required to decode the images. It is specified in 16 kB blocks.

The constrained parameter flag is always set to 0 here. The TMPG Encoder 2.5* uses the 10 bits for the VBV and the bit of the constrained parameter flag for the VBV specification, so that only half of the VBV is displayed here.

The intra or non intra matrix load bit indicates whether the standard matrix is ​​used or whether the corresponding matrix is ​​saved at this point and must be loaded. The matrix is ​​stored in Zig Zag Scan.

extensions

At least one extension follows the sequence header. An MPEG-2 is identified via this. The ID of the extension is $B5. This is followed by the ID of the extension. These extensions should be considered for the sequence header:

  1. Sequence Extension
  2. Sequence Display Extension
  3. Quant Matrix Extension
  4. Copyright Extension
  5. Sequence Scalable Extension

Sequence Extension

Extensions have the ID $B5. This is followed by the ID of the extension, here $1.

Construction
  1. 4 bytes: EXTENSION_START_CODE = $000001B5
  2. 4 bits: Start Code Identifier - Sequence Extension = $1
  3. 4 bit: profile
  4. 4 bits: levels
  5. 1 bit: progressive sequence
  6. 2-bit: chroma format
  7. 2 bit: wide extension
  8. 2 bits: height extension
  9. 12-bit: bit rate extension
  10. 1 bit: markers
  11. 8-bit: VBV Buffer Extension
  12. 1 bit: low delay
  13. 2 bits: Frame rate extension numerator
  14. 5 bits: Frame rate extension denominator

As a scheme:

  7 6 5 4 3 2 1 0
0 EXTENSION_START_CODE
 
$000001B5
1
2
3
4 Boot Code Identifier = $1 profile
5 levels program chroma width ext.
6 still BE. height ext. Bit Rate Extension
7 nor bit rate extension marker
8th VBV Buffer Extension
9 Low Delay Framerate Ext N Framerate Ext D

 
Note: In a source, four bits are used for the profile. In Andrew Duncan, the first bit of this is called 'Profile/Level Escape', with the value 0 being reserved.

Explanations

The profiles are:

value profile Typical for
1 High profile production equipment requiring 4:2:2
2 Spatially Scalable Profile simulcasting
3 SNR Scalable Profile simulcasting
4 Main profiles 95% of TVs, VCRs, cable applications
5 Simple profiles Low-cost memory, eg no B pictures

 

The profiles Multiview and 4:2:2 are sometimes also specified, but without coding.

The levels are:

value profile Typical for
4 high level HDTV production rates: e.g. 1920 x 1080 x 30 Hz
6 High 1440 levels HDTV consumer rates: e.g. 1440 x 960 x 30 Hz
8th main level CCIR 601 rates: eg 720 x 480 x 30 Hz
10 low level SIF video rate: e.g. 352 x 240 x 30 Hz

 

Allowed combinations of level and profile:

  Simple Main SNR
scalable
Spatially
scalable
High multiview 4:2:2
high level   X     X    
High-1440 level   X   X X    
main level X X X   X X X
low level   X X        

 

The chrominance values:

value profile description
1 4:2:0 half resolution in both dimensions (most common format)
2 4:2:2 Half resolution in horizontal direction (High Profile only)
3 4:4:4 full resolution (not allowed in any currently defined profile)

 

Low Delay means that no B-frames are used. "Frame reordering delay is not present i the VBV description, skipped pictures (VBV underflow) may occur." The Framerate Extension Numerator and Denominator are multiplied by the base framerate.

 

Sequence Display Extension

Extensionen are ID $B5. The ID is $2.

Construction

4 Byte: EXTENSION_START_CODE = $000001B5

4 Bit: Start Code Identifier - Sequence Display Extension = $2

3 Bit: Video Format

1 Bit: Color, if set:

  1. 1 Byte: Color Primaries
  2. 1 Byte: Transfer Characteristics
  3. 1 Byte: Matrix Coefficients

14 Bit: Display Width

1 Bit: Marker

14 Bit: Display Height

As a scheme:

  7 6 5 4 3 2 1 0
0 EXTENSION_START_CODE
 
$000001B5
1
2
3
4 Start Code Identifier = $2 Video Format Color
5 Color Primaries
6 Transfer Characteristics
7 Matrix Coefficients
5 / 8 Display Width
6 / 9 Display Width Marker D H
7 / 10 Display Height
8 / 11 Display Height ...

 

Explainations

Video Formats are:

Value Format
0 Component
1 PAL
2 NTSC
3 SECAM
4 MAC
5-8 Reserved

 

Color Primaries and Transfer Characteristics are:

Wert Profil
0 Forbidden
1 ITU-R Rec. 709 (1990)
2 Unspecified
3 Reserviert
4 ITU-R Rec. 624-4 System M
5 ITU-R Rec. 624-4 System B, G
6 SMPTE 170M
7 SMPTE 240M (1987)
... Reserviert

 

Matrix Coefficients:

Value Profile
0 Forbidden
1 ITU-R Rec. 709 (1990)
2 Unspecified
3 Reserved
4 FCC
5 ITU-R Rec. 624-4 System B, G
6 SMPTE 170M
7 SMPTE 240M (1987)
... Reserved

Quant Matrix Extension

Extensions have the ID $B5. The ID of this extension is $3.

Construction

4 bytes: EXTENSION_START_CODE = $000001B5

4 bits: Start Code Identifier - Quant Matrix Extension = $3

1 bit: Load Intra Quantiser Matrix, if 1 then

1 Bit: Load Non Intra Quantiser Matrix, if 1 then

1 bit: Load Chroma Intra Quantiser Matrix if 1 then

1 bit: Chroma Non Intra Quantiser Matrix, if 1 then

As a scheme:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Boot Code Identifier = $3Load?Intra Quantizer Matrix
5-67Intra Quantizer Matrix
68Intra Quantizer MatrixLoad?NIQM
69-131Non Intra Quantizer Matrix
132 Non Intra Quantizer MatrixLoad?CIQM
133-195Chroma Intra Quantizer Matrix
196Chroma Intra Quantizer MatrixLoad?
197-260Chroma Non Intra Quantizer Matrix

Extensions have the ID $B5. This extension has the ID $4.

Construction

As a scheme:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Boot Code Identifier = $4copyright
flag
copyright identifiers
5nor copyright identifierscopy?reserved
6reservedmarkerCN 1
7nor copyright number 1
8thnor copyright number 1
9still CN 1markerCopyright number 2
10nor copyright number 2
11nor copyright number 2
12still CN 2markerCopyright number 3
13nor copyright number 3
14nor copyright number 3

Sequence Scalable Extension

Extensions generally have ID $B5. This extensions has got ID $5.

Construction

Ist der Scalable Mode “spatial scalability”

Ist der Scalable Mode “temporal scalability”

1 Bit: Picture Mux Enable, if 1 then

3 Bit: Picture Mux Order

3 Bit: Picture Mux Factor

As a scheme:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Start Code Identifier = $5Scalable ModeLayer ID
5still Layer ID 

Scalable Mode = "spatial scalability":

 76543210
5 Lower Layer Prediction Horizontal Size
6noch Lower Layer Prediction Horizontal Size
7MarkerLower Layer Prediction Vertical Size
8noch Lower Layer Prediction Vertical SizeHSF M
9noch Horizontal Subsampling Factor MHorizontal Subsampling Factor N
10n. HSF NVertical Subsampling Factor MVSF N
11noch Vertical
Subsampling Factor N
 

Scalable Mode = "temporal scalability":

 76543210
5 Picture
Mux
Enable
Mux to
Progr.
Sequence
Picture Mux OrderPMF
6noch Picture
Mux Faktor
 

Group of Pictures

The ID $B8 follows the PACK_START_CODE_PREFIX for the GROUP_START_CODE. The length of the header is 4 bytes.

Construction

As a scheme:

 76543210
0GROUP_START_CODE
1
2
3
4Drop
frame
Time code hoursTime code minutes
5still time code minutesmarkerTime code seconds
6still time code secondsTime Code Picture
7nor
TCP
Closed
GOP
broken
link
 

Explanations

The drop frame is used for NTSC to lower the frame rate from 30 to 29.97 fps.

The marker must again be set.

A GOP is closed if the pictures in a GOP relate only to pictures in its own GOP. Even if the stream is not encdet closed, the first and penultimate (CCE Basic) or last (TMPG Encoder) GOP are closed.

The broken link flag is set when frames refer to frames that no longer exist after a cut.

Picture Header

PACK_START_CODE_PREFIX follows PICTURE_START_CODE with ID $00.

Construction

P- and B-Frames:

B-Frames only:

Extra Information:

Als Schema

 76543210
0PICTURE_START_CODE
1
2
3
4Temporal Reference
5Temporal ReferenceCoding TypeVBV Delay
6noch VBV Delay
7noch VBV Delayfull fel forward vectorforward f code
8noch forward f codefull backward vectorbackward f codeExtra Bit setExtra Information
9Noch Extra Information...Extra Bit cleared

Erläuterungen

The temporal reference is the order in which the images should be displayed. The first picture of the group has the value 0.

Coding types:

The VBV delay is specified in 90 kHz cycles at constant bit rates. With variable bit rate, the delay is set to FFFF. I am missing further information about the forward and backward vectors and the extra information. The extra information consists of nine bits. The first is the indicator for extra information to follow. The following 8 bits represent the extra information.

Extensions

With MPEG-2, the picture header is followed by various extensions. The ID of the extension is $B5. That concludes the ID of the extension. These extensions should be considered for the picture header:

Picture Display Extension

The extension start code with the ID $B5 is followed by four bits with the extension ID $B7.

Construction

As a scheme:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Boot Code Identifier = $7frame_centre_horizontal_offset
5nor frame_centre_horizontal_offset
6nor frame_centre_horizontal_offsetmarkerframe_centre_vertical_offset
7nor frame_centre_vertical_offset
8thnor frame_centre_vertical_offsetmarker...

Explanations

This extension is not necessary for the normal decoding process. However, it allows the picture to be positioned on the display. An application for this is Pan & Scan . This extension must be preceded by a sequence display extension.

frame_centre_horizontal_offset
Is the horizontal offset in units of 1/16 sample. A positive value means the center of the picture is to the right of the center of the display.

frame_centre_vertical_offset
Is the vertical offset in units of 1/16 sample. A positive value means the center of the picture is below the center of the display.

The size of the display is defined in the Sequence Display Extension. The coordinates for the decoded picture in the picture display extension. The center of the decoded picture is the center of the display. A picture can refer to one, two or three decoded fields, ie it can contain up to three offsets.

The number of offsets results from the flags progressive_sequence, repeat_first_field and top_field_first.

if ( progressive_sequence == 1)
   { if ( repeat_first_field == 1 )
        { if ( top_field_first == 1 )
             number_of_frame_centre_offsets = 3
          else
             number_of_frame_centre_offsets = 2
        }
        else
        {
        number_of_frame_centre_offsets = 1
        }
   }
   else
   { if (picture_structure == "field")
        { number_of_frame_centre_offsets = 1
        }
        else
        { if (repeat_first_field == 1 )
             number_of_frame_centre_offsets = 3
          else
             number_of_frame_centre_offsets = 2
        }
   }

The progressive_sequence flag is included in the sequence extension. repeat_first_field, top_field_first, and picture_structure in the Picture Coding Extension.

The absence of the offsets means that the previously used values ​​should be used. That also applies, if not all offsets are given. After a sequence header, null values ​​are used again until values ​​are specified again.

Picture Coding Extension

The extension start code with the ID $B5 is followed by four bits with the extension ID $B8.

Construction

4 bytes: EXTENSION_START_CODE = $000001B5

4 bits: Start Code Identifier - Picture Coding Extension = $8

4 bits: f_code[0][0] - forward horizontal

4 bits: f_code[0][1] - forward vertical

4 bits: f_code[1][0] - backward horizontal

4 bits: f_code[1][1] - backward vertical

2-bit: Intra DC precision

2-bit: Picture Structure

1 bit: top field first

1 bit: Frame Pred Frame DCT

1 bit: Concealment Motion Vectors

1 bit: Q scale type

1 bit: Intra VLC format

1 bit: alternate scan

1 bit: Repeat First Field

1 bit: Chroma 420 type

1 bit: progressive frame

1 bit: Composite Display Flag, if set:

As a scheme:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Boot Code Identifier = $8f_code[0][0]
5f_code[0][1]f_code[1][0]
6f_code[1][1]Intra DC Prec.Picture Structure
7TFFFPF
DCT
CMVQ scale typeIntra VLC formatAlternate ScanRepeat First FieldChroma 420 type
8thProgressive framescomposite display?V axisField Sequencesubcarriersburst amplitude
9still BAsub-carrier phase
10nor SCP 

Explanations

f_code[s][t]
The values ​​are used to decode the motion vectors. The value 0 is forbidden, 1 to 9 and 15 are allowed.

Intra DC Precision
Accuracy with which the discrete cosine transformation is used. The Intra DC Mult(iplikator) is derived from this.

valueaccuracymultiplier
008 bits8th
019 bits4
1010 bits2
1111 bits1

Picture Structure

WertPicture Structure
00Reserviert
01Top Field - oberes Halbbild
10Bottom Field - unteres Halbbild
11Frame Picture - Vollbild

If a frame is encoded in fields, there must always be a pair with the same picture coding type.

Top Field First
This flag depends on Picture Structure, Progressive Sequence and Repeat First Field.
At If the Progressive Sequence flag is not set, it is used during decoding to reconstruct the frame and indicates whether the First Field (upper field) is output first.
If the Progressive Sequence flag is set, there is in connection with the Repeat flag First Field indicates how often a frame is output during decoding. This means at Repeat First Field = 0 and Top Field First = 0 becomes a progressive frame, with Repeat First Field = 1 and Top Field First = 0 two identical progressive frames become and with Repeat First Field = 1 and Top Field First = 1, three identical progressive frames are output.

Frame Pred Frame DCT
If this flag is set, only Frame DCT and Frame Prediction will be used. At Field Picture (fields) it is 0, with progressive frames it is 1.

Concealment Motion Vectors
This flag indicates whether the intra macroblocks were encoded with motion vectors.

Q Scale Type
This flag is used for the Quantiser Scale Factor.

Intra VLC format
This flag is used to determine the DCT coefficients.

Alternate Scan
This flag is used to determine the DCT coefficients.

Repeat First Field
If the flags progressisve_sequence (see Sequence Extension Header) and progressive_frame are not set, the repeat_first_field flag is also not set. When decoding then the frame composed of two fields. If the progressive_sequence flag is not set but the progressive_frame flag is set, the frame is composed of two fields. The first field (top field or bottom field) is specified by the flag top_field_first identified and followed by the other. If the repeat_first_field flag is then set, the frame consists of three fields composed. The first field is determined by the top_field_first flag and is followed by the other. Then will repeats the first field. If the progressive_sequence flag is set and the repeat_first_field flag is not, the frame decoded from a frame.

Chroma 420 Type
Set the same as Progressive Frame. Exists for historical reasons.

Progressive Frame
If the flag is not set, it means that the two fields of a frame are two interlaced fields are. Repeat First Field must be 0 (two field duration). If the flag is set, this means that the two fields are combined into one are merged. Picture Structure must be set to "Frame" and Frame Pred Frame DCT to 1.

Composite Display Flag
This flag is set if the picture from which the MPEG was encoded is (analogue) Composite Video were encoded. The information refers to the extension following picture. Is it a Frame Picture, the information relates to the First Field. The information is adjusted for the second field, as these cannot be saved. The following elements are not used for decoding. The Repeat First Field Flag and the Composite Display Flag must not be set at the same time.

V Axis
1-bit integer used only when the bitstream represents a signal that had previously been encoded according to PAL systems. v_axis is set to 1 on a positive sign, v_axis is set to 0 otherwise.

Field Sequence
Returns the field number of an eight field sequence on a PAL system or a five field sequence for an NTSC system according to the following table:

Field SequenceFrameField
00011
00112
01023
01124
10035
10136
11047
11148

Sub Carrier
If the flag is not set, the sub-carrier/line frequency relationship is correct.

Burst Amplitude
specifies the burst amplitude for PAL and NTSC.

Sub Carrier Phase
Indicates the phase of the reference sub carrier of the field synchronization.

Sub Carrier PhasePhase
0([360° / 256] * 0)
1([360° / 256] * 1)
......
255([360° / 256] * 255)

Picture Coding Extension

The extension start code with the ID $B5 is followed by four bits with the extension ID $B8.

Construction

4 bytes: EXTENSION_START_CODE = $000001B5

4 bits: Start Code Identifier - Picture Coding Extension = $8

4 bits: f_code[0][0] - forward horizontal

4 bits: f_code[0][1] - forward vertical

4 bits: f_code[1][0] - backward horizontal

4 bits: f_code[1][1] - backward vertical

2-bit: Intra DC precision

2-bit: Picture Structure

1 bit: top field first

1 bit: Frame Pred Frame DCT

1 bit: Concealment Motion Vectors

1 bit: Q scale type

1 bit: Intra VLC format

1 bit: alternate scan

1 bit: Repeat First Field

1 bit: Chroma 420 type

1 bit: progressive frame

1 bit: Composite Display Flag, if set:

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Boot Code Identifier = $8f_code[0][0]
5f_code[0][1]f_code[1][0]
6f_code[1][1]Intra DC Prec.Picture Structure
7TFFFPF
DCT
CMVQ scale typeIntra VLC formatAlternate ScanRepeat First FieldChroma 420 type
8thProgressive framescomposite display?V axisField Sequencesubcarriersburst amplitude
9still BAsub-carrier phase
10nor SCP 

Explanations

f_code[s][t]
The values ​​are used to decode the motion vectors. The value 0 is forbidden, 1 to 9 and 15 are allowed.

Intra DC Precision
Accuracy with which the discrete cosine transformation is used. The Intra DC Mult(iplikator) is derived from this.

valueaccuracymultiplier
008 bits8th
019 bits4
1010 bits2
1111 bits1

Picture Structure

WertPicture Structure
00Reserviert
01Top Field - upper Field
10Bottom Field - lower Field
11Frame Picture - progressive

If a frame is encoded in fields, there must always be a pair with the same picture coding type.

Top Field First
This flag depends on Picture Structure, Progressive Sequence and Repeat First Field.
At If the Progressive Sequence flag is not set, it is used during decoding to reconstruct the frame and indicates whether the First Field (upper field) is output first.
If the Progressive Sequence flag is set, there is a repeat in connection with the flag First Field indicates how often a frame is output during decoding. This means at Repeat First Field = 0 and Top Field First = 0 becomes a progressive frame, with Repeat First Field = 1 and Top Field First = 0 two identical progressive frames become and with Repeat First Field = 1 and Top Field First = 1, three identical progressive frames are output.

Frame Pred Frame DCT
If this flag is set, only Frame DCT and Frame Prediction will be used. At Field Picture (fields) it is 0, with progressive frames it is 1.

Concealment Motion Vectors
This flag indicates whether the intra macroblocks were encoded with motion vectors.

Q Scale Type
This flag is used for the Quantiser Scale Factor.

Intra VLC format
This flag is used to determine the DCT coefficients.

Alternate Scan
This flag is used to determine the DCT coefficients.

Repeat First Field
If the flags progressisve_sequence (see Sequence Extension Header) and progressive_frame are not set, the repeat_first_field flag is also not set. When decoding then the frame composed of two fields. If the progressive_sequence flag is not set but the progressive_frame flag is set, the frame is composed of two fields. The first field (top field or bottom field) is specified by the flag top_field_first identified and followed by the other. If the repeat_first_field flag is then set, the frame consists of three fields composed. The first field is determined by the top_field_first flag and is followed by the other. Then will repeats the first field. If the progressive_sequence flag is set and the repeat_first_field flag is not, the frame decoded from a frame.

Chroma 420 Type
Set the same as Progressive Frame. Exists for historical reasons.

Progressive Frame
If the flag is not set, it means that the two fields of a frame are two interlaced fields are. Repeat First Field must be 0 (two field duration). If the flag is set, this means that the two fields are combined into one are merged. Picture Structure must be set to "Frame" and Frame Pred Frame DCT to 1.

Composite Display Flag
This flag is set if the picture from which the MPEG was encoded is (analogue) Composite Video were encoded. The information refers to the extension following picture. Is it a Frame Picture, the information relates to the First Field. The information is adjusted for the second field, as these cannot be saved. The following elements are not used for decoding. The Repeat First Field Flag and the Composite Display Flag must not be set at the same time.

V Axis
1-bit integer used only when the bitstream represents a signal that had previously been encoded according to PAL systems. v_axis is set to 1 on a positive sign, v_axis is set to 0 otherwise.

Field Sequence
Returns the field number of an eight field sequence on a PAL system or a five field sequence for an NTSC system according to the following table:

Field SequenceFrameField
00011
00112
01023
01124
10035
10136
11047
11148

Sub Carrier
If the flag is not set, the sub-carrier/line frequency relationship is correct.

Burst Amplitude
specifies the burst amplitude for PAL and NTSC.

Sub Carrier Phase
Indicates the phase of the reference sub carrier of the field synchronization.

Sub Carrier PhasePhase
0([360° / 256] * 0)
1([360° / 256] * 1)
......
255([360° / 256] * 255)

Macroblock

A macroblock has a size of 16 * 16 pixels. It consists of 4 blocks of 8 * 8 pixels with gray values ​​(Y). These are supplemented by two blocks of 8 * 8 pixels with chrominance values. Chrominance values ​​mean color values. One block for Red (Cr) and one for Blue (Cb).