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

FEI frame level control buffer for HEVC. More...

#include <va_fei_hevc.h>

Public Attributes

VABufferID ctb_ctrl
 CTB control input buffer. It is valid only when per_ctb_input is set to 1. The data in this buffer correspond to the input source. CTB is in raster scan order, each CTB control data structure is defined by VAEncFEICTBControlHEVC. Buffer size shall not be less than the number of CTBs multiplied by sizeof(VAEncFEICTBControlHEVC).
 
VABufferID ctb_cmd
 CTB cmd per CTB data output of ENC it is reserved for CTB level information it should include CU split information and other CTB datas . Each CTB block has one CTB cmd data.
 
VABufferID cu_record
 CU record data output of ENC it is reserved for CU level information it should include CU detail data. include mode,MV, reference etc. Each CTB block has one CU record data.
 
VABufferID distortion
 distortion output of ENC or ENC_PAK. Each CTB has one distortion data with VAEncFEIDistortionHevc Buffer size shall not be less than the number of CTBs multiplied by sizeof(VAEncFEIDistortionHevc).
 
VABufferID qp
 Qp input buffer. It is valid only when per_block_qp is set to 1. The data in this buffer correspond to the input source. One Qp per block block is in raster scan order, each Qp is a signed char (8-bit) value.
 
VABufferID mv_predictor
 MV predictor. It is valid only when mv_predictor_input is set to non-zero. Each CTB block has one or more pair of motion vectors and the corresponding reference indexes as defined by VAEncFEIMVPredictorHEVC. 32x32 block is in raster scan order. Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAEncFEIMVPredictorHEVC).
 
uint32_t num_mv_predictors_l0: 16
 number of MV predictors L0 and L1. the maximum number of motion vector predictor for a 16x16, 32x32 or 64x64 block is four, it must not be greater than maximum supported MV predictor,
 
uint32_t search_path: 8
 control parameters
 
uint32_t multi_pred_l0: 4
 multi pred l0/1 0000: no internal MV predictor will be used 0001: spatial MV predictors 0100/1000: Reserved
 
uint32_t sub_pel_mode: 2
 defines the motion vector precision, like integer/half/quarter pel. 00b: integer pel 01b: half-pel 10b: reserved 11b: quarter-pel
 
uint32_t mv_predictor_input: 3
 mv_predictor_input 000: MV predictor disabled 001: MV predictor enabled per 16x16 block 010: MV predictor enabled per 32x32 block 011: MV predictor enabled per 64x64 block 111: MV predictor enabled, block size can vary and is determined by BlockSize in motion vector predictor buffer 100/101/110: Reserved
 
uint32_t per_block_qp: 1
 enables per CTB or CU qp
 
uint32_t per_ctb_input: 1
 enables the per CTB input , if 1, need ctb_ctrl to be a real surface ID
 
uint32_t colocated_ctb_distortion: 1
 
uint32_t force_lcu_split: 1
 
uint32_t enable_cu64_check: 1
 enables CU64x64 check
 
uint32_t enable_cu64_amp_check: 1
 enables CU64x64 asymmetric motion partition check
 
uint32_t cu64_skip_check_only: 1
 specifies if check the 64x64 merge candidate 0: after skip check, 1: only skip check for 64x64 Default: 0. This field is used by LCU64 bi-directional.
 
uint32_t ref_width: 8
 
uint32_t ref_height: 8
 
uint32_t search_window: 8
 search window similar for AVC defines predefined search windows. If it is selected, RefWidth, RefHeight, LenSP and SearchPath are ignored. 0 : not use predefined search window 1 : Tiny – (4 SUs) 24x24 window diamond search 2 : Small – (9 SUs) 28x28 window diamond search 3 : Diamond – (16 SUs) 48x40 window diamond search 4 : Large Diamond – (32 SUs) 48x40 window diamond search 5 : Exhaustive – 48x40 window full search 6 : (64 SUs) 64x64 window full search Note: option 1, 2, 3 and 4 are valid only when CAP parameter SearchWindow64Support is 0. And option 6 is valid only when SearchWindow64Support is 1.
 
uint32_t max_num_ime_search_center: 3
 number of internal MV predictors for IME searches
 
uint32_t fast_intra_mode: 1
 fast intra prediction enabling bit. It is used as a trade-off between speed and quality. The flag will be ignored if it's unsupported in the driver
 
uint32_t num_concurrent_enc_frame_partition: 8
 specifies number of splits that encoder could be run concurrently 1: level 1, default value 2: level 2 4: level 3
 
uint32_t max_frame_size
 max frame size control with multi passes QP setting
 
uint32_t num_passes
 number of passes, every pass has different QP
 
uint8_t * delta_qp
 delta QP list for every pass
 

Detailed Description

FEI frame level control buffer for HEVC.

Member Data Documentation

◆ colocated_ctb_distortion

uint32_t VAEncMiscParameterFEIFrameControlHEVC::colocated_ctb_distortion

when this flag is set, extra distortion between current CTB and co-located CTB is provided. Extra distortion output has performance impact, set it only when it is needed

◆ force_lcu_split

uint32_t VAEncMiscParameterFEIFrameControlHEVC::force_lcu_split

brief specifies whether this CTB should be forced to split to remove Inter big LCU: do not check Inter 32x32 PUs. Every 32x32 LCU is split at least once. It can be used to improved performance. 0: ENC determined block type 1: Force to split

◆ ref_height

uint32_t VAEncMiscParameterFEIFrameControlHEVC::ref_height

specifies the reference region height in pixels. When bidirectional search is enabled, this applies to both search regions.

◆ ref_width

uint32_t VAEncMiscParameterFEIFrameControlHEVC::ref_width

specifies the search region width in pixels. When bidirectional search is enabled, this applies to both search regions


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