FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
NV_ENC_RC_PARAMS Struct Reference

Rate Control Configuration Paramters. More...

#include <nvEncodeAPI.h>

Data Fields

uint32_t version
 
NV_ENC_PARAMS_RC_MODE rateControlMode
 [in]: Specifies the rate control mode. More...
 
NV_ENC_QP constQP
 [in]: Specifies the initial QP to be used for encoding, these values would be used for all frames if in Constant QP mode. More...
 
uint32_t averageBitRate
 [in]: Specifies the average bitrate(in bits/sec) used for encoding. More...
 
uint32_t maxBitRate
 [in]: Specifies the maximum bitrate for the encoded output. More...
 
uint32_t vbvBufferSize
 [in]: Specifies the VBV(HRD) buffer size. More...
 
uint32_t vbvInitialDelay
 [in]: Specifies the VBV(HRD) initial delay in bits. More...
 
uint32_t enableMinQP:1
 [in]: Set this to 1 if minimum QP used for rate control. More...
 
uint32_t enableMaxQP:1
 [in]: Set this to 1 if maximum QP used for rate control. More...
 
uint32_t enableInitialRCQP:1
 [in]: Set this to 1 if user suppplied initial QP is used for rate control. More...
 
uint32_t enableAQ:1
 [in]: Set this to 1 to enable adaptive quantization (Spatial). More...
 
uint32_t enableExtQPDeltaMap:1
 [in]: Set this to 1 to enable additional QP modifier for each MB supplied by client though signed byte array pointed to by NV_ENC_PIC_PARAMS::qpDeltaMap (Not Supported when AQ(Spatial/Temporal) is enabled) More...
 
uint32_t enableLookahead:1
 [in]: Set this to 1 to enable lookahead with depth <lookaheadDepth> (if lookahead is enabled, input frames must remain available to the encoder until encode completion) More...
 
uint32_t disableIadapt:1
 [in]: Set this to 1 to disable adaptive I-frame insertion at scene cuts (only has an effect when lookahead is enabled) More...
 
uint32_t disableBadapt:1
 [in]: Set this to 1 to disable adaptive B-frame decision (only has an effect when lookahead is enabled) More...
 
uint32_t enableTemporalAQ:1
 [in]: Set this to 1 to enable temporal AQ for H.264 More...
 
uint32_t zeroReorderDelay:1
 [in]: Set this to 1 to indicate zero latency operation (no reordering delay, num_reorder_frames=0) More...
 
uint32_t enableNonRefP:1
 [in]: Set this to 1 to enable automatic insertion of non-reference P-frames (no effect if enablePTD=0) More...
 
uint32_t strictGOPTarget:1
 [in]: Set this to 1 to minimize GOP-to-GOP rate fluctuations More...
 
