pub type VAEncPictureParameterBufferVP9 = _VAEncPictureParameterBufferVP9;Expand description
\brief VP9 Encoding Picture Parameter Buffer Structure
This structure conveys picture level parameters.
Aliased Type§
#[repr(C)]pub struct VAEncPictureParameterBufferVP9 {Show 33 fields
pub frame_width_src: u32,
pub frame_height_src: u32,
pub frame_width_dst: u32,
pub frame_height_dst: u32,
pub reconstructed_frame: u32,
pub reference_frames: [u32; 8],
pub coded_buf: u32,
pub ref_flags: _VAEncPictureParameterBufferVP9__bindgen_ty_1,
pub pic_flags: _VAEncPictureParameterBufferVP9__bindgen_ty_2,
pub refresh_frame_flags: u8,
pub luma_ac_qindex: u8,
pub luma_dc_qindex_delta: i8,
pub chroma_ac_qindex_delta: i8,
pub chroma_dc_qindex_delta: i8,
pub filter_level: u8,
pub sharpness_level: u8,
pub ref_lf_delta: [i8; 4],
pub mode_lf_delta: [i8; 2],
pub bit_offset_ref_lf_delta: u16,
pub bit_offset_mode_lf_delta: u16,
pub bit_offset_lf_level: u16,
pub bit_offset_qindex: u16,
pub bit_offset_first_partition_size: u16,
pub bit_offset_segmentation: u16,
pub bit_size_segmentation: u16,
pub log2_tile_rows: u8,
pub log2_tile_columns: u8,
pub skip_frame_flag: u8,
pub number_skip_frames: u8,
pub skip_frames_size: u32,
pub seg_id_block_size: u8,
pub va_reserved8: [u8; 3],
pub va_reserved: [u32; 7],
}Fields§
§frame_width_src: u32VP9 encoder may support dynamic scaling function. If enabled (enable_dynamic_scaling is set), application may request GPU encodes picture with a different resolution from the raw source. GPU should handle the scaling process of source and all reference frames.
frame_height_src: u32§frame_width_dst: u32§frame_height_dst: u32§reconstructed_frame: u32§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.
coded_buf: u32§ref_flags: _VAEncPictureParameterBufferVP9__bindgen_ty_1§pic_flags: _VAEncPictureParameterBufferVP9__bindgen_ty_2§refresh_frame_flags: u8\brief indicate which frames in DPB should be refreshed. same syntax and semantic as in VP9 code.
luma_ac_qindex: u8\brief Base Q index in the VP9 term. Added with per segment delta Q index to get Q index of Luma AC.
luma_dc_qindex_delta: i8Q index delta from base Q index in the VP9 term for Luma DC.
chroma_ac_qindex_delta: i8Q index delta from base Q index in the VP9 term for Chroma AC.
chroma_dc_qindex_delta: i8Q index delta from base Q index in the VP9 term for Chroma DC.
filter_level: u8\brief filter level Corresponds to the same VP9 syntax element in frame header.
sharpness_level: u8Controls the deblocking filter sensitivity. Corresponds to the same VP9 syntax element in frame header.
ref_lf_delta: [i8; 4]\brief Loop filter level reference delta values. Contains a list of 4 delta values for reference frame based block-level loop filter adjustment. If no update, set to 0. value range [-63..63]
mode_lf_delta: [i8; 2]\brief Loop filter level mode delta values. Contains a list of 4 delta values for coding mode based MB-level loop filter adjustment. If no update, set to 0. value range [-63..63]
bit_offset_ref_lf_delta: u16Offset from starting position of output bitstream in bits where ref_lf_delta[] should be inserted. This offset should cover any metadata ahead of uncompressed header in inserted bit stream buffer (the offset should be same as that for final output bitstream buffer).
In BRC mode, always insert ref_lf_delta[] (This implies uncompressed header should have mode_ref_delta_enabled=1 and mode_ref_delta_update=1).
bit_offset_mode_lf_delta: u16Offset from starting position of output bitstream in bits where mode_lf_delta[] should be inserted.
In BRC mode, always insert mode_lf_delta[] (This implies uncompressed header should have mode_ref_delta_enabled=1 and mode_ref_delta_update=1).
bit_offset_lf_level: u16Offset from starting position of output bitstream in bits where (loop) filter_level should be inserted.
bit_offset_qindex: u16Offset from starting position of output bitstream in bits where Base Qindex should be inserted.
bit_offset_first_partition_size: u16Offset from starting position of output bitstream in bits where First Partition Size should be inserted.
bit_offset_segmentation: u16Offset from starting position of output bitstream in bits where segmentation_enabled is located in bitstream. When auto_segmentation is enabled, GPU uses this offset to locate and update the segmentation related information.
bit_size_segmentation: u16\brief length in bit of segmentation portion from the location in bit stream where segmentation_enabled syntax is coded. When auto_segmentation is enabled, GPU uses this bit size to locate and update the information after segmentation.
log2_tile_rows: u8\brief log2 of number of tile rows Corresponds to the same VP9 syntax element in frame header. value range [0..2]
log2_tile_columns: u8\brief log2 of number of tile columns Corresponds to the same VP9 syntax element in frame header. value range [0..6]
skip_frame_flag: u8\brief indicate frame-skip happens Application may choose to drop/skip one or mulitple encoded frames or to-be-encoded frame due to various reasons such as insufficient bandwidth. Application uses the following three flags to inform GPU about frame-skip.
value range of skip_frame_flag: [0..2] 0 - encode as normal, no skip; 1 - one or more frames were skipped by application prior to the current frame. Encode the current frame as normal. The driver will pass the number_skip_frames and skip_frames_size to bit rate control for adjustment. 2 - the current frame is to be skipped. Do not encode it but encrypt the packed header contents. This is for the secure encoding case where application generates a frame of all skipped blocks. The packed header will contain the skipped frame.
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, and does not include the frame with skip_frame_flag == 2. Valid when skip_frame_flag = 1.
skip_frames_size: u32\brief When skip_frame_flag = 1, the size of the skipped frames in bits. It includes only the skipped frames that were not counted before, and does not include the frame size with skip_frame_flag = 2. When skip_frame_flag = 2, it is the size of the current skipped frame that is to be encrypted.
seg_id_block_size: u8\brief Block size for each Segment ID in Segment Map. This specify the granularity of media driver of reading and processing the segment map. value should be VA_SEGID_BLOCK_XXX
va_reserved8: [u8; 3]§va_reserved: [u32; 7]\brief Reserved bytes for future use, must be zero