VA-API  2.22.0
Public Attributes | List of all members
VAEncPictureParameterBufferHEVC Struct Reference

Picture parameter for HEVC encoding in main & main 10 profiles. More...

#include <va_enc_hevc.h>

Public Attributes

VAPictureHEVC decoded_curr_pic
 Information about the picture to be encoded. More...
 
VAPictureHEVC reference_frames [15]
 Decoded Picture Buffer (DPB). More...
 
VABufferID coded_buf
 Output encoded bitstream. More...
 
uint8_t collocated_ref_pic_index
 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]
 
uint8_t last_picture
 OR'd flags describing whether the picture is the last one or not. More...
 
uint8_t pic_init_qp
 init_qp_minus26 + 26.
 
uint8_t diff_cu_qp_delta_depth
 Corresponds to HEVC syntax element of the same name.
 
int8_t pps_cb_qp_offset
 Corresponds to HEVC syntax element of the same name.
 
int8_t pps_cr_qp_offset
 Corresponds to HEVC syntax element of the same name.
 
uint8_t num_tile_columns_minus1
 Corresponds to HEVC syntax element of the same name.
 
uint8_t num_tile_rows_minus1
 Corresponds to HEVC syntax element of the same name.
 
uint8_t column_width_minus1 [19]
 Corresponds to HEVC syntax element of the same name.
 
uint8_t row_height_minus1 [21]
 Corresponds to HEVC syntax element of the same name.
 
uint8_t log2_parallel_merge_level_minus2
 Corresponds to HEVC syntax element of the same name.
 
uint8_t ctu_max_bitsize_allowed
 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.
 
uint8_t num_ref_idx_l0_default_active_minus1
 Maximum reference index for reference picture list 0. value range: [0..14].
 
uint8_t num_ref_idx_l1_default_active_minus1
 Maximum reference index for reference picture list 1. value range: [0..14].
 
uint8_t slice_pic_parameter_set_id
 PPS header Used by GPU to generate new slice headers in slice size control. value range: [0..63].
 
uint8_t nal_unit_type
 NAL unit type Used by GPU to generate new slice headers in slice size control. value range: [0..63].
 
uint8_t hierarchical_level_plus1
 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.
 
uint8_t va_byte_reserved
 Reserved bytes for future use, must be zero.
 
union {
scc_fields
 SCC flags to enable/disable feature, only IBC at present.
 
uint32_t va_reserved [VA_PADDING_HIGH - 1]
 Reserved bytes for future use, must be zero.
 
uint32_t idr_pic_flag: 1
 Is picture an IDR picture?
 
uint32_t coding_type: 3
 Picture type. I - 1; P - 2; B - 3; B1 - 4; B2 - 5; B1 and B2 are frame types for hierachical B, explanation can refer to num_b_in_gop[].
 
uint32_t reference_pic_flag: 1
 Is picture a reference picture?
 
uint32_t dependent_slice_segments_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t sign_data_hiding_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t constrained_intra_pred_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t transform_skip_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t cu_qp_delta_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t weighted_pred_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t weighted_bipred_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t transquant_bypass_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t tiles_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t entropy_coding_sync_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t loop_filter_across_tiles_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t pps_loop_filter_across_slices_enabled_flag: 1
 Corresponds to HEVC syntax element of the same name.
 
uint32_t scaling_list_data_present_flag: 1
 A combination of HEVC syntax element of sps_scaling_list_data_present_flag and pps_scaling_list_data_present_flag when scaling_list_enable_flag is 0, it must be 0.
 
uint32_t screen_content_flag: 1
 indicate the current picture contains significant screen contents (text, characters, etc.) or animated image. GPU may want to treat them differently from normal video. For example, encoder may choose a small transform unit size and may use transform skip mode.
 
uint32_t enable_gpu_weighted_prediction: 1
 
uint32_t no_output_of_prior_pics_flag: 1
 HEVC syntax element in slice segment header GPU uses it to generate new slice headers in slice size control.
 
uint16_t pps_curr_pic_ref_enabled_flag: 1
 Same as the HEVC bitstream syntax element.
 
uint16_t reserved: 15
 Reserved bits for future use, must be zero.
 

Detailed Description

Picture parameter for HEVC encoding in main & main 10 profiles.

This structure holds information for 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 vaRenderPicture() as this buffer:

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

Member Data Documentation

◆ coded_buf

VABufferID VAEncPictureParameterBufferHEVC::coded_buf

Output encoded bitstream.

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.

◆ decoded_curr_pic

VAPictureHEVC VAEncPictureParameterBufferHEVC::decoded_curr_pic

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.

◆ enable_gpu_weighted_prediction

uint32_t VAEncPictureParameterBufferHEVC::enable_gpu_weighted_prediction

When either weighted_pred_flag or weighted_bipred_flag is turned on, the flag enable_gpu_weighted_prediction requests GPU to determine weighted prediction factors. In this case, the following parameters in slice control data structure shall be ignored: luma_log2_weight_denom, delta_chroma_log2_weight_denom, luma_offset_l0[15], luma_offset_l1[15], delta_luma_weight_l0[15], delta_luma_weight_l1[15], chroma_offset_l0[15][2], chroma_offset_l1[15][2], and delta_chroma_weight_l0[15][2], delta_chroma_weight_l1[15][2].

◆ last_picture

uint8_t VAEncPictureParameterBufferHEVC::last_picture

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 HEVC_LAST_PICTURE_EOSEQ or HEVC_LAST_PICTURE_EOSTREAM.

◆ reference_frames

VAPictureHEVC VAEncPictureParameterBufferHEVC::reference_frames[15]

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.


The documentation for this struct was generated from the following file: