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...
 
uint8_t targetQuality
 [in]: Target CQ (Constant Quality) level for VBR mode (range 0-51 with 0-automatic) More...
 
uint8_t targetQualityLSB
 [in]: Fractional part of target quality (as 8.8 fixed point format) 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 1090 of file nvEncodeAPI.h.

Field Documentation

uint32_t NV_ENC_RC_PARAMS::version

Definition at line 1092 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 1093 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 1094 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 1095 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 1096 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 1097 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 1098 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 1099 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 1100 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 1101 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 1102 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 1103 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 1104 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 1105 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 1106 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 1107 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 1108 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 1109 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 1110 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.

Definition at line 1111 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 1112 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 1113 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 1114 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 1115 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 1116 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 1117 of file nvEncodeAPI.h.

uint8_t NV_ENC_RC_PARAMS::targetQuality

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

Definition at line 1118 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint8_t NV_ENC_RC_PARAMS::targetQualityLSB

[in]: Fractional part of target quality (as 8.8 fixed point format)

Definition at line 1119 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 1120 of file nvEncodeAPI.h.

Referenced by nvenc_setup_rate_control().

uint32_t NV_ENC_RC_PARAMS::reserved[9]

Definition at line 1121 of file nvEncodeAPI.h.


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