VA-API
2.22.0
|
FEI frame level control buffer for H.264. More...
#include <va_fei_h264.h>
Public Attributes | |
VABufferID | mb_ctrl |
MB (16x16) control input buffer. It is valid only when (mb_input | mb_size_ctrl) is set to 1. The data in this buffer correspond to the input source. 16x16 MB is in raster scan order, each MB control data structure is defined by VAEncFEIMBControlH264. Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAEncFEIMBControlH264). Note: if mb_qp is set, VAEncQPBufferH264 is expected. | |
VABufferID | distortion |
distortion output of MB ENC or ENC_PAK. Each 16x16 block has one distortion data with VAEncFEIDistortionH264 layout Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAEncFEIDistortionH264). | |
VABufferID | mv_data |
MVs data output of MB ENC. Each 16x16 block has one MVs data with layout VAMotionVector Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAMotionVector) * 16. | |
VABufferID | mb_code_data |
MBCode data output of MB ENC. Each 16x16 block has one MB Code data with layout VAEncFEIMBCodeH264 Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAEncFEIMBCodeH264). | |
VABufferID | qp |
QP input buffer with layout VAEncQPBufferH264. It is valid only when mb_qp is set to 1. The data in this buffer correspond to the input source. One QP per 16x16 block 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_enable is set to 1. Each 16x16 block has one or more pair of motion vectors and the corresponding reference indexes as defined by VAEncFEIMVPredictorH264. 16x16 block is in raster scan order. Buffer size shall not be less than the number of 16x16 blocks multiplied by sizeof(VAEncFEIMVPredictorH264). | |
uint32_t | num_mv_predictors_l0: 16 |
number of MV predictors. It must not be greater than maximum supported MV predictor. | |
uint32_t | search_path: 8 |
motion search method definition 0: default value, diamond search 1: full search 2: diamond search | |
uint32_t | len_sp: 8 |
maximum number of Search Units, valid range is [1, 63] 0 is treated as 1. reference search locations are grouped in a predefined pattern, and all locations within the same group must be either all are chosen or all are skipped. These predefined groups are called search unit (SU). | |
uint32_t | sub_mb_part_mask: 7 |
defines the bit-mask for disabling sub-partition The lower 4 bits are for the major partitions (sub-macroblock) and the higher 3 bits for minor partitions (with sub-partition for 4x(8x8) sub-macroblocks. xxxxxx1 : 16x16 sub-macroblock disabled xxxxx1x : 2x(16x8) sub-macroblock within 16x16 disabled xxxx1xx : 2x(8x16) sub-macroblock within 16x16 disabled xxx1xxx : 1x(8x8) sub-partition for 4x(8x8) within 16x16 disabled xx1xxxx : 2x(8x4) sub-partition for 4x(8x8) within 16x16 disabled x1xxxxx : 2x(4x8) sub-partition for 4x(8x8) within 16x16 disabled 1xxxxxx : 4x(4x4) sub-partition for 4x(8x8) within 16x16 disabled 1111111 : Invalid 0000000 : default value | |
uint32_t | intra_part_mask: 5 |
uint32_t | multi_pred_l0: 1 |
uint32_t | multi_pred_l1: 1 |
uint32_t | sub_pel_mode: 2 |
uint32_t | inter_sad: 2 |
uint32_t | intra_sad: 2 |
uint32_t | distortion_type: 1 |
uint32_t | repartition_check_enable: 1 |
uint32_t | adaptive_search: 1 |
uint32_t | mv_predictor_enable: 1 |
uint32_t | mb_qp: 1 |
uint32_t | mb_input: 1 |
uint32_t | mb_size_ctrl: 1 |
uint32_t | colocated_mb_distortion: 1 |
uint32_t | ref_width: 8 |
motion search window(ref_width * ref_height) | |
uint32_t | search_window: 4 |
predefined motion search windows. If selected, len_sp, window(ref_width * ref_eight) and search_path setting are ignored. 0: not use predefined search window 1: Tiny, len_sp=4, 24x24 window and diamond search 2: Small, len_sp=9, 28x28 window and diamond search 3: Diamond, len_sp=16, 48x40 window and diamond search 4: Large Diamond, len_sp=32, 48x40 window and diamond search 5: Exhaustive, len_sp=48, 48x40 window and full search 6: Extend Diamond, len_sp=16, 64x40 window and diamond search 7: Extend Large Diamond, len_sp=32, 64x40 window and diamond search 8: Extend Exhaustive, len_sp=48, 64x40 window and full search | |
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 H.264.
uint32_t VAEncMiscParameterFEIFrameControlH264::adaptive_search |
defines whether adaptive searching is enabled for IME(Integer Motion Estimation). 0: disable 1: enable
uint32_t VAEncMiscParameterFEIFrameControlH264::colocated_mb_distortion |
when this flag is set, extra distortion between the current MB and co-located MB is provided. Extra distortion output has performance impact, set it only when it is needed.
uint32_t VAEncMiscParameterFEIFrameControlH264::distortion_type |
specifies if the output distortion is the raw distortion or cost adjusted distortion. 0: Raw Distortion without Cost 1: Distortion with added Cost
uint32_t VAEncMiscParameterFEIFrameControlH264::inter_sad |
specifies distortion measure adjustments used for the inter motion search SAD comparison. 00b: none 10b: Haar transform adjusted
uint32_t VAEncMiscParameterFEIFrameControlH264::intra_part_mask |
specifies which Luma Intra partition is enabled/disabled for intra mode decision. xxxx1: luma_intra_16x16 disabled xxx1x: luma_intra_8x8 disabled xx1xx: luma_intra_4x4 disabled xx111: intra prediction is disabled
uint32_t VAEncMiscParameterFEIFrameControlH264::intra_sad |
specifies distortion measure adjustments used for the intra motion search SAD comparison. 00b: none 10b: Haar transform adjusted
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_input |
enable mb_ctrl buffer to handle MB
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_qp |
enables using the QP buffer to set the QP for each block
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_size_ctrl |
when this flag is set, mb_ctrl must be set too and a buffer with per MB input needs to be provided and MaxSizeInWord and
uint32_t VAEncMiscParameterFEIFrameControlH264::multi_pred_l0 |
when set to 1, neighbor MV will be used as predictor; when set to 0, no neighbor MV will be used as predictor.
uint32_t VAEncMiscParameterFEIFrameControlH264::multi_pred_l1 |
when set to 1, neighbor MV will be used as predictor; when set to 0, no neighbor MV will be used as predictor.
uint32_t VAEncMiscParameterFEIFrameControlH264::mv_predictor_enable |
enables using the motion vector as an extra predictor provided by the host. If it is set, host needs to provide a buffer with motion vectors and the associated reference index for each 16x16 block as defined . The host can call processing function to get motion vectors and use as predictor. 0: MV predictor disabled 1: MV predictor enabled
uint32_t VAEncMiscParameterFEIFrameControlH264::repartition_check_enable |
when set to 1, enables the additional calls on Fraction & Bidirectional Refinement
uint32_t VAEncMiscParameterFEIFrameControlH264::sub_pel_mode |
defines the half/quarter pel modes. The mode is inclusive, ie., higher precision mode samples lower precision locations. 00b: integer mode searching 01b: half-pel mode searching 10b: reserved 11b: quarter-pel mode searching