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:
- Extending VkVideoCapabilitiesKHR:
- Extending VkVideoEncodeInfoKHR:
- Extending VkVideoFormatPropertiesKHR:
- Extending VkVideoSessionParametersCreateInfoKHR:
If VK_KHR_video_encode_av1 is supported:
- Extending VkVideoCapabilitiesKHR:
- Extending VkVideoFormatPropertiesKHR:
If VK_KHR_video_encode_h264 is supported:
If VK_KHR_video_encode_h265 is supported:
- Extending VkVideoCapabilitiesKHR:
- Extending VkVideoFormatPropertiesKHR:
New Enums
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