VA-API
2.22.0
|
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. | |
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.
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.
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.
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].
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.
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.