Contact
-
Ahmed Abdelkhalek [GitHub]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
-
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.