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