VA-API
2.22.0
|
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 | |
FEI frame level control buffer for HEVC.
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
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
uint32_t VAEncMiscParameterFEIFrameControlHEVC::ref_height |
specifies the reference region height in pixels. When bidirectional search is enabled, this applies to both search regions.
uint32_t VAEncMiscParameterFEIFrameControlHEVC::ref_width |
specifies the search region width in pixels. When bidirectional search is enabled, this applies to both search regions