// d3d12umddi.h
typedef struct D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_QVBR1_0096 {
UINT InitialQP;
UINT MinQP;
UINT MaxQP;
UINT64 MaxFrameBitSize;
UINT64 TargetAvgBitRate;
UINT64 PeakBitRate;
UINT ConstantQualityTarget;
UINT64 VBVCapacity;
UINT64 InitialVBVFullness;
UINT QualityVsSpeed;
} D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_QVBR1_0096;
View the official Windows Driver Kit DDI referenceNo description available.
The D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_QVBR1_0096 structure contains the rate control definition for enhanced QVBR rate control mode.
InitialQPWhen the D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAG_0080_ENABLE_INITIAL_QP flag is set, InitialQP can be used by the rate control algorithm.
MinQPWhen the D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAG_0080_ENABLE_QP_RANGE flag is set, MinQP limits the quantization parameter (QP) range of the rate control algorithm.
MaxQPWhen the D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAG_0080_ENABLE_QP_RANGE flag is set, MaxQP limits the QP range of the rate control algorithm.
MaxFrameBitSizeMaximum size for each frame to be encoded, in bits. When D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAG_0080_ENABLE_MAX_FRAME_SIZE is set, MaxFrameBitSize limits each frame's maximum size in the rate control algorithm.
TargetAvgBitRateAverage bitrate to be used, in bits per second.
PeakBitRateMaximum bitrate that can be reached, in bits per second.
ConstantQualityTargetIndicates the quality level. Values are codec-specific as each standard defines the range for this argument (for example, H.264 / HEVC 0-51, et cetera).
VBVCapacityThe Video Buffering Verifier (VBV) buffer capacity, in bits.
InitialVBVFullnessThe initial fullness of the VBV buffer, in bits.
QualityVsSpeedThe quality versus speed trade-off. This value must be in the range [0, D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1.MaxQualityVsSpeed]. The lower the value, the faster the encode operation.
The settings associated to each of the levels exposed by QualityVsSpeed must only refer to hardware/driver implementation optimizations and heuristics that aren't related to specific codec configurations or encoding tools selection, which are already independently exposed in the D3D12 API to the user individually. Please note that other codec configurations and codec encoding tools exposed through this API may also affect quality and speed.
See D3D12 AV1 video encoding for more information.
D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS_0080_2
D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_FLAGS_0080