TUT HEVC Encoder
Data Structures | Macros | Functions | Variables
strategyselector.h File Reference

Dynamic dispatch based on cpuid. More...

#include "global.h"
#include "strategies/strategies-nal.h"
#include "strategies/strategies-picture.h"
#include "strategies/strategies-dct.h"
#include "strategies/strategies-ipol.h"
#include "strategies/strategies-quant.h"
#include "strategies/strategies-intra.h"
#include "strategies/strategies-sao.h"
#include "strategies/strategies-encode.h"
Include dependency graph for strategyselector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  strategy_t
 
struct  strategy_list_t
 
struct  strategy_to_select_t
 
struct  hardware_flags_t
 

Macros

#define STRATEGY_LIST_ALLOC_SIZE   16
 

Functions

int kvz_strategyselector_init (int32_t cpuid, uint8_t bitdepth, uint8_t enable_logging_output)
 
int kvz_strategyselector_register (void *opaque, const char *type, const char *strategy_name, int priority, void *fptr)
 

Variables

hardware_flags_t kvz_g_hardware_flags
 
hardware_flags_t kvz_g_strategies_in_use
 
hardware_flags_t kvz_g_strategies_available
 
static const strategy_to_select_t strategies_to_select []
 

Macro Definition Documentation

◆ STRATEGY_LIST_ALLOC_SIZE

#define STRATEGY_LIST_ALLOC_SIZE   16

Function Documentation

◆ kvz_strategyselector_init()

