pub type VAEncPictureParameterBufferAV1 = _VAEncPictureParameterBufferAV1;Expand description
\brief AV1 Encoding Picture Parameter Buffer Structure.
This structure conveys picture level parameters.
Aliased Type§
#[repr(C)]pub struct VAEncPictureParameterBufferAV1 {Show 61 fields
pub frame_width_minus_1: u16,
pub frame_height_minus_1: u16,
pub reconstructed_frame: u32,
pub coded_buf: u32,
pub reference_frames: [u32; 8],
pub ref_frame_idx: [u8; 7],
pub hierarchical_level_plus1: u8,
pub primary_ref_frame: u8,
pub order_hint: u8,
pub refresh_frame_flags: u8,
pub reserved8bits1: u8,
pub ref_frame_ctrl_l0: VARefFrameCtrlAV1,
pub ref_frame_ctrl_l1: VARefFrameCtrlAV1,
pub picture_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_1,
pub seg_id_block_size: u8,
pub num_tile_groups_minus1: u8,
pub temporal_id: u8,
pub filter_level: [u8; 2],
pub filter_level_u: u8,
pub filter_level_v: u8,
pub loop_filter_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_2,
pub superres_scale_denominator: u8,
pub interpolation_filter: u8,
pub ref_deltas: [i8; 8],
pub mode_deltas: [i8; 2],
pub base_qindex: u8,
pub y_dc_delta_q: i8,
pub u_dc_delta_q: i8,
pub u_ac_delta_q: i8,
pub v_dc_delta_q: i8,
pub v_ac_delta_q: i8,
pub min_base_qindex: u8,
pub max_base_qindex: u8,
pub qmatrix_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_3,
pub reserved16bits1: u16,
pub mode_control_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_4,
pub segments: _VAEncSegParamAV1,
pub tile_cols: u8,
pub tile_rows: u8,
pub reserved16bits2: u16,
pub width_in_sbs_minus_1: [u16; 63],
pub height_in_sbs_minus_1: [u16; 63],
pub context_update_tile_id: u16,
pub cdef_damping_minus_3: u8,
pub cdef_bits: u8,
pub cdef_y_strengths: [u8; 8],
pub cdef_uv_strengths: [u8; 8],
pub loop_restoration_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_5,
pub wm: [_VAEncWarpedMotionParamsAV1; 7],
pub bit_offset_qindex: u32,
pub bit_offset_segmentation: u32,
pub bit_offset_loopfilter_params: u32,
pub bit_offset_cdef_params: u32,
pub size_in_bits_cdef_params: u32,
pub byte_offset_frame_hdr_obu_size: u32,
pub size_in_bits_frame_hdr_obu: u32,
pub tile_group_obu_hdr_info: _VAEncPictureParameterBufferAV1__bindgen_ty_6,
pub number_skip_frames: u8,
pub reserved16bits3: u16,
pub skip_frames_reduced_size: i32,
pub va_reserved: [u32; 16],
}Fields§
§frame_width_minus_1: u16\brief AV1 encoder may support SupRes and dynamic scaling function. For SupRes, underline encoder is responsible to do downscaling. For dynamic scaling, app should provide the scaled raw source. / /** \brief Raw source frame width in pixels.
frame_height_minus_1: u16\brief Raw source frame height in pixels.
reconstructed_frame: u32\brief Surface to store reconstructed frame, not used for enc only case.
coded_buf: u32\brief Buffer to store coded data.
reference_frames: [u32; 8]\brief Reference frame buffers. Each entry of the array specifies the surface index of the picture that is referred by current picture or will be referred by any future picture. The valid entries take value from 0 to 127, inclusive. Non-valid entries, those do not point to pictures which are referred by current picture or future pictures, should take value 0xFF. Other values are not allowed.
Application should update this array based on the refreshing information expected.
ref_frame_idx: [u8; 7]\brief Reference index list. Contains a list of indices into refernce_frames[]. Indice with refernce frames range: [LAST_FRAME - LAST_FRAME, LAST2_FRAME - LAST_FRAME, …, ALTREF2_FRAME - LAST_FRAME]. #define LAST_FRAME 1 #define LAST2_FRAME 2 #define LAST3_FRAME 3 #define GOLDEN_FRAME 4 #define BWDREF_FRAME 5 #define ALTREF_FRAME 6 #define ALTREF2_FRAME 7 value range [0..7].
hierarchical_level_plus1: u8\brief When hierarchical_level_plus1 > 0, hierarchical_level_plus1-1 indicates the current frame’s level. If VAEncMiscParameterTemporalLayerStructure is valid (number_of_layers >0), hierarchical_level_plus1 shouldn’t larger than number_of_layers.
primary_ref_frame: u8\brief primary reference frame. Index into reference_frames[] segment id map, context table, etc. come from the reference frame pointed by this index. value range [0..7].
order_hint: u8\brief Corresponds to AV1 syntax element of the same name.
refresh_frame_flags: u8\brief Corresponds to AV1 syntax element of the same name.
reserved8bits1: u8\brief Reserved bytes for future use, must be zero.
ref_frame_ctrl_l0: VARefFrameCtrlAV1\brief Suggest which frames to be used as references. see struct #VARefFrameCtrl for details.
ref_frame_ctrl_l1: VARefFrameCtrlAV1§picture_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_1§seg_id_block_size: u8\brief Block size for each Segment ID in Segment Map. should be \c VA_SEGID_BLOCK_XXXX;
num_tile_groups_minus1: u8\brief Number of tile groups minus 1. value range [0..255].
temporal_id: u8\brief Temporal id of the frame.
filter_level: [u8; 2]\brief Deblock filter parameters. value range [0..63].
filter_level_u: u8§filter_level_v: u8§loop_filter_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_2§superres_scale_denominator: u8\brief Super resolution scale denominator. value range [9..16].
interpolation_filter: u8\brief Corresponds to AV1 syntax element of the same name.
ref_deltas: [i8; 8]\brief Loop filter ref deltas. value range [-63..63].
mode_deltas: [i8; 2]\brief Loop filter mode deltas. value range [-63..63].
base_qindex: u8\brief Quantization params.
y_dc_delta_q: i8§u_dc_delta_q: i8§u_ac_delta_q: i8§v_dc_delta_q: i8§v_ac_delta_q: i8§min_base_qindex: u8\brief Min value for base q index for BRC. value range [1..255].
max_base_qindex: u8\brief Max value for base q index for BRC. value range [1..255].
qmatrix_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_3§reserved16bits1: u16\brief Reserved bytes for future use, must be zero.
mode_control_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_4§segments: _VAEncSegParamAV1\brief Segmentation parameters.
tile_cols: u8\brief Number of tile columns.
tile_rows: u8\brief Number of tile rows.
reserved16bits2: u16\brief Reserved bytes for future use, must be zero.
width_in_sbs_minus_1: [u16; 63]\brief The last tile column or row size needs to be derived.
height_in_sbs_minus_1: [u16; 63]§context_update_tile_id: u16\brief specify which tile to use for the CDF update. value range [0..127]
cdef_damping_minus_3: u8\brief Corresponds to AV1 syntax element of the same name. value range [0..3].
cdef_bits: u8\brief Corresponds to AV1 syntax element of the same name. value range [0..3].
cdef_y_strengths: [u8; 8]\brief CDEF Y strengths. value range [0..63]
cdef_uv_strengths: [u8; 8]\brief CDEF UV strengths. value range [0..63]
loop_restoration_flags: _VAEncPictureParameterBufferAV1__bindgen_ty_5§wm: [_VAEncWarpedMotionParamsAV1; 7]\brief Global motion.
bit_offset_qindex: u32Offset in bits for syntax base_q_idx in packed frame header bit stream from the start of the packed header data. In BRC mode, this parameter should be set and driver will update base_q_idx in uncompressed header according to this offset. In CQP mode, this parameter should be set to 0 and ignored by driver.
bit_offset_segmentation: u32Offset in bits for syntax segmentation_enabled of frame header OBU in packed frame header bit stream from the start of the packed header data. Valid only in auto segmentation mode. Other than that, this parameter should be set to 0 and ignored by driver.
bit_offset_loopfilter_params: u32Offset in bits for syntax loop_filter_params() in packed frame header bit stream from the start of the packed header data. In BRC mode, this parameter should be set and driver will update filter params in packed frame header according to this offset. In CQP mode, this parameter should be set to 0 and ignored by driver.
bit_offset_cdef_params: u32In BRC mode, underline encoder should generate the approperiate CDEF values and write back into uncompressed header. And app should provide default CDEF values in packed header. This parameter should point to the starting bit of cdef_params() syntax structure in packed header. In CQP mode, this parameter should be set to 0 and ignored by driver.
size_in_bits_cdef_params: u32In BRC mode, this parameter indicates the actual bit usage of cdef_params() syntax structure in packed uncompressed header. In CQP mode, this parameter should be set to 0 and ignored by driver.
byte_offset_frame_hdr_obu_size: u32Offset in bytes for syntax obu_size of frame header OBU in packed frame header bit stream from the start of the packed header. The frame header OBU size depends on the encoded tile sizes. It applies to both Frame Header OBU and Frame OBU if obu_size needs to be updated by underline encoder. Otherwise, app can set it to 0 and ignored by driver.
In BRC mode, obu_size needs to be updated and this parameter should be set. In CQP mode, obu_size needs to be updated if \c enable_frame_obu == 1. Otherwise this parameter should be set to 0 and ignored by driver.
size_in_bits_frame_hdr_obu: u32Frame header OBU bit stream size in bits. The frame header obu packed bit stream contains an obu header, a 4-byte long obu_size field, frame_header_obu() syntax chain, and a trailing bit if not inside a frame obu. If \c enable_frame_obu == 1, the value should include and up to the last bit of frame_header_obu() and excluding the bits generated by byte_alignment(). If \c enable_frame_obu == 0, the value should include and up to the trailing bit at the end of the frame header obu. The size will be used by encoder to calculate the final frame header size after bit shifting due to auto segmentation. In CQP mode, this parameter should be set to 0 and ignored by driver.
tile_group_obu_hdr_info: _VAEncPictureParameterBufferAV1__bindgen_ty_6§number_skip_frames: u8\brief The number of frames skipped prior to the current frame. It includes only the skipped frames that were not counted before. App may generate the “show_existing_frame” short frame header OBUs and send to driver with the next frame. Default value 0.
reserved16bits3: u16\brief Reserved bytes for future use, must be zero.
skip_frames_reduced_size: i32\brief Indicates the application forced frame size change in bytes. When the value is positive, the frame size is reduced. Otherwise, the frame size increases. The parameter can be used when application skips frames with setting of NumSkipFrames. And application can also use it for other scenarios such as inserting “show_existing_frame” at very end of the sequence.
va_reserved: [u32; 16]\brief Reserved bytes for future use, must be zero.