VA-API  2.13.0.pre1
Classes | Variables
H.264 FEI encoding API

Classes

struct  VAEncMiscParameterFEIFrameControlH264
 FEI frame level control buffer for H.264. More...
 
struct  VAEncFEIMBControlH264
 FEI MB level control data structure. More...
 
struct  VAEncFEIMVPredictorH264
 Application can use this definition as reference to allocate the buffer based on MaxNumPredictor returned from attribute VAConfigAttribFEIMVPredictors query. More...
 
struct  VAEncFEIMBCodeH264
 FEI output. More...
 
struct  VAEncFEIDistortionH264
 VAEncFEIDistortionH264 defines the data structure for VAEncFEIDistortionBufferType per 16x16 MB block. It is output buffer of ENC and ENC_PAK modes, The 16x16 block is in raster scan order. Buffer size shall not be less than the number of 16x16 blocks multiple by sizeof(VAEncFEIDistortionH264). More...
 
struct  VAStatsStatisticsParameterH264
 Motion Vector and Statistics frame level controls. VAStatsStatisticsParameterBufferType for H264 16x16 block. More...
 
struct  VAStatsStatisticsH264
 VAStatsStatisticsH264. H264 Statistics buffer layout for VAStatsStatisticsBufferType and VAStatsStatisticsBottomFieldBufferType(for interlaced only). Statistics output is per 16x16 block. Data structure per 16x16 block is defined below. The 16x16 block is in raster scan order. The buffer size shall be greater than or equal to the number of 16x16 blocks multiplied by sizeof(VAStatsStatisticsH264). More...
 

Variables

VABufferID VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::num_mv_predictors_l0: 16
 number of MV predictors. It must not be greater than maximum supported MV predictor.
 
uint32_t VAEncMiscParameterFEIFrameControlH264::search_path: 8
 motion search method definition 0: default value, diamond search 1: full search 2: diamond search
 
uint32_t VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::intra_part_mask: 5
 
uint32_t VAEncMiscParameterFEIFrameControlH264::multi_pred_l0: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::multi_pred_l1: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::sub_pel_mode: 2
 
uint32_t VAEncMiscParameterFEIFrameControlH264::inter_sad: 2
 
uint32_t VAEncMiscParameterFEIFrameControlH264::intra_sad: 2
 
uint32_t VAEncMiscParameterFEIFrameControlH264::distortion_type: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::repartition_check_enable: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::adaptive_search: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::mv_predictor_enable: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_qp: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_input: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::mb_size_ctrl: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::colocated_mb_distortion: 1
 
uint32_t VAEncMiscParameterFEIFrameControlH264::ref_width: 8
 motion search window(ref_width * ref_height)
 
uint32_t VAEncMiscParameterFEIFrameControlH264::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 VAEncMiscParameterFEIFrameControlH264::max_frame_size
 max frame size control with multi passes QP setting
 
uint32_t VAEncMiscParameterFEIFrameControlH264::num_passes
 number of passes, every pass has different QP
 
uint8_t * VAEncMiscParameterFEIFrameControlH264::delta_qp
 delta QP list for every pass
 
uint32_t VAEncFEIMBControlH264::force_to_intra: 1
 when set, correposndent MB is coded as intra
 
uint32_t VAEncFEIMBControlH264::force_to_skip: 1
 when set, correposndent MB is coded as skip
 
uint32_t VAEncFEIMBControlH264::force_to_nonskip: 1
 specifies whether this macroblock should be coded as a non-skipped macroblock.
 
uint32_t VAEncFEIMBControlH264::target_size_in_word: 8
 when mb_size_ctrl is set, size here is used to budget accumulatively. Set to 0xFF if don't care.
 
uint32_t VAEncFEIMBControlH264::max_size_in_word: 8
 specifies the max size of each MB
 
