Contact
-
Ahmed Abdelkhalek aabdelkh
Other Extension Metadata
- Last Modified Date
-
2023-12-05
- 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
-
Ravi Chaudhary, NVIDIA
-
Daniel Rakos, RasterGrid
-
Aidan Fabius, Core Avionics & Industrial Inc.
-
Lynne Iribarren, Independent
-
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.
|
Note
This extension was promoted to |
New Structures
-
Extending VkVideoBeginCodingInfoKHR:
-
Extending VkVideoCapabilitiesKHR:
-
Extending VkVideoCodingControlInfoKHR, VkVideoBeginCodingInfoKHR:
-
Extending VkVideoEncodeInfoKHR:
-
Extending VkVideoEncodeQualityLevelPropertiesKHR:
-
Extending VkVideoEncodeRateControlLayerInfoKHR:
-
Extending VkVideoEncodeSessionParametersGetInfoKHR:
-
Extending VkVideoProfileInfoKHR, VkQueryPoolCreateInfo:
-
Extending VkVideoReferenceSlotInfoKHR:
-
Extending VkVideoSessionCreateInfoKHR:
-
Extending VkVideoSessionParametersCreateInfoKHR:
-
Extending VkVideoSessionParametersUpdateInfoKHR:
New Enum Constants
-
VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME -
VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION -
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR -
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR
-
-
Extending VkVideoCodecOperationFlagBitsKHR:
-
VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR
-
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
VkVideoEncodeH265RateControlStructureFlagBitsEXTbit enum withVkVideoEncodeH265RateControlStructureEXTenum -
Rename
VkVideoEncodeH265ProfileEXTtoVkVideoEncodeH265ProfileInfoEXT -
Rename
VkVideoEncodeH265ReferenceListsEXTtoVkVideoEncodeH265ReferenceListsInfoEXT -
Rename
VkVideoEncodeH265EmitPictureParametersEXTtoVkVideoEncodeH265EmitPictureParametersInfoEXT -
Rename
VkVideoEncodeH265NaluSliceSegmentEXTtoVkVideoEncodeH265NaluSliceSegmentInfoEXT
-
-
Revision 9, 2022-09-18 (Daniel Rakos)
-
Rename
vpsStdCount,pVpsStd,spsStdCount,pSpsStd,ppsStdCount, andpPpsStdtostdVPSCount,pStdVPSs,stdSPSCount,pStdSPSs,stdPPSCount, andpStdPPSs, respectively, inVkVideoEncodeH265SessionParametersAddInfoEXT -
Rename
maxVpsStdCount,maxSpsStdCount, andmaxPpsStdCounttomaxStdVPSCount,maxStdSPSCountandmaxStdPPSCount, respectively, inVkVideoEncodeH265SessionParametersCreateInfoEXT
-
-
Revision 10, 2023-03-06 (Daniel Rakos)
-
Removed
VkVideoEncodeH265EmitPictureParametersInfoEXT -
Changed member types in
VkVideoEncodeH265CapabilitiesEXTandVkVideoEncodeH265ReferenceListsInfoEXTfromuint8_ttouint32_t -
Changed the type of
VkVideoEncodeH265RateControlInfoEXT::subLayerCountandVkVideoEncodeH265RateControlLayerInfoEXT::temporalIdfromuint8_ttouint32_t -
Removed
VkVideoEncodeH265InputModeFlagsEXTandVkVideoEncodeH265OutputModeFlagsEXTas we only support frame-in-frame-out mode for now -
Rename
pCurrentPictureInfoinVkVideoEncodeH265VclFrameInfoEXTtopStdPictureInfo -
Rename
pSliceSegmentHeaderStdinVkVideoEncodeH265NaluSliceSegmentInfoEXTtopStdSliceSegmentHeader -
Rename
pReferenceFinalListsinVkVideoEncodeH265VclFrameInfoEXTandVkVideoEncodeH265NaluSliceSegmentInfoEXTtopStdReferenceFinalLists -
Removed the
slotIndexmember ofVkVideoEncodeH265DpbSlotInfoEXTand changed it to be chained toVkVideoReferenceSlotInfoKHR -
Replaced
VkVideoEncodeH265ReferenceListsInfoEXTwith the new Video Std header structureStdVideoEncodeH265ReferenceLists -
Added new capability flag
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT
-
-
Revision 11, 2023-05-26 (Daniel Rakos)
-
Renamed
VkVideoEncodeH265VclFrameInfoEXTtoVkVideoEncodeH265PictureInfoEXT -
Removed
VkVideoEncodeH265RateControlLayerInfoEXT::temporalId -
Added
expectDyadicTemporalSubLayerPatterncapability -
Added the
VkVideoEncodeH265SessionParametersGetInfoEXTstructure to identify the H.265 parameter sets to retrieve encoded parameter data for, and theVkVideoEncodeH265SessionParametersFeedbackInfoEXTstructure to retrieve H.265 parameter set override information when using the newvkGetEncodedVideoSessionParametersKHRcommand -
Added
VkVideoEncodeH265NaluSliceSegmentInfoEXT::constantQpto specify per-slice segment constant QP when rate control mode isVK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR -
Added
VkVideoEncodeH265QualityLevelPropertiesEXTfor retrieving H.265 specific quality level recommendations -
Replaced
VkVideoEncodeH265RateControlStructureEXTenum with the flags typeVkVideoEncodeH265RateControlFlagsEXTand bits defined inVkVideoEncodeH265RateControlFlagBitsEXTand added HRD compliance flag -
Removed
useInitialRcQpandinitialRcQpmembers ofVkVideoEncodeH265RateControlLayerInfoEXT -
Added
prefersGopRemainingFramesandrequiresGopRemainingFrames, and the newVkVideoEncodeH265GopRemainingFrameInfoEXTstructure to allow specifying remaining frames of each type in the rate control GOP -
Renamed
maxSubLayersCountcapability tomaxSubLayerCount -
Added
maxQp, andminQpcapabilities -
Added
maxLevelIdccapability and newVkVideoEncodeH265SessionCreateInfoEXTstructure to specify upper bounds on the H.265 level of the produced video bitstream -
Moved capability flags specific to codec syntax restrictions from
VkVideoEncodeH265CapabilityFlagsEXTto the newVkVideoEncodeH265StdFlagsEXTwhich is now included as a separatestdSyntaxFlagsmember inVkVideoEncodeH265CapabilitiesEXT -
Added
stdprefix to codec syntax capabilities inVkVideoEncodeH265CapabilitiesEXT -
Removed
VkVideoEncodeH265NaluSliceSegmentInfoEXT::ctbCountandVK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT -
Replaced
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_FRAME_BIT_EXTwith the newmaxSliceSegmentCountcapability -
Added
maxTilescapability -
Removed codec syntax min/max capabilities from
VkVideoEncodeH265CapabilitiesEXT -
Removed capability flag
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXTand removedpStdReferenceFinalListsmembers from theVkVideoEncodeH265PictureInfoEXTandVkVideoEncodeH265NaluSliceSegmentInfoEXTstructures as reference lists info is now included inpStdPictureInfo -
Added capability flag
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT
-
-
Revision 12, 2023-07-19 (Daniel Rakos)
-
Added video std capability flags
VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_EXTandVK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_EXT -
Fixed optionality of the array members of
VkVideoEncodeH265SessionParametersAddInfoEXT -
Fixed optionality of
VkVideoEncodeH265RateControlInfoEXT::flags
-
-
Revision 13, 2023-09-04 (Daniel Rakos)
-
Change extension from
EXTtoKHR -
Extension is no longer provisional
-
-
Revision 14, 2023-12-05 (Daniel Rakos)
-
Condition reference picture setup based on the value of
StdVideoEncodeH265PictureInfo::flags.is_reference
-
See Also
VkVideoEncodeH265CapabilitiesKHR, VkVideoEncodeH265CapabilityFlagBitsKHR, VkVideoEncodeH265CapabilityFlagsKHR, VkVideoEncodeH265CtbSizeFlagBitsKHR, VkVideoEncodeH265CtbSizeFlagsKHR, VkVideoEncodeH265DpbSlotInfoKHR, VkVideoEncodeH265FrameSizeKHR, VkVideoEncodeH265GopRemainingFrameInfoKHR, VkVideoEncodeH265NaluSliceSegmentInfoKHR, VkVideoEncodeH265PictureInfoKHR, VkVideoEncodeH265ProfileInfoKHR, VkVideoEncodeH265QpKHR, VkVideoEncodeH265QualityLevelPropertiesKHR, VkVideoEncodeH265RateControlFlagBitsKHR, VkVideoEncodeH265RateControlFlagsKHR, VkVideoEncodeH265RateControlInfoKHR, VkVideoEncodeH265RateControlLayerInfoKHR, VkVideoEncodeH265SessionCreateInfoKHR, VkVideoEncodeH265SessionParametersAddInfoKHR, VkVideoEncodeH265SessionParametersCreateInfoKHR, VkVideoEncodeH265SessionParametersFeedbackInfoKHR, VkVideoEncodeH265SessionParametersGetInfoKHR, VkVideoEncodeH265StdFlagBitsKHR, VkVideoEncodeH265StdFlagsKHR, VkVideoEncodeH265TransformBlockSizeFlagBitsKHR, VkVideoEncodeH265TransformBlockSizeFlagsKHR
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.