1 // SPDX-License-Identifier: MIT 2 // 3 // Copyright 2024 Advanced Micro Devices, Inc. 4 5 #ifndef __DC_SPL_ISHARP_FILTERS_H__ 6 #define __DC_SPL_ISHARP_FILTERS_H__ 7 8 #include "dc_spl_types.h" 9 10 #define NUM_SHARPNESS_ADJ_LEVELS 6 11 struct scale_ratio_to_sharpness_level_adj { 12 unsigned int ratio_numer; 13 unsigned int ratio_denom; 14 unsigned int level_down_adj; /* adjust sharpness level down */ 15 }; 16 17 struct isharp_1D_lut_pregen { 18 unsigned int sharpness_numer; 19 unsigned int sharpness_denom; 20 uint32_t value[ISHARP_LUT_TABLE_SIZE]; 21 }; 22 23 enum system_setup { 24 SDR_NL = 0, 25 SDR_L, 26 HDR_NL, 27 HDR_L, 28 NUM_SHARPNESS_SETUPS 29 }; 30 31 void spl_set_blur_scale_data(struct dscl_prog_data *dscl_prog_data, 32 const struct spl_scaler_data *data); 33 34 void spl_build_isharp_1dlut_from_reference_curve(struct spl_fixed31_32 ratio, enum system_setup setup, 35 struct adaptive_sharpness sharpness, enum scale_to_sharpness_policy scale_to_sharpness_policy); 36 uint32_t *spl_get_pregen_filter_isharp_1D_lut(enum system_setup setup); 37 38 // public API 39 const uint16_t *spl_dscl_get_blur_scale_coeffs_64p(int taps); 40 const uint16_t *spl_dscl_get_blur_scale_coeffs_64p_s1_10(int taps); 41 42 #endif /* __DC_SPL_ISHARP_FILTERS_H__ */ 43