AVBlocks for .NET  3.0
Audio and Video Software Development Kit
Param.Encoder.Video.H264 Class Reference

Parameters specific to H.264 encoders. More...

Static Public Attributes

static string AccessUnitDelimiters = "ENCODER_H264_ACCESS_UNIT_DELIMITERS"
 H.264 Video: Use access unit delimiters.
 
static string DeblockingFilter = "ENCODER_H264_DEBLOCKING_FILTER_IDC"
 H.264 Video: De-blocking filter mode.
 
static string DeblockingFilterAlpha = "ENCODER_H264_DEBLOCKING_FILTER_ALPHA"
 H.264 Video: De-blocking filter strength.
 
static string DeblockingFilterBeta = "ENCODER_H264_DEBLOCKING_FILTER_BETA"
 H.264 Video: De-blocking filter threshold.
 
static string DirectPredMode = "ENCODER_H264_DIRECT_PRED_MODE"
 H.264 Video: Direct prediction mode.
 
static string EntropyCodingMode = "ENCODER_H264_ENTROPY_CODING_MODE"
 H.264 Video: Entropy coding mode.
 
static string FixedFramerate = "ENCODER_H264_FIXED_FRAMERATE"
 H.264 Video: Write timing info with a fixed frame rate in the bitstream.
 
static string KeyFrameIDRInterval = "ENCODER_H264_KEY_FRAME_IDR_INTERVAL"
 H.264 Video: Distance between two sequential IDR-pictures in terms of I pictures.
 
static string KeyFrameInterval = "ENCODER_H264_KEY_FRAME_INTERVAL"
 H.264 Video: Distance between two sequential I-pictures.
 
static string Level = "ENCODER_H264_LEVEL_IDC"
 H.264 Video: Computation level.
 
static string MEMethod = "ENCODER_H264_ME_METHOD"
 H.264 Video: Motion estimation method.
 
static string MERangeSearchX = "ENCODER_H264_ME_RANGE_SEARCH_X"
 H.264 Video: Specifies how far motion estimation should be done in a horizontal direction.
 
static string MERangeSearchY = "ENCODER_H264_ME_RANGE_SEARCH_Y"
 H.264 Video: Specifies how far motion estimation should be done in a vertical direction.
 
static string MESplitMode = "ENCODER_H264_ME_SPLIT_MODE"
 H.264 Video: Specifies the block size for which motion estimation should be done.
 
static string NumBFrames = "ENCODER_H264_NUM_B_FRAMES"
 H.264 Video: Number of B-frames between consequent I-frames or P-frames.
 
static string NumRefFrames = "ENCODER_H264_NUM_REF_FRAMES"
 H.264 Video: Maximum number of reference pictures.
 
static string NumSlices = "ENCODER_H264_NUM_SLICES"
 H.264 Video: Number of slices per frame/field.
 
static string PictureCodingType = "ENCODER_H264_PIC_CODING_TYPE"
 H.264 Video: Picture coding type.
 
static string Profile = "ENCODER_H264_PROFILE_IDC"
 H.264 Video: Encoding profile.
 
static string QualitySpeed = "ENCODER_H264_QUALITY_SPEED"
 H.264 Video: Quality/Speed trade off.
 
static string RateControlMethod = "ENCODER_H264_RATE_CONTROL_METHOD"
 H.264 Video: Rate control method.
 
static string RateControlQuantB = "ENCODER_H264_RATE_CONTROL_QUANT_B"
 H.264 Video: Rate control quantizer for B slices.
 
static string RateControlQuantI = "ENCODER_H264_RATE_CONTROL_QUANT_I"
 H.264 Video: Rate control quantizer for I slices.
 
static string RateControlQuantP = "ENCODER_H264_RATE_CONTROL_QUANT_P"
 H.264 Video: Rate control quantizer for P slices.
 
static string Transform8x8 = "ENCODER_H264_TRANSFORM8X8"
 H.264 Video: Enables 8x8 transform block size.
 
