C Specification

The VkVideoEncodeH264RateControlLayerInfoEXT structure is defined as:

// Provided by VK_EXT_video_encode_h264
typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
    VkStructureType                  sType;
    const void*                      pNext;
    uint8_t                          temporalLayerId;
    VkBool32                         useInitialRcQp;
    VkVideoEncodeH264QpEXT           initialRcQp;
    VkBool32                         useMinQp;
    VkVideoEncodeH264QpEXT           minQp;
    VkBool32                         useMaxQp;
    VkVideoEncodeH264QpEXT           maxQp;
    VkBool32                         useMaxFrameSize;
    VkVideoEncodeH264FrameSizeEXT    maxFrameSize;
} VkVideoEncodeH264RateControlLayerInfoEXT;

Members

  • sType is the type of this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • temporalLayerId specifies the H.264 temporal layer ID of the video coding layer that settings provided in this structure and its parent VkVideoEncodeRateControlLayerInfoKHR structure apply to.

  • useInitialRcQp indicates whether the values within initialRcQp should be used by the implementation.

  • initialRcQp provides the QP values for each picture type, to be used in rate control calculations at the start of video encode operations on a newly-created video session, or immediately after a session reset. These values are ignored when VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR.

  • useMinQp indicates whether the values within minQp should be used by the implementation. When it is set to VK_FALSE, the implementation ignores the values in minQp and chooses suitable values.

  • minQp provides the lower bound on the QP values for each picture type, to be used in rate control calculations.

  • useMaxQp indicates whether the values within maxQp should be used by the implementation. When it is set to VK_FALSE, the implementation ignores the values in maxQp and chooses suitable values.

  • maxQp provides the upper bound on the QP values for each picture type, to be used in rate control calculations.

  • useMaxFrameSize indicates whether the values within maxFrameSize should be used by the implementation.

  • maxFrameSize provides the upper bound on the encoded frame size for each picture type. The implementation does not guarantee the encoded frame sizes will be within the specified limits, however these limits may be used as a guide in rate control calculations. If enabled and not set properly, the maxQp limit may prevent the implementation from respecting the maxFrameSize limit.

Description

H.264-specific per-layer rate control parameters must be specified by adding a VkVideoEncodeH264RateControlLayerInfoEXT structure to the pNext chain of each VkVideoEncodeRateControlLayerInfoKHR structure in a call to vkCmdControlVideoCodingKHR command, when the command buffer context has an active video encode H.264 session.

Valid Usage
  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474
    When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, both useMinQp and useMaxQp must be set to VK_TRUE.

  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475
    When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, the values provided in minQP must be identical to those provided in maxQp.

Valid Usage (Implicit)
  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType
    sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT

  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-initialRcQp-parameter
    initialRcQp must be a valid VkVideoEncodeH264QpEXT structure

  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameter
    minQp must be a valid VkVideoEncodeH264QpEXT structure

  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameter
    maxQp must be a valid VkVideoEncodeH264QpEXT structure

  • VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameter
    maxFrameSize must be a valid VkVideoEncodeH264FrameSizeEXT structure

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-2021 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0