uint32_t aqStrength:4
 [in]: When AQ (Spatial) is enabled (i.e. More...
 
uint32_t reservedBitFields:16
 [in]: Reserved bitfields and must be set to 0 More...
 
NV_ENC_QP minQP
 [in]: Specifies the minimum QP used for rate control. More...
 
NV_ENC_QP maxQP
 [in]: Specifies the maximum QP used for rate control. More...
 
NV_ENC_QP initialRCQP
 [in]: Specifies the initial QP used for rate control. More...
 
uint32_t temporallayerIdxMask
 [in]: Specifies the temporal layers (as a bitmask) whose QPs have changed. More...
 
uint8_t temporalLayerQP [8]
 [in]: Specifies the temporal layer QPs used for rate control. More...
 
uint16_t targetQuality
 [in]: Target CQ (Constant Quality) level for VBR mode (range 0-51 with 0-automatic) More...
 
uint16_t lookaheadDepth
 [in]: Maximum depth of lookahead with range 0-32 (only used if enableLookahead=1) More...
 
uint32_t reserved [9]
 

Detailed Description

Rate Control Configuration Paramters.

Definition at line 1055 of file nvEncodeAPI.h.

Field Documentation

uint32_t NV_ENC_RC_PARAMS::version

Definition at line 1057 of file nvEncodeAPI.h.

NV_ENC_PARAMS_RC_MODE NV_ENC_RC_PARAMS::rateControlMode

[in]: Specifies the rate control mode.

Check support for various rate control modes using NV_ENC_CAPS_SUPPORTED_RATECONTROL_MODES caps.

Definition at line 1058 of file nvEncodeAPI.h.

Referenced by nvenc_override_rate_control(), nvenc_setup_h264_config(), nvenc_setup_hevc_config(), nvenc_setup_rate_control(), set_constqp(), and set_lossless().

NV_ENC_QP NV_ENC_RC_PARAMS::constQP

[in]: Specifies the initial QP to be used for encoding, these values would be used for all frames if in Constant QP mode.

Definition at line 1059 of file nvEncodeAPI.h.

Referenced by set_constqp(), and set_lossless().

uint32_t NV_ENC_RC_PARAMS::averageBitRate

[in]: Specifies the average bitrate(in bits/sec) used for encoding.

Definition at line 1060 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder(), and nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::maxBitRate

[in]: Specifies the maximum bitrate for the encoded output.

This is used for VBR and ignored for CBR mode.

Definition at line 1061 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder(), and nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::vbvBufferSize

[in]: Specifies the VBV(HRD) buffer size.

in bits. Set 0 to use the default VBV buffer size.

Definition at line 1062 of file nvEncodeAPI.h.

Referenced by nvenc_setup_encoder(), and nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::vbvInitialDelay

[in]: Specifies the VBV(HRD) initial delay in bits.

Set 0 to use the default VBV initial delay .

Definition at line 1063 of file nvEncodeAPI.h.

uint32_t NV_ENC_RC_PARAMS::enableMinQP

[in]: Set this to 1 if minimum QP used for rate control.

Definition at line 1064 of file nvEncodeAPI.h.

Referenced by set_vbr().

uint32_t NV_ENC_RC_PARAMS::enableMaxQP

[in]: Set this to 1 if maximum QP used for rate control.

Definition at line 1065 of file nvEncodeAPI.h.

Referenced by set_vbr().

uint32_t NV_ENC_RC_PARAMS::enableInitialRCQP

[in]: Set this to 1 if user suppplied initial QP is used for rate control.

Definition at line 1066 of file nvEncodeAPI.h.

Referenced by set_vbr().

uint32_t NV_ENC_RC_PARAMS::enableAQ

[in]: Set this to 1 to enable adaptive quantization (Spatial).

Definition at line 1067 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::enableExtQPDeltaMap

[in]: Set this to 1 to enable additional QP modifier for each MB supplied by client though signed byte array pointed to by NV_ENC_PIC_PARAMS::qpDeltaMap (Not Supported when AQ(Spatial/Temporal) is enabled)

Definition at line 1068 of file nvEncodeAPI.h.

uint32_t NV_ENC_RC_PARAMS::enableLookahead

[in]: Set this to 1 to enable lookahead with depth <lookaheadDepth> (if lookahead is enabled, input frames must remain available to the encoder until encode completion)

Definition at line 1069 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::disableIadapt

[in]: Set this to 1 to disable adaptive I-frame insertion at scene cuts (only has an effect when lookahead is enabled)

Definition at line 1070 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::disableBadapt

[in]: Set this to 1 to disable adaptive B-frame decision (only has an effect when lookahead is enabled)

Definition at line 1071 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::enableTemporalAQ

[in]: Set this to 1 to enable temporal AQ for H.264

Definition at line 1072 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::zeroReorderDelay

[in]: Set this to 1 to indicate zero latency operation (no reordering delay, num_reorder_frames=0)

Definition at line 1073 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::enableNonRefP

[in]: Set this to 1 to enable automatic insertion of non-reference P-frames (no effect if enablePTD=0)

Definition at line 1074 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::strictGOPTarget

[in]: Set this to 1 to minimize GOP-to-GOP rate fluctuations

Definition at line 1075 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::aqStrength

[in]: When AQ (Spatial) is enabled (i.e.

NV_ENC_RC_PARAMS::enableAQ is set), this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive). If not set, strength is autoselected by driver. Currently supported only with h264

Definition at line 1076 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::reservedBitFields

[in]: Reserved bitfields and must be set to 0

Definition at line 1077 of file nvEncodeAPI.h.

NV_ENC_QP NV_ENC_RC_PARAMS::minQP

[in]: Specifies the minimum QP used for rate control.

Client must set NV_ENC_CONFIG::enableMinQP to 1.

Definition at line 1078 of file nvEncodeAPI.h.

Referenced by set_vbr().

NV_ENC_QP NV_ENC_RC_PARAMS::maxQP

[in]: Specifies the maximum QP used for rate control.

Client must set NV_ENC_CONFIG::enableMaxQP to 1.

Definition at line 1079 of file nvEncodeAPI.h.

Referenced by set_vbr().

NV_ENC_QP NV_ENC_RC_PARAMS::initialRCQP

[in]: Specifies the initial QP used for rate control.

Client must set NV_ENC_CONFIG::enableInitialRCQP to 1.

Definition at line 1080 of file nvEncodeAPI.h.

Referenced by set_vbr().

uint32_t NV_ENC_RC_PARAMS::temporallayerIdxMask

[in]: Specifies the temporal layers (as a bitmask) whose QPs have changed.

Valid max bitmask is [2^NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS - 1]

Definition at line 1081 of file nvEncodeAPI.h.

uint8_t NV_ENC_RC_PARAMS::temporalLayerQP[8]

[in]: Specifies the temporal layer QPs used for rate control.

Temporal layer index is used as as the array index

Definition at line 1082 of file nvEncodeAPI.h.

uint16_t NV_ENC_RC_PARAMS::targetQuality

[in]: Target CQ (Constant Quality) level for VBR mode (range 0-51 with 0-automatic)

Definition at line 1083 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint16_t NV_ENC_RC_PARAMS::lookaheadDepth

[in]: Maximum depth of lookahead with range 0-32 (only used if enableLookahead=1)

Definition at line 1084 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::reserved[9]

Definition at line 1085 of file nvEncodeAPI.h.


The documentation for this struct was generated from the following file: