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;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.naluSliceSegmentEntryCount
is the number of elements inpNaluSliceSegmentEntries
.pNaluSliceSegmentEntries
is a pointer to an array ofnaluSliceSegmentEntryCount
VkVideoEncodeH265NaluSliceSegmentInfoKHR structures specifying the parameters of the individual H.265 slice segments to encode for the input picture.pStdPictureInfo
is a pointer to aStdVideoEncodeH265PictureInfo
structure 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.reserved
andreserved1
are used only for padding purposes and are otherwise ignored;flags.is_reference
as defined in section 3.132 of the ITU-T H.265 Specification;flags.IrapPicFlag
as defined in section 3.73 of the ITU-T H.265 Specification;flags.used_for_long_term_reference
is used to indicate whether the picture is marked asused for long-term reference
as defined in section 8.3.2 of the ITU-T H.265 Specification;flags.discardable_flag
andcross_layer_bla_flag
as defined in section F.7.4.7.1 of the ITU-T H.265 Specification;pic_type
as 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_id
are used to identify the active parameter sets, as described below;PicOrderCntVal
as defined in section 8.3.1 of the ITU-T H.265 Specification;TemporalId
as defined in section 7.4.2.2 of the ITU-T H.265 Specification;- if
pRefLists
is notNULL
, then it is a pointer to aStdVideoEncodeH265ReferenceListsInfo
structure that is interpreted as follows:flags.reserved
is used only for padding purposes and is otherwise ignored;ref_pic_list_modification_flag_l0
andref_pic_list_modification_flag_l1
as defined in section 7.4.7.2 of the ITU-T H.265 Specification;num_ref_idx_l0_active_minus1
andnum_ref_idx_l1_active_minus1
as defined in section 7.4.7.1 of the ITU-T H.265 Specification;RefPicList0
andRefPicList1
as 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_PICTURE
to indicateno reference picture
;list_entry_l0
andlist_entry_l1
as defined in section 7.4.7.2 of the ITU-T H.265 Specification;
- if
flags.short_term_ref_pic_set_sps_flag
is set, then theStdVideoH265ShortTermRefPicSet
structure pointed to bypShortTermRefPicSet
is interpreted as defined for the elements of thepShortTermRefPicSet
array specified in H.265 sequence parameter sets. - if
flags.long_term_ref_pics_present_flag
is set in the active SPS, then theStdVideoEncodeH265LongTermRefPics
structure pointed to bypLongTermRefPics
is interpreted as follows:used_by_curr_pic_lt_flag
is 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
StdVideoEncodeH265LongTermRefPics
are 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_id
andStdVideoEncodeH265PictureInfo
::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_type
isSTD_VIDEO_H265_SLICE_TYPE_P
andweighted_pred_flag
is enabled in the active PPS.pStdSliceSegmentHeader→slice_type
isSTD_VIDEO_H265_SLICE_TYPE_B
andweighted_bipred_flag
is 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→pWeightTable
must 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_type
must 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