Path: blob/master/dep/vulkan/include/vk_video/vulkan_video_codec_av1std.h
7567 views
#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_1#define VULKAN_VIDEO_CODEC_AV1STD_H_ 123/*4** Copyright 2015-2025 The Khronos Group Inc.5**6** SPDX-License-Identifier: Apache-2.07*/89/*10** This header is generated from the Khronos Vulkan XML API Registry.11**12*/131415#ifdef __cplusplus16extern "C" {17#endif18192021// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls.22#define vulkan_video_codec_av1std 123#include "vulkan_video_codecs_common.h"24#define STD_VIDEO_AV1_NUM_REF_FRAMES 8U25#define STD_VIDEO_AV1_REFS_PER_FRAME 7U26#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8U27#define STD_VIDEO_AV1_MAX_TILE_COLS 64U28#define STD_VIDEO_AV1_MAX_TILE_ROWS 64U29#define STD_VIDEO_AV1_MAX_SEGMENTS 8U30#define STD_VIDEO_AV1_SEG_LVL_MAX 8U31#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7U32#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2U33#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2U34#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2U35#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4U36#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2U37#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8U38#define STD_VIDEO_AV1_MAX_NUM_PLANES 3U39#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6U40#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14U41#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10U42#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10U43#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24U44#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25U4546typedef enum StdVideoAV1Profile {47STD_VIDEO_AV1_PROFILE_MAIN = 0,48STD_VIDEO_AV1_PROFILE_HIGH = 1,49STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,50STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF,51STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF52} StdVideoAV1Profile;5354typedef enum StdVideoAV1Level {55STD_VIDEO_AV1_LEVEL_2_0 = 0,56STD_VIDEO_AV1_LEVEL_2_1 = 1,57STD_VIDEO_AV1_LEVEL_2_2 = 2,58STD_VIDEO_AV1_LEVEL_2_3 = 3,59STD_VIDEO_AV1_LEVEL_3_0 = 4,60STD_VIDEO_AV1_LEVEL_3_1 = 5,61STD_VIDEO_AV1_LEVEL_3_2 = 6,62STD_VIDEO_AV1_LEVEL_3_3 = 7,63STD_VIDEO_AV1_LEVEL_4_0 = 8,64STD_VIDEO_AV1_LEVEL_4_1 = 9,65STD_VIDEO_AV1_LEVEL_4_2 = 10,66STD_VIDEO_AV1_LEVEL_4_3 = 11,67STD_VIDEO_AV1_LEVEL_5_0 = 12,68STD_VIDEO_AV1_LEVEL_5_1 = 13,69STD_VIDEO_AV1_LEVEL_5_2 = 14,70STD_VIDEO_AV1_LEVEL_5_3 = 15,71STD_VIDEO_AV1_LEVEL_6_0 = 16,72STD_VIDEO_AV1_LEVEL_6_1 = 17,73STD_VIDEO_AV1_LEVEL_6_2 = 18,74STD_VIDEO_AV1_LEVEL_6_3 = 19,75STD_VIDEO_AV1_LEVEL_7_0 = 20,76STD_VIDEO_AV1_LEVEL_7_1 = 21,77STD_VIDEO_AV1_LEVEL_7_2 = 22,78STD_VIDEO_AV1_LEVEL_7_3 = 23,79STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF,80STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF81} StdVideoAV1Level;8283typedef enum StdVideoAV1FrameType {84STD_VIDEO_AV1_FRAME_TYPE_KEY = 0,85STD_VIDEO_AV1_FRAME_TYPE_INTER = 1,86STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2,87STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3,88STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF,89STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF90} StdVideoAV1FrameType;9192typedef enum StdVideoAV1ReferenceName {93STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0,94STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1,95STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2,96STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3,97STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4,98STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5,99STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6,100STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7,101STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF,102STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF103} StdVideoAV1ReferenceName;104105typedef enum StdVideoAV1InterpolationFilter {106STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,107STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,108STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,109STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3,110STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,111STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,112STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF113} StdVideoAV1InterpolationFilter;114115typedef enum StdVideoAV1TxMode {116STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0,117STD_VIDEO_AV1_TX_MODE_LARGEST = 1,118STD_VIDEO_AV1_TX_MODE_SELECT = 2,119STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF,120STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF121} StdVideoAV1TxMode;122123typedef enum StdVideoAV1FrameRestorationType {124STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0,125STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1,126STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2,127STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3,128STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF,129STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF130} StdVideoAV1FrameRestorationType;131132typedef enum StdVideoAV1ColorPrimaries {133STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,134STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED = 2,135STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,136STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,137STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,138STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7,139STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8,140STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9,141STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10,142STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11,143STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,144STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,145STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,146// STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED is a legacy alias147STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED,148STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF149} StdVideoAV1ColorPrimaries;150151typedef enum StdVideoAV1TransferCharacteristics {152STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0,153STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1,154STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,155STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3,156STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4,157STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5,158STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6,159STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7,160STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8,161STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9,162STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10,163STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11,164STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12,165STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13,166STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14,167STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15,168STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16,169STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17,170STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18,171STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF,172STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF173} StdVideoAV1TransferCharacteristics;174175typedef enum StdVideoAV1MatrixCoefficients {176STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0,177STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1,178STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2,179STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3,180STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4,181STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5,182STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6,183STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7,184STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8,185STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9,186STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10,187STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11,188STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12,189STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13,190STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14,191STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF,192STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF193} StdVideoAV1MatrixCoefficients;194195typedef enum StdVideoAV1ChromaSamplePosition {196STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0,197STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1,198STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2,199STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3,200STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF,201STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF202} StdVideoAV1ChromaSamplePosition;203typedef struct StdVideoAV1ColorConfigFlags {204uint32_t mono_chrome : 1;205uint32_t color_range : 1;206uint32_t separate_uv_delta_q : 1;207uint32_t color_description_present_flag : 1;208uint32_t reserved : 28;209} StdVideoAV1ColorConfigFlags;210211typedef struct StdVideoAV1ColorConfig {212StdVideoAV1ColorConfigFlags flags;213uint8_t BitDepth;214uint8_t subsampling_x;215uint8_t subsampling_y;216uint8_t reserved1;217StdVideoAV1ColorPrimaries color_primaries;218StdVideoAV1TransferCharacteristics transfer_characteristics;219StdVideoAV1MatrixCoefficients matrix_coefficients;220StdVideoAV1ChromaSamplePosition chroma_sample_position;221} StdVideoAV1ColorConfig;222223typedef struct StdVideoAV1TimingInfoFlags {224uint32_t equal_picture_interval : 1;225uint32_t reserved : 31;226} StdVideoAV1TimingInfoFlags;227228typedef struct StdVideoAV1TimingInfo {229StdVideoAV1TimingInfoFlags flags;230uint32_t num_units_in_display_tick;231uint32_t time_scale;232uint32_t num_ticks_per_picture_minus_1;233} StdVideoAV1TimingInfo;234235typedef struct StdVideoAV1LoopFilterFlags {236uint32_t loop_filter_delta_enabled : 1;237uint32_t loop_filter_delta_update : 1;238uint32_t reserved : 30;239} StdVideoAV1LoopFilterFlags;240241typedef struct StdVideoAV1LoopFilter {242StdVideoAV1LoopFilterFlags flags;243uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS];244uint8_t loop_filter_sharpness;245uint8_t update_ref_delta;246int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME];247uint8_t update_mode_delta;248int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS];249} StdVideoAV1LoopFilter;250251typedef struct StdVideoAV1QuantizationFlags {252uint32_t using_qmatrix : 1;253uint32_t diff_uv_delta : 1;254uint32_t reserved : 30;255} StdVideoAV1QuantizationFlags;256257typedef struct StdVideoAV1Quantization {258StdVideoAV1QuantizationFlags flags;259uint8_t base_q_idx;260int8_t DeltaQYDc;261int8_t DeltaQUDc;262int8_t DeltaQUAc;263int8_t DeltaQVDc;264int8_t DeltaQVAc;265uint8_t qm_y;266uint8_t qm_u;267uint8_t qm_v;268} StdVideoAV1Quantization;269270typedef struct StdVideoAV1Segmentation {271uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS];272int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX];273} StdVideoAV1Segmentation;274275typedef struct StdVideoAV1TileInfoFlags {276uint32_t uniform_tile_spacing_flag : 1;277uint32_t reserved : 31;278} StdVideoAV1TileInfoFlags;279280typedef struct StdVideoAV1TileInfo {281StdVideoAV1TileInfoFlags flags;282uint8_t TileCols;283uint8_t TileRows;284uint16_t context_update_tile_id;285uint8_t tile_size_bytes_minus_1;286uint8_t reserved1[7];287const uint16_t* pMiColStarts;288const uint16_t* pMiRowStarts;289const uint16_t* pWidthInSbsMinus1;290const uint16_t* pHeightInSbsMinus1;291} StdVideoAV1TileInfo;292293typedef struct StdVideoAV1CDEF {294uint8_t cdef_damping_minus_3;295uint8_t cdef_bits;296uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];297uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];298uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];299uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];300} StdVideoAV1CDEF;301302typedef struct StdVideoAV1LoopRestoration {303StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES];304uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES];305} StdVideoAV1LoopRestoration;306307typedef struct StdVideoAV1GlobalMotion {308uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES];309int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS];310} StdVideoAV1GlobalMotion;311312typedef struct StdVideoAV1FilmGrainFlags {313uint32_t chroma_scaling_from_luma : 1;314uint32_t overlap_flag : 1;315uint32_t clip_to_restricted_range : 1;316uint32_t update_grain : 1;317uint32_t reserved : 28;318} StdVideoAV1FilmGrainFlags;319320typedef struct StdVideoAV1FilmGrain {321StdVideoAV1FilmGrainFlags flags;322uint8_t grain_scaling_minus_8;323uint8_t ar_coeff_lag;324uint8_t ar_coeff_shift_minus_6;325uint8_t grain_scale_shift;326uint16_t grain_seed;327uint8_t film_grain_params_ref_idx;328uint8_t num_y_points;329uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];330uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];331uint8_t num_cb_points;332uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];333uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];334uint8_t num_cr_points;335uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];336uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];337int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA];338int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];339int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];340uint8_t cb_mult;341uint8_t cb_luma_mult;342uint16_t cb_offset;343uint8_t cr_mult;344uint8_t cr_luma_mult;345uint16_t cr_offset;346} StdVideoAV1FilmGrain;347348typedef struct StdVideoAV1SequenceHeaderFlags {349uint32_t still_picture : 1;350uint32_t reduced_still_picture_header : 1;351uint32_t use_128x128_superblock : 1;352uint32_t enable_filter_intra : 1;353uint32_t enable_intra_edge_filter : 1;354uint32_t enable_interintra_compound : 1;355uint32_t enable_masked_compound : 1;356uint32_t enable_warped_motion : 1;357uint32_t enable_dual_filter : 1;358uint32_t enable_order_hint : 1;359uint32_t enable_jnt_comp : 1;360uint32_t enable_ref_frame_mvs : 1;361uint32_t frame_id_numbers_present_flag : 1;362uint32_t enable_superres : 1;363uint32_t enable_cdef : 1;364uint32_t enable_restoration : 1;365uint32_t film_grain_params_present : 1;366uint32_t timing_info_present_flag : 1;367uint32_t initial_display_delay_present_flag : 1;368uint32_t reserved : 13;369} StdVideoAV1SequenceHeaderFlags;370371typedef struct StdVideoAV1SequenceHeader {372StdVideoAV1SequenceHeaderFlags flags;373StdVideoAV1Profile seq_profile;374uint8_t frame_width_bits_minus_1;375uint8_t frame_height_bits_minus_1;376uint16_t max_frame_width_minus_1;377uint16_t max_frame_height_minus_1;378uint8_t delta_frame_id_length_minus_2;379uint8_t additional_frame_id_length_minus_1;380uint8_t order_hint_bits_minus_1;381uint8_t seq_force_integer_mv;382uint8_t seq_force_screen_content_tools;383uint8_t reserved1[5];384const StdVideoAV1ColorConfig* pColorConfig;385const StdVideoAV1TimingInfo* pTimingInfo;386} StdVideoAV1SequenceHeader;387388389#ifdef __cplusplus390}391#endif392393#endif394395396