struct {
VAEncFEIMVPredictorH264::ref_idx [4]
 Reference index corresponding to the entry of RefPicList0 & RefPicList1 in VAEncSliceParameterBufferH264. Note that RefPicList0 & RefPicList1 needs to be the same for all slices. ref_idx_l0_x : index to RefPicList0; ref_idx_l1_x : index to RefPicList1; x : 0 - MaxNumPredictor.
 
VAMotionVector VAEncFEIMVPredictorH264::mv [4]
 MV. MaxNumPredictor must be the returned value from attribute VAConfigAttribFEIMVPredictors query. Even application doesn't use the maximum predictors, the VAFEIMVPredictorH264 structure size has to be defined as maximum so each MB can be at a fixed location. Note that 0x8000 must be used for correspondent intra block.
 
uint16_t VAEncFEIDistortionH264::inter_distortion [16]
 Inter-prediction-distortion associated with motion vector i (co-located with subblock_4x4_i). Its meaning is determined by sub-shape. It must be zero if the corresponding sub-shape is not chosen.
 
uint32_t VAStatsStatisticsParameterH264::len_sp: 8
 length of search path
 
uint32_t VAStatsStatisticsParameterH264::search_path: 8
 motion search method definition 0: default value, diamond search 1: full search 2: diamond search
 
uint32_t VAStatsStatisticsParameterH264::sub_pel_mode: 2
 sub pixel mode definition 00b: integer mode searching 01b: half-pel mode searching 10b: reserved 11b: quarter-pel mode searching
 
uint32_t VAStatsStatisticsParameterH264::inter_sad: 2
 distortion measure adjustment for inter search SAD comparison 00b: none 01b: reserved 10b: Haar transform adjusted 11b: reserved
 
uint32_t VAStatsStatisticsParameterH264::intra_sad: 2
 distortion measure adjustment for intra search SAD comparison 00b: none 01b: reserved 10b: Haar transform adjusted 11b: reserved
 
uint32_t VAStatsStatisticsParameterH264::mv_predictor_ctrl: 3
 indicate if future or/and past MV in mv_predictor buffer is valid. 0: MV predictor disabled 1: MV predictor enabled for past reference 2: MV predictor enabled for future reference 3: MV predictor enabled for both past and future references
 
uint32_t VAStatsStatisticsParameterH264::ft_enable: 1
 forward transform enable 0: disable 1: enable, needs frame_qp or mb_qp input for transform
 
uint32_t VAStatsStatisticsParameterH264::intra_part_mask: 5
 luma intra mode partition mask xxxx1: luma_intra_16x16 disabled xxx1x: luma_intra_8x8 disabled xx1xx: luma_intra_4x4 disabled xx111: intra prediction is disabled
 
uint32_t VAStatsStatisticsParameterH264::ref_width: 8
 motion search window(ref_width * ref_height)
 
uint32_t VAStatsStatisticsParameterH264::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 VAStatsStatisticsParameterH264::disable_mv_output: 1
 MVOutput. When set to 1, MV output is NOT provided.
 
uint32_t VAStatsStatisticsParameterH264::disable_statistics_output: 1
 StatisticsOutput. When set to 1, Statistics output is NOT provided.
 
uint32_t VAStatsStatisticsParameterH264::enable_8x8_statistics: 1
 block 8x8 data enabling in statistics output
 
uint32_t VAStatsStatisticsH264::best_inter_distortion0: 16
 past reference
 
uint32_t VAStatsStatisticsH264::best_inter_distortion1: 16
 future reference
 
uint32_t VAStatsStatisticsH264::mb_is_flat: 1
 DWORD 5 flat info.
 
uint32_t VAStatsStatisticsH264::variance_16x16
 DWORD 6 variance for block16x16.
 
uint32_t VAStatsStatisticsH264::variance_8x8 [4]
 DWORD 7 ~ 10, variance for block8x8.
 
uint32_t VAStatsStatisticsH264::pixel_average_16x16
 DWORD 11 pixel_average for block16x16.
 
uint32_t VAStatsStatisticsH264::pixel_average_8x8 [4]
 DWORD 12 ~ 15, pixel_average for block8x8.
 

Detailed Description

Variable 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