int kvz_strategyselector_init ( int32_t  cpuid,
uint8_t  bitdepth,
uint8_t  enable_logging_output 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvz_strategyselector_register()

int kvz_strategyselector_register ( void *  opaque,
const char *  type,
const char *  strategy_name,
int  priority,
void *  fptr 
)
Here is the caller graph for this function:

Variable Documentation

◆ kvz_g_hardware_flags

hardware_flags_t kvz_g_hardware_flags
extern

◆ kvz_g_strategies_available

hardware_flags_t kvz_g_strategies_available
extern

◆ kvz_g_strategies_in_use

hardware_flags_t kvz_g_strategies_in_use
extern

◆ strategies_to_select

const strategy_to_select_t strategies_to_select[]
static
Initial value:
= {
{"array_checksum", (void**) &kvz_array_checksum}, {"array_md5", (void**) &kvz_array_md5},
{"reg_sad", (void**) &kvz_reg_sad}, {"sad_4x4", (void**) &kvz_sad_4x4}, {"sad_8x8", (void**) &kvz_sad_8x8}, {"sad_16x16", (void**) &kvz_sad_16x16}, {"sad_32x32", (void**) &kvz_sad_32x32}, {"sad_64x64", (void**) &kvz_sad_64x64}, {"satd_4x4", (void**) &kvz_satd_4x4}, {"satd_8x8", (void**) &kvz_satd_8x8}, {"satd_16x16", (void**) &kvz_satd_16x16}, {"satd_32x32", (void**) &kvz_satd_32x32}, {"satd_64x64", (void**) &kvz_satd_64x64}, {"satd_any_size", (void**) &kvz_satd_any_size}, {"sad_4x4_dual", (void**) &kvz_sad_4x4_dual}, {"sad_8x8_dual", (void**) &kvz_sad_8x8_dual}, {"sad_16x16_dual", (void**) &kvz_sad_16x16_dual}, {"sad_32x32_dual", (void**) &kvz_sad_32x32_dual}, {"sad_64x64_dual", (void**) &kvz_sad_64x64_dual}, {"satd_4x4_dual", (void**) &kvz_satd_4x4_dual}, {"satd_8x8_dual", (void**) &kvz_satd_8x8_dual}, {"satd_16x16_dual", (void**) &kvz_satd_16x16_dual}, {"satd_32x32_dual", (void**) &kvz_satd_32x32_dual}, {"satd_64x64_dual", (void**) &kvz_satd_64x64_dual}, {"satd_any_size_quad", (void**) &kvz_satd_any_size_quad}, {"pixels_calc_ssd", (void**) &kvz_pixels_calc_ssd}, {"bipred_average", (void**) &kvz_bipred_average}, {"get_optimized_sad", (void**) &kvz_get_optimized_sad}, {"ver_sad", (void**) &kvz_ver_sad}, {"hor_sad", (void**) &kvz_hor_sad}, {"pixel_var", (void**) &kvz_pixel_var},
{"fast_forward_dst_4x4", (void**) &kvz_fast_forward_dst_4x4}, {"dct_4x4", (void**) &kvz_dct_4x4}, {"dct_8x8", (void**) &kvz_dct_8x8}, {"dct_16x16", (void**) &kvz_dct_16x16}, {"dct_32x32", (void**) &kvz_dct_32x32}, {"fast_inverse_dst_4x4", (void**) &kvz_fast_inverse_dst_4x4}, {"idct_4x4", (void**)&kvz_idct_4x4}, {"idct_8x8", (void**)&kvz_idct_8x8}, {"idct_16x16", (void**)&kvz_idct_16x16}, {"idct_32x32", (void**)&kvz_idct_32x32},
{"filter_hpel_blocks_hor_ver_luma", (void**) &kvz_filter_hpel_blocks_hor_ver_luma}, {"filter_hpel_blocks_diag_luma", (void**) &kvz_filter_hpel_blocks_diag_luma}, {"filter_qpel_blocks_hor_ver_luma", (void**) &kvz_filter_qpel_blocks_hor_ver_luma}, {"filter_qpel_blocks_diag_luma", (void**) &kvz_filter_qpel_blocks_diag_luma}, {"sample_quarterpel_luma", (void**) &kvz_sample_quarterpel_luma}, {"sample_octpel_chroma", (void**) &kvz_sample_octpel_chroma}, {"sample_quarterpel_luma_hi", (void**) &kvz_sample_quarterpel_luma_hi}, {"sample_octpel_chroma_hi", (void**) &kvz_sample_octpel_chroma_hi}, {"get_extended_block", (void**) &kvz_get_extended_block},
{"quant", (void**) &kvz_quant}, {"quantize_residual", (void**) &kvz_quantize_residual}, {"dequant", (void**) &kvz_dequant}, {"coeff_abs_sum", (void**) &kvz_coeff_abs_sum}, {"fast_coeff_cost", (void**) &kvz_fast_coeff_cost}, {"find_last_scanpos", (void**) &kvz_find_last_scanpos},
{"angular_pred", (void**) &kvz_angular_pred}, {"intra_pred_planar", (void**) &kvz_intra_pred_planar}, {"intra_pred_filtered_dc", (void**) &kvz_intra_pred_filtered_dc},
{"sao_edge_ddistortion", (void**) &kvz_sao_edge_ddistortion}, {"calc_sao_edge_dir", (void**) &kvz_calc_sao_edge_dir}, {"sao_reconstruct_color", (void**) &kvz_sao_reconstruct_color}, {"sao_band_ddistortion", (void**) &kvz_sao_band_ddistortion},
{"encode_coeff_nxn", (void**) &kvz_encode_coeff_nxn},
{ NULL, NULL },
}
dct_func * kvz_dct_8x8
Definition: strategies-dct.c:44
dct_func * kvz_idct_16x16
Definition: strategies-dct.c:52
dct_func * kvz_fast_forward_dst_4x4
Definition: strategies-dct.c:41
dct_func * kvz_fast_inverse_dst_4x4
Definition: strategies-dct.c:48
dct_func * kvz_idct_32x32
Definition: strategies-dct.c:53
dct_func * kvz_dct_4x4
Definition: strategies-dct.c:43
dct_func * kvz_dct_16x16
Definition: strategies-dct.c:45
dct_func * kvz_idct_4x4
Definition: strategies-dct.c:50
dct_func * kvz_idct_8x8
Definition: strategies-dct.c:51
dct_func * kvz_dct_32x32
Definition: strategies-dct.c:46
encode_coeff_nxn_func * kvz_encode_coeff_nxn
Definition: strategies-encode.c:41
intra_pred_planar_func * kvz_intra_pred_planar
Definition: strategies-intra.c:42
angular_pred_func * kvz_angular_pred
Definition: strategies-intra.c:41
intra_pred_filtered_dc_func * kvz_intra_pred_filtered_dc
Definition: strategies-intra.c:43
ipol_blocks_func * kvz_filter_qpel_blocks_diag_luma
Definition: strategies-ipol.c:44
ipol_blocks_func * kvz_filter_hpel_blocks_hor_ver_luma
Definition: strategies-ipol.c:41
kvz_sample_quarterpel_luma_func * kvz_sample_quarterpel_luma
Definition: strategies-ipol.c:46
ipol_blocks_func * kvz_filter_qpel_blocks_hor_ver_luma
Definition: strategies-ipol.c:43
epol_func * kvz_get_extended_block
Definition: strategies-ipol.c:45
kvz_sample_quarterpel_luma_hi_func * kvz_sample_quarterpel_luma_hi
Definition: strategies-ipol.c:48
kvz_sample_octpel_chroma_hi_func * kvz_sample_octpel_chroma_hi
Definition: strategies-ipol.c:49
ipol_blocks_func * kvz_filter_hpel_blocks_diag_luma
Definition: strategies-ipol.c:42
kvz_sample_octpel_chroma_func * kvz_sample_octpel_chroma
Definition: strategies-ipol.c:47
void(* kvz_array_checksum)(const kvz_pixel *data, const int height, const int width, const int stride, unsigned char checksum_out[SEI_HASH_MAX_LENGTH], const uint8_t bitdepth)
Definition: strategies-nal.c:38
void(* kvz_array_md5)(const kvz_pixel *data, const int height, const int width, const int stride, unsigned char checksum_out[SEI_HASH_MAX_LENGTH], const uint8_t bitdepth)
Definition: strategies-nal.c:42
cost_pixel_nxn_multi_func * kvz_satd_32x32_dual
Definition: strategies-picture.c:67
pixels_calc_ssd_func * kvz_pixels_calc_ssd
Definition: strategies-picture.c:73
cost_pixel_nxn_func * kvz_satd_8x8
Definition: strategies-picture.c:53
cost_pixel_nxn_func * kvz_sad_8x8
Definition: strategies-picture.c:47
cost_pixel_nxn_multi_func * kvz_sad_8x8_dual
Definition: strategies-picture.c:59
cost_pixel_nxn_multi_func * kvz_sad_32x32_dual
Definition: strategies-picture.c:61
reg_sad_func * kvz_reg_sad
Definition: strategies-picture.c:44
get_optimized_sad_func * kvz_get_optimized_sad
Definition: strategies-picture.c:77
cost_pixel_any_size_multi_func * kvz_satd_any_size_quad
Definition: strategies-picture.c:71
cost_pixel_nxn_multi_func * kvz_sad_4x4_dual
Definition: strategies-picture.c:58
cost_pixel_nxn_func * kvz_satd_32x32
Definition: strategies-picture.c:55
cost_pixel_any_size_func * kvz_satd_any_size
Definition: strategies-picture.c:70
cost_pixel_nxn_func * kvz_sad_64x64
Definition: strategies-picture.c:50
cost_pixel_nxn_multi_func * kvz_satd_8x8_dual
Definition: strategies-picture.c:65
hor_sad_func * kvz_hor_sad
Definition: strategies-picture.c:79
cost_pixel_nxn_multi_func * kvz_satd_64x64_dual
Definition: strategies-picture.c:68
pixel_var_func * kvz_pixel_var
Definition: strategies-picture.c:81
cost_pixel_nxn_multi_func * kvz_sad_64x64_dual
Definition: strategies-picture.c:62
cost_pixel_nxn_func * kvz_satd_64x64
Definition: strategies-picture.c:56
cost_pixel_nxn_func * kvz_satd_16x16
Definition: strategies-picture.c:54
cost_pixel_nxn_multi_func * kvz_sad_16x16_dual
Definition: strategies-picture.c:60
cost_pixel_nxn_multi_func * kvz_satd_16x16_dual
Definition: strategies-picture.c:66
ver_sad_func * kvz_ver_sad
Definition: strategies-picture.c:78
inter_recon_bipred_func * kvz_bipred_average
Definition: strategies-picture.c:75
cost_pixel_nxn_func * kvz_sad_32x32
Definition: strategies-picture.c:49
cost_pixel_nxn_func * kvz_sad_16x16
Definition: strategies-picture.c:48
cost_pixel_nxn_multi_func * kvz_satd_4x4_dual
Definition: strategies-picture.c:64
cost_pixel_nxn_func * kvz_sad_4x4
Definition: strategies-picture.c:46
cost_pixel_nxn_func * kvz_satd_4x4
Definition: strategies-picture.c:52
fast_coeff_cost_func * kvz_fast_coeff_cost
Definition: strategies-quant.c:45
coeff_abs_sum_func * kvz_coeff_abs_sum
Definition: strategies-quant.c:44
quant_func * kvz_quant
Definition: strategies-quant.c:41
find_last_scanpos_func * kvz_find_last_scanpos
Definition: strategies-quant.c:46
dequant_func * kvz_dequant
Definition: strategies-quant.c:43
quant_residual_func * kvz_quantize_residual
Definition: strategies-quant.c:42
calc_sao_edge_dir_func * kvz_calc_sao_edge_dir
Definition: strategies-sao.c:41
sao_band_ddistortion_func * kvz_sao_band_ddistortion
Definition: strategies-sao.c:43
sao_edge_ddistortion_func * kvz_sao_edge_ddistortion
Definition: strategies-sao.c:40
sao_reconstruct_color_func * kvz_sao_reconstruct_color
Definition: strategies-sao.c:42