static string TreatBFramesAsReference = "ENCODER_H264_TREAT_B_FRAMES_AS_REFERENCE"
 H.264 Video: Allows B-pictures to be used as reference pictures.
 

Detailed Description

Parameters specific to H.264 encoders.

Member Data Documentation

◆ AccessUnitDelimiters

string AccessUnitDelimiters = "ENCODER_H264_ACCESS_UNIT_DELIMITERS"
static

H.264 Video: Use access unit delimiters.

This parameter is a boolean value stored as one of the following: System.Boolean (true/false) or integral value (1/0). The default value is false.

Note: Hardware encoders support: Intel QuickSync, NVIDIA NVENC.

◆ DeblockingFilter

string DeblockingFilter = "ENCODER_H264_DEBLOCKING_FILTER_IDC"
static

H.264 Video: De-blocking filter mode.

The supported values are defined in H264DeblockingFilter enum. The default value is H264DeblockingFilter.All.

The in-loop deblocking filter helps prevent the blocking artifacts common to other DCT-based image compression techniques, resulting in better visual appearance and compression efficiency

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ DeblockingFilterAlpha

string DeblockingFilterAlpha = "ENCODER_H264_DEBLOCKING_FILTER_ALPHA"
static

H.264 Video: De-blocking filter strength.

This parameter is an integer value. Supported values range from -6 to 6. Negative values give a more sharp video, but they also increases the danger of visible block artifacts. In contrast positive values result in a smoother video, but they will also remove more details. The default value is 0.

Note: Hardware encoders support: AMD VCE.

See also
H264.DeblockingFilter, H264.DeblockingFilterBeta

◆ DeblockingFilterBeta

string DeblockingFilterBeta = "ENCODER_H264_DEBLOCKING_FILTER_BETA"
static

H.264 Video: De-blocking filter threshold.

This parameter is an integer value.

The parameter controls the threshold for block detection.

Supported values range from -6 to 6.
Negative values "save" more details, but more blocks might slip through (especially in flat areas). In contrast positive values will remove more details and catch more blocks. The default value is 0 and usually it's enough to detect all blocks.

Note: Hardware encoders support: AMD VCE.

See also
H264.DeblockingFilter, H264.DeblockingFilterAlpha

◆ DirectPredMode

string DirectPredMode = "ENCODER_H264_DIRECT_PRED_MODE"
static

H.264 Video: Direct prediction mode.

Sets the value of the syntax element direct_spatial_mv_pred_flag.

This parameter is an integer.

The supported values are defined in H264DirectPredMode enum. The default value is H264DirectPredMode.Temporal.

Note: Hardware encoders support: None.

◆ EntropyCodingMode

string EntropyCodingMode = "ENCODER_H264_ENTROPY_CODING_MODE"
static

H.264 Video: Entropy coding mode.

This parameter is an integer.

The supported values are defined in H264EntropyCodingMode enum. The default value is H264EntropyCodingMode.CABAC.

CABAC compresses data more efficiently (10-20% typically) than CAVLC but requires considerably more processing to decode.

CABAC is supported at Main, High, High10, High422 and High444. CABAC is not supported at Baseline profile.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

See also
H264.Profile

◆ FixedFramerate

string FixedFramerate = "ENCODER_H264_FIXED_FRAMERATE"
static

H.264 Video: Write timing info with a fixed frame rate in the bitstream.

This parameter is a boolean value expressed as an integer (1|0).

The default value is True (1).

The timing info is written in the bitstream only when this parameter is True and a positive frame rate is specified.

Note: Hardware encoders support: Intel QuickSync.

◆ KeyFrameIDRInterval

string KeyFrameIDRInterval = "ENCODER_H264_KEY_FRAME_IDR_INTERVAL"
static

H.264 Video: Distance between two sequential IDR-pictures in terms of I pictures.

IDR stands for Instantaneous Decoding Refresh.

This parameter is an integer value. It must be greater or equal to 0.

For example if this parameter is 10 then every tenth I-picture is also an IDR-picture.

