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

If VK_KHR_video_encode_av1 is supported:

If VK_KHR_video_encode_h264 is supported:

If VK_KHR_video_encode_h265 is supported:

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:

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