1 #ifndef __RK_AIQ_TYPES_ALDCH_ALGO_INT_H__ 2 #define __RK_AIQ_TYPES_ALDCH_ALGO_INT_H__ 3 4 #include <stddef.h> 5 #include <stdint.h> 6 #include "rk_aiq_comm.h" 7 #include "rk_aiq_types_aldch_algo.h" 8 9 typedef struct rk_aiq_uapi_sync_s rk_aiq_uapi_sync_t; 10 11 typedef struct rk_aiq_ldch_cfg_s { 12 rk_aiq_uapi_sync_t sync; 13 14 bool en; 15 uint8_t correct_level; 16 } rk_aiq_ldch_cfg_t; 17 18 typedef enum { 19 RK_AIQ_LDCH_UPDATE_LUT_ON_LINE = 0, // generate lut inside rkaiq 20 RK_AIQ_LDCH_UPDATE_LUT_FROM_EXTERNAL_FILE, // external file import lut 21 RK_AIQ_LDCH_UPDATE_LUT_FROM_EXTERNAL_BUFFER, // external buffer import lut 22 } rk_aiq_ldch_update_lut_mode_t; 23 24 typedef struct rk_aiq_ldch_lut_external_file_s { 25 char config_file_dir[64]; 26 char mesh_file_name[32]; 27 } rk_aiq_ldch_lut_external_file_t; 28 29 typedef struct rk_aiq_ldch_lut_external_buffer_s { 30 void* addr; 31 size_t size; 32 } rk_aiq_ldch_lut_external_buffer_t; 33 34 typedef struct rk_aiq_ldch_custom_lut_s { 35 bool update_flag; 36 union { 37 rk_aiq_ldch_lut_external_file_t file; 38 rk_aiq_ldch_lut_external_buffer_t buffer; 39 } u; 40 } rk_aiq_ldch_custom_lut_t; 41 42 typedef struct rk_aiq_ldch_v21_cfg_s { 43 rk_aiq_uapi_sync_t sync; 44 45 bool en; 46 uint8_t correct_level; 47 48 uint8_t bic_mode_en; 49 uint8_t zero_interp_en; 50 uint8_t sample_avr_en; 51 52 uint8_t bic_weight[ISP32_LDCH_BIC_NUM]; 53 54 rk_aiq_ldch_update_lut_mode_t update_lut_mode; 55 rk_aiq_ldch_custom_lut_t lut; 56 } rk_aiq_ldch_v21_cfg_t; 57 58 #endif 59