Skip to main content

VAEncPictureParameterBufferHEVC

Type Alias VAEncPictureParameterBufferHEVC 

Source
pub type VAEncPictureParameterBufferHEVC = _VAEncPictureParameterBufferHEVC;
Expand description

HEVC data structures / /** \brief Picture parameter for HEVC encoding in main & main 10 profiles.

This structure holds information for \c pic_parameter_set_rbsp() as defined by the HEVC specification.

If packed picture headers mode is used, i.e. if the encoding pipeline was configured with the #VA_ENC_PACKED_HEADER_PICTURE flag, then the driver expects two more buffers to be provided to the same \c vaRenderPicture() as this buffer:

  • a #VAEncPackedHeaderParameterBuffer with type set to VAEncPackedHeaderType::VAEncPackedHeaderPicture ;
  • a #VAEncPackedHeaderDataBuffer which holds the actual packed header data.

If \c pic_scaling_matrix_present_flag is set to \c 1, then a #VAQMatrixBufferHEVC buffer shall also be provided within the same \c vaRenderPicture() call as this picture parameter buffer.

Aliased Type§

#[repr(C)]
pub struct VAEncPictureParameterBufferHEVC {
Show 24 fields pub decoded_curr_pic: _VAPictureHEVC, pub reference_frames: [_VAPictureHEVC; 15], pub coded_buf: u32, pub collocated_ref_pic_index: u8, pub last_picture: u8, pub pic_init_qp: u8, pub diff_cu_qp_delta_depth: u8, pub pps_cb_qp_offset: i8, pub pps_cr_qp_offset: i8, pub num_tile_columns_minus1: u8, pub num_tile_rows_minus1: u8, pub column_width_minus1: [u8; 19], pub row_height_minus1: [u8; 21], pub log2_parallel_merge_level_minus2: u8, pub ctu_max_bitsize_allowed: u8, pub num_ref_idx_l0_default_active_minus1: u8, pub num_ref_idx_l1_default_active_minus1: u8, pub slice_pic_parameter_set_id: u8, pub nal_unit_type: u8, pub pic_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_1, pub hierarchical_level_plus1: u8, pub va_byte_reserved: u8, pub scc_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_2, pub va_reserved: [u32; 15],
}

Fields§

§decoded_curr_pic: _VAPictureHEVC

\brief Information about the picture to be encoded.

See #VAPictureHEVC for further description of each field. Note that decoded_curr_pic.picture_id represents the reconstructed (decoded) picture. User provides a scratch VA surface ID here. Long term reference and RPS related fields should be set to 0 and ignored.

§reference_frames: [_VAPictureHEVC; 15]

\brief Decoded Picture Buffer (DPB).

This array represents the list of reconstructed (decoded) frames used as reference. It is important to keep track of reconstructed frames so that they can be used later on as reference for P or B-frames encoding.

§coded_buf: u32

\brief Output encoded bitstream.

\ref coded_buf has type #VAEncCodedBufferType. It should be large enough to hold the compressed NAL slice and possibly VPS, SPS and PPS NAL units, and other NAL units such as SEI.

§collocated_ref_pic_index: u8

\brief collocated reference picture buffer index of ReferenceFrames[]. Please note it is different from HEVC syntac element collocated_ref_idx. When the HEVC syntax element slice_temporal_mvp_enable_flag takes value 0, collocated_ref_pic_index should take value 0xFF. . Range: [0..14, 0xFF]

§last_picture: u8

\brief OR’d flags describing whether the picture is the last one or not.

This fields holds 0 if the picture to be encoded is not the last one in the stream or sequence. Otherwise, it is a combination of \ref HEVC_LAST_PICTURE_EOSEQ or \ref HEVC_LAST_PICTURE_EOSTREAM.

§pic_init_qp: u8

\brief \c init_qp_minus26 + 26.

§diff_cu_qp_delta_depth: u8

\brief Corresponds to HEVC syntax element of the same name.

§pps_cb_qp_offset: i8

\brief Corresponds to HEVC syntax element of the same name.

§pps_cr_qp_offset: i8

\brief Corresponds to HEVC syntax element of the same name.

§num_tile_columns_minus1: u8

\brief Corresponds to HEVC syntax element of the same name.

§num_tile_rows_minus1: u8

\brief Corresponds to HEVC syntax element of the same name.

§column_width_minus1: [u8; 19]

\brief Corresponds to HEVC syntax element of the same name.

§row_height_minus1: [u8; 21]

\brief Corresponds to HEVC syntax element of the same name.

§log2_parallel_merge_level_minus2: u8

\brief Corresponds to HEVC syntax element of the same name.

§ctu_max_bitsize_allowed: u8

\brief Application may set the CTU bit size limit based on spec requirement (A.3.2), or other value for special purpose. If the value is set 0, no bit size limit is checked.

§num_ref_idx_l0_default_active_minus1: u8

\brief Maximum reference index for reference picture list 0. value range: [0..14].

§num_ref_idx_l1_default_active_minus1: u8

\brief Maximum reference index for reference picture list 1. value range: [0..14].

§slice_pic_parameter_set_id: u8

\brief PPS header Used by GPU to generate new slice headers in slice size control. value range: [0..63].

§nal_unit_type: u8

\brief NAL unit type Used by GPU to generate new slice headers in slice size control. value range: [0..63].

§pic_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_1§hierarchical_level_plus1: u8

\brief When hierachical_level_plus1 > 0, hierachical_level_plus1-1 indicates the current frame’s level.when it > 0. B1, B2 setting in CodingType can be treated as B, hirachical level is determined by this variable.When hierachical_level_plus1 == 0, hierarchical level information still comes from coding_type.

§va_byte_reserved: u8

\brief Reserved bytes for future use, must be zero

§scc_fields: _VAEncPictureParameterBufferHEVC__bindgen_ty_2§va_reserved: [u32; 15]

\brief Reserved bytes for future use, must be zero