VK_KHR_video_encode_quantization_map(3)

# VK_KHR_video_encode_quantization_map(3) Manual Page

## Name

VK_KHR_video_encode_quantization_map - device extension

Loading… please wait.

## Registered Extension Number

554

## Revision

2

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_video_encode_queue
and
VK_KHR_format_feature_flags2
or
Vulkan Version 1.3

## API Interactions

- Interacts with VK_KHR_video_encode_av1

- Interacts with VK_KHR_video_encode_h264

- Interacts with VK_KHR_video_encode_h265

## Contact

- Ahmed Abdelkhalek [GitHub]aabdelkh

## Extension Proposal

VK_KHR_video_encode_quantization_map

## Other Extension Metadata

Last Modified Date

  2024-09-23

IP Status

  No known IP claims.

Contributors

  - Ahmed Abdelkhalek, AMD

  - Benjamin Cheng, AMD

  - Srinath Kumarapuram, NVIDIA

  - Tony Zlatinski, NVIDIA

  - Ping Liu, Intel

  - Daniel Rakos, RasterGrid

  - Lynne Iribarren, Independent

## Description

This extension builds upon the `VK_KHR_video_encode_queue` extension by enabling fine grained control of codec-specific quantization parameters in video encode operations.

More specifically, it adds support for quantization maps:

- Quantization delta maps to directly control the relative value of quantization parameter values on a per-block basis for all rate control modes (including when rate control is disabled).

- Emphasis maps to indirectly control the relative quantization parameter values on a per-block basis when rate control is not disabled and the rate control mode is not configured to the implementation-defined default mode.

This extension is to be used in conjunction with other codec specific video encode extensions that specify the codec specific quantization parameters these maps control.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR

- Extending VkVideoCapabilitiesKHR:

  - VkVideoEncodeQuantizationMapCapabilitiesKHR

- Extending VkVideoEncodeInfoKHR:

  - VkVideoEncodeQuantizationMapInfoKHR

- Extending VkVideoFormatPropertiesKHR:

  - VkVideoFormatQuantizationMapPropertiesKHR

- Extending VkVideoSessionParametersCreateInfoKHR:

  - VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR

If VK_KHR_video_encode_av1 is supported:

- Extending VkVideoCapabilitiesKHR:

  - VkVideoEncodeAV1QuantizationMapCapabilitiesKHR

- Extending VkVideoFormatPropertiesKHR:

  - VkVideoFormatAV1QuantizationMapPropertiesKHR

If VK_KHR_video_encode_h264 is supported:

- Extending VkVideoCapabilitiesKHR:

  - VkVideoEncodeH264QuantizationMapCapabilitiesKHR

If VK_KHR_video_encode_h265 is supported:

- Extending VkVideoCapabilitiesKHR:

  - VkVideoEncodeH265QuantizationMapCapabilitiesKHR

- Extending VkVideoFormatPropertiesKHR:

  - VkVideoFormatH265QuantizationMapPropertiesKHR

## New Enums

- VkVideoEncodeFlagBitsKHR

- VkVideoSessionParametersCreateFlagBitsKHR

## New Enum Constants

- `VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME`

- `VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION`

- Extending VkFormatFeatureFlagBits2:

  - `VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR`

  - `VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR`

- Extending VkImageLayout:

  - `VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR`

- Extending VkImageUsageFlagBits:

  - `VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR`

  - `VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR`

- Extending VkVideoEncodeCapabilityFlagBitsKHR:

  - `VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR`

  - `VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR`

- Extending VkVideoEncodeFlagBitsKHR:

  - `VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR`

  - `VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR`

- Extending VkVideoSessionCreateFlagBitsKHR:

  - `VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR`

  - `VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR`

- Extending VkVideoSessionParametersCreateFlagBitsKHR:

  - `VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR`

If VK_KHR_video_encode_av1 is supported:

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR`

If VK_KHR_video_encode_h264 is supported:

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR`

- Extending VkVideoEncodeH264CapabilityFlagBitsKHR:

  - `VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR`

If VK_KHR_video_encode_h265 is supported:

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR`

  - `VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR`

- Extending VkVideoEncodeH265CapabilityFlagBitsKHR:

  - `VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR`

## Version History

- Revision 1, 2024-08-21 (Daniel Rakos)

  - Internal revisions

- Revision 2, 2024-09-23 (Daniel Rakos)

  - Added interactions with VK_KHR_video_encode_av1

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0