An IDR picture is a special kind of I frame used in an H.264 stream. Pictures following an IDR-picture may not refer back to pictures preceding the IDR-picture. IDR-pictures can be used to create H.264 streams which are more easily edited. The default value is 1.

Note: Hardware encoders support: Intel QuickSync, AMD VCE.

◆ KeyFrameInterval

string KeyFrameInterval = "ENCODER_H264_KEY_FRAME_INTERVAL"
static

H.264 Video: Distance between two sequential I-pictures.

This parameter is an integer value. Must be greater than or equal to 0. Both 0 and 1 mean that every picture is coded as I-picture. The default value is 250.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ Level

string Level = "ENCODER_H264_LEVEL_IDC"
static

H.264 Video: Computation level.

Set the value of the level_idc syntax element.

This parameter is an integer value. A level designated as x.y is expressed as an xy integer. For example level 1 is expressed as 10, level 1.1 as 11 and so on. The level must be in accordance with the H.264 standard. It must correspond to the number of reference frames and frame size. A value of 0 specifies automatic level computation. The default value is 0 (auto).

Note: Similar with the Profile, Level specifies the capabilities a decoder must fulfill to decode a bitstream of a certain level. Most level restrictions are driven by memory restrictions and set restrictions such as resolution supported, maximum number of references, frame rate etc.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ MEMethod

string MEMethod = "ENCODER_H264_ME_METHOD"
static

H.264 Video: Motion estimation method.

This parameter is an integer.

The supported values are defined in MEMethod enum. The default value is MEMethod.Log.

Note: Hardware encoders support: None.

◆ MERangeSearchX

string MERangeSearchX = "ENCODER_H264_ME_RANGE_SEARCH_X"
static

H.264 Video: Specifies how far motion estimation should be done in a horizontal direction.

This parameter is an integer value. The default value is 8.

Note: Hardware encoders support: AMD VCE.

◆ MERangeSearchY

string MERangeSearchY = "ENCODER_H264_ME_RANGE_SEARCH_Y"
static

H.264 Video: Specifies how far motion estimation should be done in a vertical direction.

This parameter is an integer value. The default value is 8.

Note: Hardware encoders support: AMD VCE.

◆ MESplitMode

string MESplitMode = "ENCODER_H264_ME_SPLIT_MODE"
static

H.264 Video: Specifies the block size for which motion estimation should be done.

This parameter is an integer.

The supported values are defined in MESplitMode enum. The default value is MESplitMode.Only16x16.

Note: Hardware encoders support: None.

◆ NumBFrames

string NumBFrames = "ENCODER_H264_NUM_B_FRAMES"
static

H.264 Video: Number of B-frames between consequent I-frames or P-frames.

This parameter is an integer.

The integer value must be a number that is greater than or equal to zero.

The default value is 0.

B-frames are supported at Main, High, High10, High422 and High444. B frames are not supported at Baseline profile.

H.264 stream without B frames looks like: IPPPPPPP...PI... H.264 stream with B frames (NumBFrames 2) looks like: IBBPBBPBBP...PI

The main advantage of the usage of B frames is coding efficiency. In most cases, B frames will result in less bits being coded overall. B-frames can use both previous and forward frames for data reference to get the highest amount of data compression.

Note: Hardware encoders support: Intel QuickSync, NVIDIA NVENC.

See also
H264.Profile

◆ NumRefFrames

string NumRefFrames = "ENCODER_H264_NUM_REF_FRAMES"
static

H.264 Video: Maximum number of reference pictures.

Sets the maximum number of references stored in the Decoded Picture Buffer (DPB) for motion estimation and compensation. Essentially sets the syntax element num_ref_frames in the sequence parameter sets.

This parameter is an integer value.

The integer value must be consistent with profile/level parameters for a given frame size, since they determine reference picture and buffer constraints for a decoder.
If P-pictures are allowed, the number should be greater than 0.
If B-pictures are allowed, the number should be greater than 1.
Note: If NumRefFrames is 0 it is automatically determined by the encoder.

