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

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
 

Detailed Description

FEI frame level control buffer for H.264.

Member Data Documentation

◆ adaptive_search

uint32_t VAEncMiscParameterFEIFrameControlH264::adaptive_search

defines whether adaptive searching is enabled for IME(Integer Motion Estimation). 0: disable 1: enable

◆ colocated_mb_distortion

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.

◆ distortion_type

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

◆ inter_sad

uint32_t VAEncMiscParameterFEIFrameControlH264::inter_sad

specifies distortion measure adjustments used for the inter motion search SAD comparison. 00b: none 10b: Haar transform adjusted

◆ intra_part_mask

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

◆ intra_sad

uint32_t VAEncMiscParameterFEIFrameControlH264::intra_sad

specifies distortion measure adjustments used for the intra motion search SAD comparison. 00b: none 10b: Haar transform adjusted

◆ mb_input

uint32_t VAEncMiscParameterFEIFrameControlH264::mb_input

enable mb_ctrl buffer to handle MB

◆ mb_qp

uint32_t VAEncMiscParameterFEIFrameControlH264::mb_qp

enables using the QP buffer to set the QP for each block

◆ mb_size_ctrl

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

◆ multi_pred_l0

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.

◆ multi_pred_l1

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.

◆ mv_predictor_enable

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

◆ repartition_check_enable

uint32_t VAEncMiscParameterFEIFrameControlH264::repartition_check_enable

when set to 1, enables the additional calls on Fraction & Bidirectional Refinement

◆ sub_pel_mode

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


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