Extension and Version Dependencies
-
This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.
Contact
-
Ahmed Abdelkhalek aabdelkh
Other Extension Metadata
- Last Modified Date
-
2023-03-06
- IP Status
-
No known IP claims.
- Contributors
-
-
Ahmed Abdelkhalek, AMD
-
George Hao, AMD
-
Jake Beju, AMD
-
Chunbo Chen, Intel
-
Ping Liu, Intel
-
Srinath Kumarapuram, NVIDIA
-
Tony Zlatinski, NVIDIA
-
Daniel Rakos, RasterGrid
-
Description
This extension builds upon the VK_KHR_video_encode_queue
extension
by adding support for encoding elementary video stream sequences compliant
with the H.265/HEVC video compression standard.
New Structures
-
Extending VkVideoCapabilitiesKHR:
-
Extending VkVideoCodingControlInfoKHR:
-
Extending VkVideoCodingControlInfoKHR, VkVideoEncodeRateControlLayerInfoKHR:
-
Extending VkVideoEncodeInfoKHR:
-
Extending VkVideoProfileInfoKHR, VkQueryPoolCreateInfo:
-
Extending VkVideoReferenceSlotInfoKHR:
-
Extending VkVideoSessionParametersCreateInfoKHR:
-
Extending VkVideoSessionParametersUpdateInfoKHR:
New Enum Constants
-
VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME
-
VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION
-
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT
-
-
Extending VkVideoCodecOperationFlagBitsKHR:
-
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT
-
Version History
-
Revision 0, 2019-11-14 (Ahmed Abdelkhalek)
-
Initial draft
-
-
Revision 0.5, 2020-02-13 (Tony Zlatinski)
-
General Spec cleanup
-
Added DPB structures
-
Change the VCL frame encode structure
-
Added a common Non-VCL Picture Paramarameters structure
-
-
Revision 2, Oct 10 2021 (Srinath Kumarapuram)
-
Vulkan Video Encode h.265 update and spec edits
-
-
Revision 3, 2021-12-08 (Ahmed Abdelkhalek)
-
Rate control updates
-
-
Revision 4, 2022-01-11 (Ahmed Abdelkhalek)
-
Replace occurrences of “slice” by “slice segment” and rename structures/enums to reflect this.
-
-
Revision 5, 2022-02-10 (Ahmed Abdelkhalek)
-
Updates to encode capability interface
-
-
Revision 6, 2022-03-16 (Ahmed Abdelkhalek)
-
Relocate Std header version reporting/requesting from this extension to VK_KHR_video_queue extension.
-
Remove the now empty VkVideoEncodeH265SessionCreateInfoEXT.
-
-
Revision 7, 2022-03-24 (Ahmed Abdelkhalek)
-
Add capability flags to report support to disable transform skip and support to use B frame in L1 reference list.
-
-
Revision 8, 2022-07-18 (Daniel Rakos)
-
Replace
VkVideoEncodeH265RateControlStructureFlagBitsEXT
bit enum withVkVideoEncodeH265RateControlStructureEXT
enum -
Rename
VkVideoEncodeH265ProfileEXT
toVkVideoEncodeH265ProfileInfoEXT
-
Rename
VkVideoEncodeH265ReferenceListsEXT
toVkVideoEncodeH265ReferenceListsInfoEXT
-
Rename
VkVideoEncodeH265EmitPictureParametersEXT
toVkVideoEncodeH265EmitPictureParametersInfoEXT
-
Rename
VkVideoEncodeH265NaluSliceSegmentEXT
toVkVideoEncodeH265NaluSliceSegmentInfoEXT
-
-
Revision 9, 2022-09-18 (Daniel Rakos)
-
Rename
vpsStdCount
,pVpsStd
,spsStdCount
,pSpsStd
,ppsStdCount
, andpPpsStd
tostdVPSCount
,pStdVPSs
,stdSPSCount
,pStdSPSs
,stdPPSCount
, andpStdPPSs
, respectively, inVkVideoEncodeH265SessionParametersAddInfoEXT
-
Rename
maxVpsStdCount
,maxSpsStdCount
, andmaxPpsStdCount
tomaxStdVPSCount
,maxStdSPSCount
andmaxStdPPSCount
, respectively, inVkVideoEncodeH265SessionParametersCreateInfoEXT
-
-
Revision 10, 2023-03-06 (Daniel Rakos)
-
Removed
VkVideoEncodeH265EmitPictureParametersInfoEXT
-
Changed member types in
VkVideoEncodeH265CapabilitiesEXT
andVkVideoEncodeH265ReferenceListsInfoEXT
fromuint8_t
touint32_t
-
Changed the type of
VkVideoEncodeH265RateControlInfoEXT::subLayerCount
andVkVideoEncodeH264RateControlLayerInfoEXT::temporalId
fromuint8_t
touint32_t
-
Removed
VkVideoEncodeH265InputModeFlagsEXT
andVkVideoEncodeH265OutputModeFlagsEXT
as we only support frame-in-frame-out mode for now -
Rename
pCurrentPictureInfo
inVkVideoEncodeH265VclFrameInfoEXT
topStdPictureInfo
-
Rename
pSliceSegmentHeaderStd
inVkVideoEncodeH265NaluSliceInfoEXT
topStdSliceSegmentHeader
-
Rename
pReferenceFinalLists
inVkVideoEncodeH264VclFrameInfoEXT
andVkVideoEncodeH264NaluSliceInfoEXT
topStdReferenceFinalLists
-
Removed the
slotIndex
member ofVkVideoEncodeH265DpbSlotInfoEXT
and changed it to be chained toVkVideoReferenceSlotInfoKHR
-
Replaced
VkVideoEncodeH265ReferenceListsInfoEXT
with the new Video Std header structureStdVideoEncodeH265ReferenceLists
-
Added new capability flag
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT
-
See Also
VkVideoEncodeH265CapabilitiesEXT, VkVideoEncodeH265CapabilityFlagBitsEXT, VkVideoEncodeH265CapabilityFlagsEXT, VkVideoEncodeH265CtbSizeFlagBitsEXT, VkVideoEncodeH265CtbSizeFlagsEXT, VkVideoEncodeH265DpbSlotInfoEXT, VkVideoEncodeH265FrameSizeEXT, VkVideoEncodeH265NaluSliceSegmentInfoEXT, VkVideoEncodeH265ProfileInfoEXT, VkVideoEncodeH265QpEXT, VkVideoEncodeH265RateControlInfoEXT, VkVideoEncodeH265RateControlLayerInfoEXT, VkVideoEncodeH265RateControlStructureEXT, VkVideoEncodeH265SessionParametersAddInfoEXT, VkVideoEncodeH265SessionParametersCreateInfoEXT, VkVideoEncodeH265TransformBlockSizeFlagBitsEXT, VkVideoEncodeH265TransformBlockSizeFlagsEXT, VkVideoEncodeH265VclFrameInfoEXT
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.