The default value is 3. Supported values: from 0 to 16.

This setting controls how many frames can be referenced by P- and B-Frames. Higher values will usually result in a more efficient compression, but will also require more time for encoding.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ NumSlices

string NumSlices = "ENCODER_H264_NUM_SLICES"
static

H.264 Video: Number of slices per frame/field.

This parameter is an integer value. A frame/field is divided into equal parts except for the last one that can be shorter. The number cannot exceed the number of macro blocks per frame/field. The default value is 0 (auto).

Note: Hardware encoders support: Intel QuickSync, NVIDIA NVENC.

◆ PictureCodingType

string PictureCodingType = "ENCODER_H264_PIC_CODING_TYPE"
static

H.264 Video: Picture coding type.

This parameter is an integer.

The supported values are defined in PictureCodingType enum. The default value is PictureCodingType.Frames.

Note: Hardware encoders support: None.

◆ Profile

string Profile = "ENCODER_H264_PROFILE_IDC"
static

H.264 Video: Encoding profile.

This parameter is an integer.

The supported values are defined in H264Profile enum. The default value is H264Profile.High.

Sets the value of the profile_idc syntax element.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

See also
H264.EntropyCodingMode, H264.NumBFrames, H264.Transform8x8

◆ QualitySpeed

string QualitySpeed = "ENCODER_H264_QUALITY_SPEED"
static

H.264 Video: Quality/Speed trade off.

This parameter is an integer value. Supported values range from 0 to 6 where 0 means max speed and 6 means max quality. The default value is 0.

Note: Hardware encoders support: Intel QuickSync.

◆ RateControlMethod

string RateControlMethod = "ENCODER_H264_RATE_CONTROL_METHOD"
static

H.264 Video: Rate control method.

This parameter is an integer.

The supported values are defined in RateControlMethod enum. The default value is RateControlMethod.ABR.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

See also
H264.RateControlQuantI, H264.RateControlQuantP, H264.RateControlQuantB

◆ RateControlQuantB

string RateControlQuantB = "ENCODER_H264_RATE_CONTROL_QUANT_B"
static

H.264 Video: Rate control quantizer for B slices.

Used only when RateControlMethod is set to Constant Quantization.

This parameter is an integer.

Supported values range: from 0 to 51. The default value is 20.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ RateControlQuantI

string RateControlQuantI = "ENCODER_H264_RATE_CONTROL_QUANT_I"
static

H.264 Video: Rate control quantizer for I slices.

Used only when RateControlMethod is set to Constant Quantization.

This parameter is an integer.

Supported values range: from 0 to 51. The default value is 20.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ RateControlQuantP

string RateControlQuantP = "ENCODER_H264_RATE_CONTROL_QUANT_P"
static

H.264 Video: Rate control quantizer for P slices.

Used only when RateControlMethod is set to Constant Quantization.

This parameter is an integer.

Supported values range: from 0 to 51. The default value is 20.

Note: Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.

◆ Transform8x8

string Transform8x8 = "ENCODER_H264_TRANSFORM8X8"
static

H.264 Video: Enables 8x8 transform block size.

This parameter is a boolean value expressed as an integer (1|0).

Supported modes are:

0 - Disabled. Only 4x4 transforms are used.
1 - Enabled. Allows the additional use of 8x8 transform.

The default is Enabled (1).

Transform 8x8 improves the visual quality at a minor speed cost.

Transform 8x8 is supported at High, High10, High422 and High444. 8x8 transform is not supported at Main and Baseline profiles.

Note: Hardware encoders support: NVIDIA NVENC.

See also
H264.Profile

◆ TreatBFramesAsReference

string TreatBFramesAsReference = "ENCODER_H264_TREAT_B_FRAMES_AS_REFERENCE"
static

H.264 Video: Allows B-pictures to be used as reference pictures.

This parameter is a boolean value stored as one of the following: System.Boolean (true/false) or integral value (1/0).
The default value is false.

Note: Hardware encoders support: Intel QuickSync.

See also
H264.NumBFrames