C Specification

The VkVideoEncodeAV1RateControlInfoKHR structure is defined as:

// Provided by VK_KHR_video_encode_av1
typedef struct VkVideoEncodeAV1RateControlInfoKHR {
    VkStructureType                        sType;
    const void*                            pNext;
    VkVideoEncodeAV1RateControlFlagsKHR    flags;
    uint32_t                               gopFrameCount;
    uint32_t                               keyFramePeriod;
    uint32_t                               consecutiveBipredictiveFrameCount;
    uint32_t                               temporalLayerCount;
} VkVideoEncodeAV1RateControlInfoKHR;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL 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 to UINT32_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 type STD_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 to UINT32_MAX, the key frame period is treated as infinite.

  • consecutiveBipredictiveFrameCount is the number of consecutive frames encoded with VK_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.

Description

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

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0