VkVideoEncodeH265PictureInfoKHR
The VkVideoEncodeH265PictureInfoKHR structure is defined as:
typedef struct VkVideoEncodeH265PictureInfoKHR {
VkStructureType sType;
const void* pNext;
uint32_t naluSliceSegmentEntryCount;
const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
} VkVideoEncodeH265PictureInfoKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.naluSliceSegmentEntryCountis the number of elements inpNaluSliceSegmentEntries.pNaluSliceSegmentEntriesis a pointer to an array ofnaluSliceSegmentEntryCount
VkVideoEncodeH265NaluSliceSegmentInfoKHR structures specifying the parameters of the individual H.265 slice segments to encode for the input picture.pStdPictureInfois a pointer to aStdVideoEncodeH265PictureInfostructure specifying H.265 picture information.
This structure is specified in the pNext chain of the
VkVideoEncodeInfoKHR structure passed to vkCmdEncodeVideoKHR to
specify the codec-specific picture information for an H.265
encode operation.
Encode Input Picture Information
When this structure is specified in the pNext chain of the
VkVideoEncodeInfoKHR structure passed to vkCmdEncodeVideoKHR,
the information related to the encode input
picture is defined as follows:
- The image subregion used is determined according to the H.265 Encode Picture Data Access section.
- The encode input picture is associated with the
H.265 picture information provided in
pStdPictureInfo.
Std Picture Information
The members of the StdVideoEncodeH265PictureInfo structure pointed to
by pStdPictureInfo are interpreted as follows:
flags.reservedandreserved1are used only for padding purposes and are otherwise ignored;flags.is_referenceas defined in section 3.132 of the ITU-T H.265 Specification;flags.IrapPicFlagas defined in section 3.73 of the ITU-T H.265 Specification;flags.used_for_long_term_referenceis used to indicate whether the picture is marked asused for long-term referenceas defined in section 8.3.2 of the ITU-T H.265 Specification;flags.discardable_flagandcross_layer_bla_flagas defined in section F.7.4.7.1 of the ITU-T H.265 Specification;pic_typeas defined in section 7.4.3.5 of the ITU-T H.265 Specification;sps_video_parameter_set_id,pps_seq_parameter_set_id, andpps_pic_parameter_set_idare used to identify the active parameter sets, as described below;PicOrderCntValas defined in section 8.3.1 of the ITU-T H.265 Specification;TemporalIdas defined in section 7.4.2.2 of the ITU-T H.265 Specification;- if
pRefListsis notNULL, then it is a pointer to aStdVideoEncodeH265ReferenceListsInfostructure that is interpreted as follows:flags.reservedis used only for padding purposes and is otherwise ignored;ref_pic_list_modification_flag_l0andref_pic_list_modification_flag_l1as defined in section 7.4.7.2 of the ITU-T H.265 Specification;num_ref_idx_l0_active_minus1andnum_ref_idx_l1_active_minus1as defined in section 7.4.7.1 of the ITU-T H.265 Specification;RefPicList0andRefPicList1as defined in section 8.3.4 of the ITU-T H.265 Specification where each element of these arrays either identifies an active reference picture using its DPB slot index or contains the valueSTD_VIDEO_H265_NO_REFERENCE_PICTUREto indicateno reference picture;list_entry_l0andlist_entry_l1as defined in section 7.4.7.2 of the ITU-T H.265 Specification;
- if
flags.short_term_ref_pic_set_sps_flagis set, then theStdVideoH265ShortTermRefPicSetstructure pointed to bypShortTermRefPicSetis interpreted as defined for the elements of thepShortTermRefPicSetarray specified in H.265 sequence parameter sets. - if
flags.long_term_ref_pics_present_flagis set in the active SPS, then theStdVideoEncodeH265LongTermRefPicsstructure pointed to bypLongTermRefPicsis interpreted as follows:used_by_curr_pic_lt_flagis a bitmask where bit index i corresponds toused_by_curr_pic_lt_flag[i]as defined in section 7.4.7.1 of the ITU-T H.265 Specification;- all other members of
StdVideoEncodeH265LongTermRefPicsare interpreted as defined in section 7.4.7.1 of the ITU-T H.265 Specification;
- all other members are interpreted as defined in section 7.4.7.1 of the ITU-T H.265 Specification.
Reference picture setup is controlled by the value of
StdVideoEncodeH265PictureInfo::flags.is_reference.
If it is set and a reconstructed
picture is specified, then the latter is used as the target of picture
reconstruction to activate the DPB slot
specified in pEncodeInfo→pSetupReferenceSlot→slotIndex.
If StdVideoEncodeH265PictureInfo::flags.is_reference is not set,
but a reconstructed picture is
specified, then the corresponding picture reference associated with the
DPB slot is invalidated, as described in the
DPB Slot States section.
Active Parameter Sets
The members of the StdVideoEncodeH265PictureInfo structure pointed to
by pStdPictureInfo are used to select the active parameter sets to use
from the bound video session parameters object, as follows:
- The active VPS is the
VPS identified by the key specified in
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id. - The active SPS is the
SPS identified by the key specified by the pair
constructed from
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_idandStdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id. - The active PPS is the
PPS identified by the key specified by the triplet
constructed from
StdVideoEncodeH265PictureInfo::sps_video_parameter_set_id,StdVideoEncodeH265PictureInfo::pps_seq_parameter_set_id, andStdVideoEncodeH265PictureInfo::pps_pic_parameter_set_id.
H.265 encoding uses explicit weighted sample prediction for a slice
segment, as defined in section 8.5.3.3.4 of the ITU-T H.265
Specification, if any of the following conditions are true for the active
PPS and the pStdSliceSegmentHeader member of the
corresponding element of pNaluSliceSegmentEntries:
pStdSliceSegmentHeader→slice_typeisSTD_VIDEO_H265_SLICE_TYPE_Pandweighted_pred_flagis enabled in the active PPS.pStdSliceSegmentHeader→slice_typeisSTD_VIDEO_H265_SLICE_TYPE_Bandweighted_bipred_flagis enabled in the active PPS.
The number of H.265 tiles, as defined in section 3.174 of the ITU-T H.265 Specification, is derived from the
num_tile_columns_minus1 and num_tile_rows_minus1 members of the
active PPS as follows:
- (
num_tile_columns_minus1+ 1) × (num_tile_rows_minus1+ 1)
Valid Usage
VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-08306
naluSliceSegmentEntryCount must be between 1 and
VkVideoEncodeH265CapabilitiesKHR::maxSliceSegmentCount,
inclusive, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR
for the used video profile
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08323
If VkVideoEncodeH265CapabilitiesKHR::flags, as returned by
vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video
profile, does not include
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR,
then naluSliceSegmentEntryCount must be greater than or equal to
the number of H.265 tiles in the picture
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08324
If VkVideoEncodeH265CapabilitiesKHR::flags, as returned by
vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video
profile, does not include
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR,
then naluSliceSegmentEntryCount must be less than or equal to the
number of H.265 tiles in the picture
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08316
If VkVideoEncodeH265CapabilitiesKHR::flags, as returned by
vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video
profile, does not include
VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR
and the slice segment corresponding to any element of
pNaluSliceSegmentEntries uses explicit
weighted sample prediction, then
VkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader→pWeightTablemust not be NULL for that element of pNaluSliceSegmentEntries
VUID-VkVideoEncodeH265PictureInfoKHR-flags-08317
If VkVideoEncodeH265CapabilitiesKHR::flags, as returned by
vkGetPhysicalDeviceVideoCapabilitiesKHR for the used video
profile, does not include
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR,
then
VkVideoEncodeH265NaluSliceSegmentInfoKHR::pStdSliceSegmentHeader→slice_typemust be identical for all elements of pNaluSliceSegmentEntries
Valid Usage (Implicit)
VUID-VkVideoEncodeH265PictureInfoKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR
VUID-VkVideoEncodeH265PictureInfoKHR-pNaluSliceSegmentEntries-parameter
pNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoKHR structures
VUID-VkVideoEncodeH265PictureInfoKHR-pStdPictureInfo-parameter
pStdPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value
VUID-VkVideoEncodeH265PictureInfoKHR-naluSliceSegmentEntryCount-arraylength
naluSliceSegmentEntryCount must be greater than 0