VkVideoEncodeAV1RateControlInfoKHR
The VkVideoEncodeAV1RateControlInfoKHR
structure is defined as:
typedef struct VkVideoEncodeAV1RateControlInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoEncodeAV1RateControlFlagsKHR flags;
uint32_t gopFrameCount;
uint32_t keyFramePeriod;
uint32_t consecutiveBipredictiveFrameCount;
uint32_t temporalLayerCount;
} VkVideoEncodeAV1RateControlInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is a bitmask of VkVideoEncodeAV1RateControlFlagBitsKHR specifying AV1 rate control flags.gopFrameCount
is the number of frames within a group of pictures (GOP) intended to be used by the application. If it is set to 0, the rate control algorithm may assume an implementation-dependent GOP length. If it is set toUINT32_MAX
, the GOP length is treated as infinite.keyFramePeriod
is the interval, in terms of number of frames, between two frames with the AV1 frame typeSTD_VIDEO_AV1_FRAME_TYPE_KEY
(see key frame period). If it is set to 0, the rate control algorithm may assume an implementation-dependent key frame period. If it is set toUINT32_MAX
, the key frame period is treated as infinite.consecutiveBipredictiveFrameCount
is the number of consecutive frames encoded withVK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR
between frames encoded with other rate control groups within the GOP.temporalLayerCount
specifies the number of AV1 temporal layers that the application intends to use.
When an instance of this structure is included in the pNext
chain of
the VkVideoCodingControlInfoKHR structure passed to the
vkCmdControlVideoCodingKHR command, and
VkVideoCodingControlInfoKHR::flags
includes
VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR
, the parameters in
this structure are used as guidance for the implementation’s rate control
algorithm (see Video Coding Control).
Valid Usage
VUID-VkVideoEncodeAV1RateControlInfoKHR-flags-10294
If flags
contains
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR
or
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR
,
then it must also contain
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR
VUID-VkVideoEncodeAV1RateControlInfoKHR-flags-10295
If flags
contains
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR
,
then it must not also contain
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR
VUID-VkVideoEncodeAV1RateControlInfoKHR-flags-10296
If flags
contains
VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR
, then
gopFrameCount
must be greater than 0
VUID-VkVideoEncodeAV1RateControlInfoKHR-keyFramePeriod-10297
If keyFramePeriod
is not 0
, then it must be greater than or
equal to gopFrameCount
VUID-VkVideoEncodeAV1RateControlInfoKHR-consecutiveBipredictiveFrameCount-10298
If consecutiveBipredictiveFrameCount
is not 0
, then it must be
less than gopFrameCount
VUID-VkVideoEncodeAV1RateControlInfoKHR-temporalLayerCount-10299
temporalLayerCount
must be less than or equal to
VkVideoEncodeAV1CapabilitiesKHR::maxTemporalLayerCount
, as
returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the used
video profile
Valid Usage (Implicit)
VUID-VkVideoEncodeAV1RateControlInfoKHR-sType-sType
sType
must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeAV1RateControlInfoKHR-flags-parameter
flags
must be a valid combination of VkVideoEncodeAV1RateControlFlagBitsKHR values