# VkVideoEncodeAV1RateControlInfoKHR(3) Manual Page

## Name

VkVideoEncodeAV1RateControlInfoKHR - Structure describing AV1 stream rate control parameters

Loading… please wait.

## 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

VK_KHR_video_encode_av1, VkStructureType, VkVideoEncodeAV1RateControlFlagsKHR

## 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

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0