C Specification
The VkVideoEncodeAV1PictureInfoKHR structure is defined as:
// Provided by VK_KHR_video_encode_av1
typedef struct VkVideoEncodeAV1PictureInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoEncodeAV1PredictionModeKHR predictionMode;
VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
uint32_t constantQIndex;
const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
VkBool32 primaryReferenceCdfOnly;
VkBool32 generateObuExtensionHeader;
} VkVideoEncodeAV1PictureInfoKHR;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
predictionModespecifies the AV1 prediction mode to use for the encoded frame. -
rateControlGroupspecifies the AV1 rate control group to use for the encoded frame when the current rate control mode is notVK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR. Otherwise it is ignored. -
constantQIndexis the quantizer index to use for the encoded frame if the current rate control mode configured for the video session isVK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR. -
pStdPictureInfois a pointer to aStdVideoEncodeAV1PictureInfostructure specifying AV1 picture information. -
referenceNameSlotIndicesis an array of seven (VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR, which is equal to the Video Std definitionSTD_VIDEO_AV1_REFS_PER_FRAME) signed integer values specifying the index of the DPB slot or a negative integer value for each AV1 reference name used for inter coding. In particular, the DPB slot index for the AV1 reference nameframeis specified inreferenceNameSlotIndices[frame-STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME]. -
primaryReferenceCdfOnlycontrols whether the primary reference frame indicated by the value ofpStdPictureInfo->primary_ref_frameis used only for CDF data reference, as defined in sections 6.8.2 of the AV1 Specification. If set toVK_TRUE, then the primary reference frame’s picture data will not be used for sample prediction. -
generateObuExtensionHeadercontrols whether OBU extension headers are generated into the target bitstream, as defined in sections 5.3.1, 5.3.2, and 5.3.3 of the AV1 Specification.
Description
This structure is specified in the pNext chain of the
VkVideoEncodeInfoKHR structure passed to vkCmdEncodeVideoKHR to
specify the codec-specific picture information for an AV1
encode operation.
- Encode Input Picture Information
-
When this structure is specified in the
pNextchain 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 AV1 Encode Picture Data Access section.
-
The encode input picture is associated with the AV1 picture information provided in
pStdPictureInfo.
-
- Std Picture Information
-
The members of the
StdVideoEncodeAV1PictureInfostructure pointed to bypStdPictureInfoare interpreted as follows:-
flags.reservedandreserved1are used only for padding purposes and are otherwise ignored; -
pSegmentationmust beNULLNoteAV1 segmentation is currently not supported in video encode operations. Accordingly, the application needs to set
flags.segmentation_enabledto0andpSegmentationtoNULL. -
pTileInfoisNULLor a pointer to aStdVideoAV1TileInfostructure specifying AV1 tile parameters; -
the
StdVideoAV1Quantizationstructure pointed to bypQuantizationis interpreted as follows:-
flags.reservedis used only for padding purposes and is otherwise ignored; -
all other members of
StdVideoAV1Quantizationare interpreted as defined in section 6.8.11 of the AV1 Specification;
-
-
the
StdVideoAV1LoopFilterstructure pointed to bypLoopFilteris interpreted as follows:-
flags.reservedis used only for padding purposes and is otherwise ignored; -
update_ref_deltais a bitmask where bit index i is interpreted as the value ofupdate_ref_deltacorresponding to element i ofloop_filter_ref_deltasas defined in section 6.8.10 of the AV1 Specification; -
update_mode_deltais a bitmask where bit index i is interpreted as the value ofupdate_mode_deltacorresponding to element i ofloop_filter_mode_deltasas defined in section 6.8.10 of the AV1 Specification; -
all other members of
StdVideoAV1LoopFilterare interpreted as defined in section 6.8.10 of the AV1 Specification;
-
-
if
flags.enable_cdefis set in the active sequence header, then the members of theStdVideoAV1CDEFstructure pointed to bypCDEFare interpreted as follows:-
cdef_y_sec_strengthandcdef_uv_sec_strengthare the bitstream values of the corresponding syntax elements defined in section 5.9.19 of the AV1 Specification; -
all other members of
StdVideoAV1CDEFare interpreted as defined in section 6.10.14 of the AV1 Specification;
-
-
if
flags.UsesLris set in the active sequence header, then theStdVideoAV1LoopRestorationstructure pointed to bypLoopRestorationis interpreted as follows:-
LoopRestorationSize[plane] is interpreted as log2(size) - 5, wheresizeis the value ofLoopRestorationSize[plane] as defined in section 6.10.15 of the AV1 Specification; -
all other members of
StdVideoAV1LoopRestorationare defined as in section 6.10.15 of the AV1 Specification;
-
-
the members of the
StdVideoAV1GlobalMotionstructure provided inglobal_motionare interpreted as defined in section 7.10 of the AV1 Specification; -
pExtensionHeaderisNULLor a pointer to aStdVideoEncodeAV1ExtensionHeaderstructure whosetemporal_idandspatial_idmembers specify the temporal and spatial layer ID of the reference frame, respectively (these IDs are encoded into the OBU extension header if VkVideoEncodeAV1PictureInfoKHR::generateObuExtensionHeaderis set toVK_TRUEfor the encode operation); -
if
flags.buffer_removal_time_present_flagis set, thenpBufferRemovalTimesis a pointer to an array of N number of unsigned integer values specifying the elements of thebuffer_removal_timearray, as defined in section 6.8.2 of the AV1 Specification, where N is the number of operating points specified for the active sequence header through VkVideoEncodeAV1SessionParametersCreateInfoKHR::stdOperatingPointCount; -
all other members are interpreted as defined in section 6.8 of the AV1 Specification.
-
Reference picture setup is controlled by the value of
StdVideoEncodeAV1PictureInfo::refresh_frame_flags.
If it is not zero 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 StdVideoEncodeAV1PictureInfo::refresh_frame_flags is zero, 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.
- Std Tile Parameters
-
Specifying AV1 tile parameters is optional. If
StdVideoEncodeAV1PictureInfo::pTileInfoisNULL, then the implementation determines the values of AV1 tile parameters defined in section 6.8.14 of the AV1 Specification in an implementation-dependent manner. IfStdVideoEncodeAV1PictureInfo::pTileInfois notNULL, then the members of theStdVideoAV1TileInfostructure pointed to byStdVideoEncodeAV1PictureInfo::pTileInfoare interpreted as follows:-
flags.reservedandreserved1are used only for padding purposes and are otherwise ignored; -
TileColsandTileRowsspecify the number of tile columns and tile rows as defined in section 6.8.14 of the AV1 Specification; -
tile_size_bytes_minus_1is ignored, as its value, as defined in section 6.8.14 of the AV1 Specification, is determined as the result of the encoding process; -
pMiColStartsandpMiRowStartsare ignored, as the elements of theMiColStartsandMiRowStartsarrays defined in section 6.8.14 of the AV1 Specification are determined by the implementation based on the tile widths and heights determined by the implementation or specified through thepWidthInSbsMinus1andpHeightInSbsMinus1arrays, respectively; -
pWidthInSbsMinus1isNULLor a pointer to an array ofTileColsnumber of unsigned integers that corresponds towidth_in_sbs_minus_1defined in section 6.8.14 of the AV1 Specification; -
pHeightInSbsMinus1isNULLor is a pointer to an array ofTileRowsnumber of unsigned integers that corresponds toheight_in_sbs_minus_1defined in section 6.8.14 of the AV1 Specification; -
all other members of
StdVideoAV1TileInfoare interpreted as defined in section 6.8.14 of the AV1 Specification.
-
If flags.uniform_tile_spacing_flag is set, then pWidthInSbsMinus1
and pHeightInSbsMinus1 are ignored.
If flags.uniform_tile_spacing_flag is not set and
pWidthInSbsMinus1 is NULL, then the width of individual tile columns
is determined in an implementation-dependent manner.
If flags.uniform_tile_spacing_flag is not set and
pHeightInSbsMinus1 is NULL, then the height of individual tile rows
is determined in an implementation-dependent manner.
|
Note
|
In general, implementations are expected to respect the application-specified AV1 tile parameters. However, as implementations may have restrictions on the combination of tile column and row counts, and tile widths and heights with respect to the extent of the encoded frame beyond the restrictions specified in the AV1 Specification and this specification (through video profile capabilities), certain parameter combinations may require the implementation to override them in order to conform to such implementation-specific limitations. |
- Active Parameter Sets
-
The active sequence header is the AV1 sequence header stored in the bound video session parameters object.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.