1// Copyright 2018-2024 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5[[decode-h265]] 6== H.265 Decode Operations 7 8Video decode operations using an <<decode-h265-profile,H.265 decode 9profile>> can: be used to decode elementary video stream sequences compliant 10to the <<itu-t-h265,ITU-T H.265 Specification>>. 11 12[NOTE] 13.Note 14==== 15Refer to the <<preamble,Preamble>> for information on how the Khronos 16Intellectual Property Rights Policy relates to normative references to 17external materials not created by Khronos. 18==== 19 20This process is performed according to the <<decode-operation-steps,video 21decode operation steps>> with the codec-specific semantics defined in 22section 8 of <<itu-t-h265,ITU-T H.265 Specification>>: 23 24 * Syntax elements, derived values, and other parameters are applied from 25 the following structures: 26 ** The code:StdVideoH265VideoParameterSet structure corresponding to the 27 <<decode-h265-active-vps,active VPS>> specifying the <<decode-h265-vps, 28 H.265 video parameter set>>. 29 ** The code:StdVideoH265SequenceParameterSet structure corresponding to 30 the <<decode-h265-active-sps,active SPS>> specifying the 31 <<decode-h265-sps, H.265 sequence parameter set>>. 32 ** The code:StdVideoH265PictureParameterSet structure corresponding to the 33 <<decode-h265-active-pps,active PPS>> specifying the <<decode-h265-pps, 34 H.265 picture parameter set>>. 35 ** The code:StdVideoDecodeH265PictureInfo structure specifying the 36 <<decode-h265-picture-info,H.265 picture information>>. 37 ** The code:StdVideoDecodeH265ReferenceInfo structures specifying the 38 <<decode-h265-reference-info,H.265 reference information>> 39 corresponding to the optional <<reconstructed-picture,reconstructed 40 picture>> and any <<active-reference-pictures,active reference 41 pictures>>. 42 * The contents of the provided video bitstream buffer range are 43 interpreted as defined in the <<decode-h265-bitstream-data-access,H.265 44 Decode Bitstream Data Access>> section. 45 * Picture data in the <<video-picture-resources,video picture resources>> 46 corresponding to the used <<decode-h265-active-reference-picture-info, 47 active reference pictures>>, <<decode-h265-output-picture-info,decode 48 output picture>>, and optional <<decode-h265-reconstructed-picture-info, 49 reconstructed picture>> is accessed as defined in the 50 <<decode-h265-picture-data-access,H.265 Decode Picture Data Access>> 51 section. 52 * The decision on <<decode-ref-pic-setup,reference picture setup>> is made 53 according to the parameters specified in the 54 <<decode-h265-ref-pic-setup,H.265 picture information>>. 55 56If the parameters and the bitstream adhere to the syntactic and semantic 57requirements defined in the corresponding sections of the <<itu-t-h265,ITU-T 58H.265 Specification>>, as described above, and the <<dpb-slot,DPB slots>> 59associated with the <<active-reference-pictures,active reference pictures>> 60all refer to <<dpb-slot-states,valid picture references>>, then the video 61decode operation will complete successfully. 62Otherwise, the video decode operation may: complete 63<<decode-unsuccessful,unsuccessfully>>. 64 65 66[[decode-h265-bitstream-data-access]] 67=== H.265 Decode Bitstream Data Access 68 69The video bitstream buffer range should: contain a VCL NAL unit comprised of 70the slice segment headers and data of a picture representing a frame, as 71defined in sections 7.3.6 and 7.3.8, and this data is interpreted as defined 72in sections 7.4.7 and 7.4.9 of the <<itu-t-h265, ITU-T H.265 73Specification>>, respectively. 74 75The offsets provided in 76slink:VkVideoDecodeH265PictureInfoKHR::pname:pSliceSegmentOffsets should: 77specify the starting offsets corresponding to each slice segment header 78within the video bitstream buffer range. 79 80 81[[decode-h265-picture-data-access]] 82=== H.265 Decode Picture Data Access 83 84Accesses to image data within a video picture resource happen at the 85granularity indicated by 86slink:VkVideoCapabilitiesKHR::pname:pictureAccessGranularity, as returned by 87flink:vkGetPhysicalDeviceVideoCapabilitiesKHR for the used <<video-profiles, 88video profile>>. 89Accordingly, the complete image subregion of a 90<<decode-output-picture,decode output picture>>, 91<<reference-picture,reference picture>>, or 92<<reconstructed-picture,reconstructed picture>> accessed by video coding 93operations using an <<decode-h265-profile,H.265 decode profile>> is defined 94as the set of texels within the coordinate range: 95 96 {empty}:: [eq]#([0,pname:endX),[0,pname:endY))# 97 98Where: 99 100 * [eq]#pname:endX# equals [eq]#pname:codedExtent.width# rounded up to the 101 nearest integer multiple of pname:pictureAccessGranularity.width and 102 clamped to the width of the image subresource 103 <<video-image-subresource-reference,referred>> to by the corresponding 104 slink:VkVideoPictureResourceInfoKHR structure; 105 * [eq]#endY# equals [eq]#pname:codedExtent.height# rounded up to the 106 nearest integer multiple of pname:pictureAccessGranularity.height and 107 clamped to the height of the image subresource 108 <<video-image-subresource-reference, referred>> to by the corresponding 109 slink:VkVideoPictureResourceInfoKHR structure; 110 111Where pname:codedExtent is the member of the 112slink:VkVideoPictureResourceInfoKHR structure corresponding to the picture. 113 114In case of video decode operations using an <<decode-h265-profile,H.265 115decode profile>>, any access to a picture at the coordinates 116[eq]#(pname:x,pname:y)#, as defined by the <<itu-t-h265,ITU-T H.265 117Specification>>, is an access to the image subresource 118<<video-image-subresource-reference,referred>> to by the corresponding 119slink:VkVideoPictureResourceInfoKHR structure at the texel coordinates 120[eq]#(pname:x,pname:y)#. 121 122 123[[decode-h265-profile]] 124=== H.265 Decode Profile 125 126[open,refpage='VkVideoDecodeH265ProfileInfoKHR',desc='Structure specifying H.265 decode profile',type='structs'] 127-- 128A video profile supporting H.265 video decode operations is specified by 129setting slink:VkVideoProfileInfoKHR::pname:videoCodecOperation to 130ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR and adding a 131sname:VkVideoDecodeH265ProfileInfoKHR structure to the 132slink:VkVideoProfileInfoKHR::pname:pNext chain. 133 134The sname:VkVideoDecodeH265ProfileInfoKHR structure is defined as: 135 136include::{generated}/api/structs/VkVideoDecodeH265ProfileInfoKHR.adoc[] 137 138 * pname:sType is a elink:VkStructureType value identifying this structure. 139 * pname:pNext is `NULL` or a pointer to a structure extending this 140 structure. 141 * pname:stdProfileIdc is a code:StdVideoH265ProfileIdc value specifying 142 the H.265 codec profile IDC, as defined in section A.3 of the 143 <<itu-t-h265,ITU-T H.265 Specification>>. 144 145include::{generated}/validity/structs/VkVideoDecodeH265ProfileInfoKHR.adoc[] 146-- 147 148 149=== H.265 Decode Capabilities 150 151[open,refpage='VkVideoDecodeH265CapabilitiesKHR',desc='Structure describing H.265 decode capabilities',type='structs'] 152-- 153When calling flink:vkGetPhysicalDeviceVideoCapabilitiesKHR to query the 154capabilities for an <<decode-h265-profile,H.265 decode profile>>, the 155slink:VkVideoCapabilitiesKHR::pname:pNext chain must: include a 156sname:VkVideoDecodeH265CapabilitiesKHR structure that will be filled with 157the profile-specific capabilities. 158 159The sname:VkVideoDecodeH265CapabilitiesKHR structure is defined as: 160 161include::{generated}/api/structs/VkVideoDecodeH265CapabilitiesKHR.adoc[] 162 163 * pname:sType is a elink:VkStructureType value identifying this structure. 164 * pname:pNext is `NULL` or a pointer to a structure extending this 165 structure. 166 * pname:maxLevelIdc is a code:StdVideoH265LevelIdc value indicating the 167 maximum H.265 level supported by the profile, where enum constant 168 `STD_VIDEO_H265_LEVEL_IDC_<major>_<minor>` identifies H.265 level 169 `<major>.<minor>` as defined in section A.4 of the <<itu-t-h265,ITU-T 170 H.265 Specification>>. 171 172include::{generated}/validity/structs/VkVideoDecodeH265CapabilitiesKHR.adoc[] 173-- 174 175 176[[decode-h265-parameter-sets]] 177=== H.265 Decode Parameter Sets 178 179<<video-session-parameters,Video session parameters>> objects created with 180the video codec operation ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR 181can: contain the following types of parameters: 182 183:operationType: decode 184include::{chapters}/video/h265_parameter_sets.adoc[] 185 186[open,refpage='VkVideoDecodeH265SessionParametersCreateInfoKHR',desc='Structure specifies H.265 decoder parameter set information',type='structs'] 187-- 188When a <<video-session-parameters,video session parameters>> object is 189created with the codec operation 190ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, the 191slink:VkVideoSessionParametersCreateInfoKHR::pname:pNext chain must: include 192a sname:VkVideoDecodeH265SessionParametersCreateInfoKHR structure specifying 193the capacity and initial contents of the object. 194 195The sname:VkVideoDecodeH265SessionParametersCreateInfoKHR structure is 196defined as: 197 198include::{generated}/api/structs/VkVideoDecodeH265SessionParametersCreateInfoKHR.adoc[] 199 200 * pname:sType is a elink:VkStructureType value identifying this structure. 201 * pname:pNext is `NULL` or a pointer to a structure extending this 202 structure. 203 * pname:maxStdVPSCount is the maximum number of <<decode-h265-vps,H.265 204 VPS>> entries the created sname:VkVideoSessionParametersKHR can: 205 contain. 206 * pname:maxStdSPSCount is the maximum number of <<decode-h265-sps,H.265 207 SPS>> entries the created sname:VkVideoSessionParametersKHR can: 208 contain. 209 * pname:maxStdPPSCount is the maximum number of <<decode-h265-pps,H.265 210 PPS>> entries the created sname:VkVideoSessionParametersKHR can: 211 contain. 212 * pname:pParametersAddInfo is `NULL` or a pointer to a 213 slink:VkVideoDecodeH265SessionParametersAddInfoKHR structure specifying 214 H.265 parameters to add upon object creation. 215 216include::{generated}/validity/structs/VkVideoDecodeH265SessionParametersCreateInfoKHR.adoc[] 217-- 218 219[open,refpage='VkVideoDecodeH265SessionParametersAddInfoKHR',desc='Structure specifies H.265 decoder parameter set information',type='structs'] 220-- 221The sname:VkVideoDecodeH265SessionParametersAddInfoKHR structure is defined 222as: 223 224include::{generated}/api/structs/VkVideoDecodeH265SessionParametersAddInfoKHR.adoc[] 225 226 * pname:sType is a elink:VkStructureType value identifying this structure. 227 * pname:pNext is `NULL` or a pointer to a structure extending this 228 structure. 229 * pname:stdVPSCount is the number of elements in the pname:pStdVPSs array. 230 * pname:pStdVPSs is a pointer to an array of 231 code:StdVideoH265VideoParameterSet structures describing the 232 <<decode-h265-vps,H.265 VPS>> entries to add. 233 * pname:stdSPSCount is the number of elements in the pname:pStdSPSs array. 234 * pname:pStdSPSs is a pointer to an array of 235 code:StdVideoH265SequenceParameterSet structures describing the 236 <<decode-h265-sps,H.265 SPS>> entries to add. 237 * pname:stdPPSCount is the number of elements in the pname:pStdPPSs array. 238 * pname:pStdPPSs is a pointer to an array of 239 code:StdVideoH265PictureParameterSet structures describing the 240 <<decode-h265-pps,H.265 PPS>> entries to add. 241 242This structure can: be specified in the following places: 243 244 * In the pname:pParametersAddInfo member of the 245 slink:VkVideoDecodeH265SessionParametersCreateInfoKHR structure 246 specified in the pname:pNext chain of 247 slink:VkVideoSessionParametersCreateInfoKHR used to create a 248 <<video-session-parameters,video session parameters>> object. 249 In this case, if the video codec operation the video session parameters 250 object is created with is 251 ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then it defines the 252 set of initial parameters to add to the created object (see 253 <<creating-video-session-parameters,Creating Video Session 254 Parameters>>). 255 * In the pname:pNext chain of slink:VkVideoSessionParametersUpdateInfoKHR. 256 In this case, if the video codec operation the 257 <<video-session-parameters,video session parameters>> object to be 258 updated was created with is 259 ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then it defines the 260 set of parameters to add to it (see 261 <<video-session-parameters-update,Updating Video Session Parameters>>). 262 263.Valid Usage 264**** 265 * [[VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04833]] 266 The pname:vps_video_parameter_set_id member of each 267 code:StdVideoH265VideoParameterSet structure specified in the elements 268 of pname:pStdVPSs must: be unique within pname:pStdVPSs 269 * [[VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04834]] 270 The pair constructed from the pname:sps_video_parameter_set_id and 271 pname:sps_seq_parameter_set_id members of each 272 code:StdVideoH265SequenceParameterSet structure specified in the 273 elements of pname:pStdSPSs must: be unique within pname:pStdSPSs 274 * [[VUID-VkVideoDecodeH265SessionParametersAddInfoKHR-None-04835]] 275 The triplet constructed from the pname:sps_video_parameter_set_id, 276 pname:pps_seq_parameter_set_id, and pname:pps_pic_parameter_set_id 277 members of each code:StdVideoH265PictureParameterSet structure specified 278 in the elements of pname:pStdPPSs must: be unique within pname:pStdPPSs 279**** 280 281include::{generated}/validity/structs/VkVideoDecodeH265SessionParametersAddInfoKHR.adoc[] 282-- 283 284 285=== H.265 Decoding Parameters 286 287[open,refpage='VkVideoDecodeH265PictureInfoKHR',desc='Structure specifies H.265 picture information when decoding a frame',type='structs'] 288-- 289The sname:VkVideoDecodeH265PictureInfoKHR structure is defined as: 290 291include::{generated}/api/structs/VkVideoDecodeH265PictureInfoKHR.adoc[] 292 293 * pname:sType is a elink:VkStructureType value identifying this structure. 294 * pname:pNext is `NULL` or a pointer to a structure extending this 295 structure. 296 * pname:pStdPictureInfo is a pointer to a 297 code:StdVideoDecodeH265PictureInfo structure specifying 298 <<decode-h265-picture-info,H.265 picture information>>. 299 * pname:sliceSegmentCount is the number of elements in 300 pname:pSliceSegmentOffsets. 301 * pname:pSliceSegmentOffsets is a pointer to an array of 302 pname:sliceSegmentCount offsets specifying the start offset of the slice 303 segments of the picture within the video bitstream buffer range 304 specified in slink:VkVideoDecodeInfoKHR. 305 306This structure is specified in the pname:pNext chain of the 307slink:VkVideoDecodeInfoKHR structure passed to flink:vkCmdDecodeVideoKHR to 308specify the codec-specific picture information for an <<decode-h265,H.265 309decode operation>>. 310 311[[decode-h265-output-picture-info]] 312Decode Output Picture Information:: 313 314When this structure is specified in the pname:pNext chain of the 315slink:VkVideoDecodeInfoKHR structure passed to flink:vkCmdDecodeVideoKHR, 316the information related to the <<decode-output-picture-info,decode output 317picture>> is defined as follows: 318 319 * The image subregion used is determined according to the 320 <<decode-h265-picture-data-access,H.265 Decode Picture Data Access>> 321 section. 322 * The decode output picture is associated with the 323 <<decode-h265-picture-info,H.265 picture information>> provided in 324 pname:pStdPictureInfo. 325 326[[decode-h265-picture-info]] 327Std Picture Information:: 328 329The members of the code:StdVideoDecodeH265PictureInfo structure pointed to 330by pname:pStdPictureInfo are interpreted as follows: 331 332 * code:reserved is used only for padding purposes and is otherwise 333 ignored; 334 * code:flags.IrapPicFlag as defined in section 3.73 of the <<itu-t-h265, 335 ITU-T H.265 Specification>>; 336 * code:flags.IdrPicFlag as defined in section 3.67 of the 337 <<itu-t-h265,ITU-T H.265 Specification>>; 338 * code:flags.IsReference as defined in section 3.132 of the <<itu-t-h265, 339 ITU-T H.265 Specification>>; 340 * code:sps_video_parameter_set_id, code:pps_seq_parameter_set_id, and 341 code:pps_pic_parameter_set_id are used to identify the active parameter 342 sets, as described below; 343 * code:PicOrderCntVal as defined in section 8.3.1 of the 344 <<itu-t-h265,ITU-T H.265 Specification>>; 345 * code:NumBitsForSTRefPicSetInSlice is the number of bits used in 346 `st_ref_pic_set` when `short_term_ref_pic_set_sps_flag` is `0`, or `0` 347 otherwise, as defined in sections 7.4.7 and 7.4.8 of the <<itu-t-h265, 348 ITU-T H.265 Specification>>; 349 * code:NumDeltaPocsOfRefRpsIdx is the value of `NumDeltaPocs[RefRpsIdx]` 350 when `short_term_ref_pic_set_sps_flag` is `1`, or `0` otherwise, as 351 defined in sections 7.4.7 and 7.4.8 of the <<itu-t-h265,ITU-T H.265 352 Specification>>; 353 * code:RefPicSetStCurrBefore, code:RefPicSetStCurrAfter, and 354 code:RefPicSetLtCurr are interpreted as defined in section 8.3.2 of the 355 <<itu-t-h265,ITU-T H.265 Specification>> where each element of these 356 arrays either identifies an 357 <<decode-active-reference-picture-info,active reference picture>> using 358 its <<dpb-slot,DPB slot>> index or contains the value 359 code:STD_VIDEO_H265_NO_REFERENCE_PICTURE to indicate "`no reference 360 picture`"; 361 * all other members are interpreted as defined in section 8.3.2 of the 362 <<itu-t-h265,ITU-T H.265 Specification>>. 363 364[[decode-h265-ref-pic-setup]] 365Reference picture setup is controlled by the value of 366code:StdVideoDecodeH265PictureInfo::pname:flags.IsReference. 367If it is set and a <<decode-reconstructed-picture-info,reconstructed 368picture>> is specified, then the latter is used as the target of picture 369reconstruction to <<dpb-slot-states,activate>> the corresponding 370<<dpb-slot,DPB slot>>. 371If code:StdVideoDecodeH265PictureInfo::pname:flags.IsReference is not set, 372but a <<decode-reconstructed-picture-info,reconstructed picture>> is 373specified, then the corresponding picture reference associated with the 374<<dpb-slot,DPB slot>> is invalidated, as described in the 375<<dpb-slot-states,DPB Slot States>> section. 376 377Active Parameter Sets:: 378 379The members of the code:StdVideoDecodeH265PictureInfo structure pointed to 380by pname:pStdPictureInfo are used to select the active parameter sets to use 381from the bound video session parameters object, as follows: 382 383 * [[decode-h265-active-vps]] The _active VPS_ is the 384 <<decode-h265-vps,VPS>> identified by the key specified in 385 code:StdVideoDecodeH265PictureInfo::code:sps_video_parameter_set_id. 386 * [[decode-h265-active-sps]] The _active SPS_ is the 387 <<decode-h265-sps,SPS>> identified by the key specified by the pair 388 constructed from 389 code:StdVideoDecodeH265PictureInfo::code:sps_video_parameter_set_id and 390 code:StdVideoDecodeH265PictureInfo::code:pps_seq_parameter_set_id. 391 * [[decode-h265-active-pps]] The _active PPS_ is the 392 <<decode-h265-pps,PPS>> identified by the key specified by the triplet 393 constructed from 394 code:StdVideoDecodeH265PictureInfo::code:sps_video_parameter_set_id, 395 code:StdVideoDecodeH265PictureInfo::code:pps_seq_parameter_set_id, and 396 code:StdVideoDecodeH265PictureInfo::code:pps_pic_parameter_set_id. 397 398include::{generated}/validity/structs/VkVideoDecodeH265PictureInfoKHR.adoc[] 399-- 400 401[open,refpage='VkVideoDecodeH265DpbSlotInfoKHR',desc='Structure specifies H.265 DPB information when decoding a frame',type='structs'] 402-- 403The sname:VkVideoDecodeH265DpbSlotInfoKHR structure is defined as: 404 405include::{generated}/api/structs/VkVideoDecodeH265DpbSlotInfoKHR.adoc[] 406 407 * pname:sType is a elink:VkStructureType value identifying this structure. 408 * pname:pNext is `NULL` or a pointer to a structure extending this 409 structure. 410 * pname:pStdReferenceInfo is a pointer to a 411 code:StdVideoDecodeH265ReferenceInfo structure specifying reference 412 picture information described in section 8.3 of the <<itu-t-h265,ITU-T 413 H.265 Specification>>. 414 415This structure is specified in the pname:pNext chain of 416slink:VkVideoDecodeInfoKHR::pname:pSetupReferenceSlot, if not `NULL`, and 417the pname:pNext chain of the elements of 418slink:VkVideoDecodeInfoKHR::pname:pReferenceSlots to specify the 419codec-specific reference picture information for an <<decode-h265,H.265 420decode operation>>. 421 422[[decode-h265-active-reference-picture-info]] 423Active Reference Picture Information:: 424 425When this structure is specified in the pname:pNext chain of the elements of 426slink:VkVideoDecodeInfoKHR::pname:pReferenceSlots, one element is added to 427the list of <<decode-active-reference-picture-info,active reference 428pictures>> used by the video decode operation for each element of 429slink:VkVideoDecodeInfoKHR::pname:pReferenceSlots as follows: 430 431 * The image subregion used is determined according to the 432 <<decode-h265-picture-data-access,H.265 Decode Picture Data Access>> 433 section. 434 * The reference picture is associated with the <<dpb-slot,DPB slot>> index 435 specified in the pname:slotIndex member of the corresponding element of 436 slink:VkVideoDecodeInfoKHR::pname:pReferenceSlots. 437 * The reference picture is associated with the 438 <<decode-h265-reference-info,H.265 reference information>> provided in 439 pname:pStdReferenceInfo. 440 441[[decode-h265-reconstructed-picture-info]] 442Reconstructed Picture Information:: 443 444When this structure is specified in the pname:pNext chain of 445slink:VkVideoDecodeInfoKHR::pname:pSetupReferenceSlot, the information 446related to the <<decode-reconstructed-picture-info,reconstructed picture>> 447is defined as follows: 448 449 * The image subregion used is determined according to the 450 <<decode-h265-picture-data-access,H.265 Decode Picture Data Access>> 451 section. 452 * If <<decode-h265-ref-pic-setup,reference picture setup>> is requested, 453 then the reconstructed picture is used to <<dpb-slot-states,activate>> 454 the <<dpb-slot,DPB slot>> with the index specified in 455 slink:VkVideoDecodeInfoKHR::pname:pSetupReferenceSlot->slotIndex. 456 * The reconstructed picture is associated with the 457 <<decode-h265-reference-info,H.265 reference information>> provided in 458 pname:pStdReferenceInfo. 459 460[[decode-h265-reference-info]] 461Std Reference Information:: 462 463The members of the code:StdVideoDecodeH265ReferenceInfo structure pointed to 464by pname:pStdReferenceInfo are interpreted as follows: 465 466 * code:flags.used_for_long_term_reference is used to indicate whether the 467 picture is marked as "`used for long-term reference`" as defined in 468 section 8.3.2 of the <<itu-t-h265,ITU-T H.265 Specification>>; 469 * code:flags.unused_for_reference is used to indicate whether the picture 470 is marked as "`unused for reference`" as defined in section 8.3.2 of the 471 <<itu-t-h265,ITU-T H.265 Specification>>; 472 * all other members are interpreted as defined in section 8.3 of the 473 <<itu-t-h265,ITU-T H.265 Specification>>. 474 475include::{generated}/validity/structs/VkVideoDecodeH265DpbSlotInfoKHR.adoc[] 476-- 477 478 479[[decode-h265-requirements]] 480=== H.265 Decode Requirements 481 482This section describes the required: H.265 decoding capabilities for 483physical devices that have at least one queue family that supports the video 484codec operation ename:VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, as 485returned by flink:vkGetPhysicalDeviceQueueFamilyProperties2 in 486slink:VkQueueFamilyVideoPropertiesKHR::pname:videoCodecOperations. 487 488.Required <<video-std-header-version,Video Std Header Versions>> 489[options="header"] 490|==== 491| Video Std Header Name | Version 492| `vulkan_video_codec_h265std_decode` | 1.0.0 493|==== 494 495ifdef::VK_KHR_video_maintenance1[] 496.Required Video Capabilities 497[width="100%",cols="<35,<14,<11",options="header"] 498|==== 499| Video Capability | Requirement | Requirement Type^1^ 500| **slink:VkVideoCapabilitiesKHR** | | 501| pname:flags | - | min 502| pname:minBitstreamBufferOffsetAlignment | 4096 | max 503| pname:minBitstreamBufferSizeAlignment | 4096 | max 504| pname:pictureAccessGranularity | (64,64) | max 505| pname:minCodedExtent | - | max 506| pname:maxCodedExtent | - | min 507| pname:maxDpbSlots | 0 | min 508| pname:maxActiveReferencePictures | 0 | min 509| **slink:VkVideoDecodeCapabilitiesKHR** | | 510| pname:flags | ename:VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR or 511 ename:VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR | min 512| **slink:VkVideoDecodeH265CapabilitiesKHR** | | 513| pname:maxLevelIdc | code:STD_VIDEO_H265_LEVEL_IDC_1_0 | min 514|==== 515 5161:: 517 The *Requirement Type* column specifies the requirement is either the 518 minimum value all implementations must: support, the maximum value all 519 implementations must: support, or the exact value all implementations 520 must: support. 521 For bitmasks a minimum value is the least bits all implementations must: 522 set, but they may: have additional bits set beyond this minimum. 523endif::VK_KHR_video_maintenance1[] 524