1 2 #ifndef __RKAIQ_TYPES_ADEBAYER_ALGO_INT_H__ 3 #define __RKAIQ_TYPES_ADEBAYER_ALGO_INT_H__ 4 5 #include "rk_aiq_types_adebayer_algo.h" 6 #include "debayer_head.h" 7 8 typedef enum rk_aiq_debayer_op_mode_e { 9 RK_AIQ_DEBAYER_MODE_INVALID = 0, /**< initialization value */ 10 RK_AIQ_DEBAYER_MODE_MANUAL = 1, /**< run manual lens shading correction */ 11 RK_AIQ_DEBAYER_MODE_AUTO = 2, /**< run auto lens shading correction */ 12 RK_AIQ_DEBAYER_MODE_MAX 13 } rk_aiq_debayer_op_mode_t; 14 15 typedef enum AdebayerHwVersion_e 16 { 17 ADEBAYER_HARDWARE_V1 = 0, // rk1126/1109/356X/3588 18 ADEBAYER_HARDWARE_V2 = 1, //rk1106 19 ADEBAYER_HARDWARE_V2_LITE = 2, //rk3562 20 ADEBAYER_HARDWARE_MAX, 21 } AdebayerHwVersion_t; 22 23 typedef struct AdebayerSeletedParamV1_s { 24 int8_t filter1[5]; 25 int8_t filter2[5]; 26 uint8_t gain_offset; 27 uint8_t sharp_strength; 28 uint8_t hf_offset; 29 uint8_t offset; 30 uint8_t clip_en; 31 uint8_t filter_g_en; 32 uint8_t filter_c_en; 33 uint8_t thed0; 34 uint8_t thed1; 35 uint8_t dist_scale; 36 uint8_t cnr_strength; 37 uint8_t shift_num; 38 } AdebayerSeletedParamV1_t; 39 40 typedef struct AdebayerSeletedParamV2_s { 41 bool debayer_en; 42 43 //filter coef 44 int lowfreq_filter1[4]; 45 int highfreq_filter2[4]; 46 int c_alpha_gaus_coe[3]; 47 int c_guid_gaus_coe[3]; 48 int c_ce_gaus_coe[3]; 49 50 //g_interp 51 unsigned char debayer_clip_en; 52 unsigned short debayer_gain_offset; 53 unsigned char debayer_max_ratio; 54 55 //g_drctwgt 56 unsigned short debayer_hf_offset; 57 unsigned char debayer_thed0; 58 unsigned char debayer_thed1; 59 unsigned char debayer_dist_scale; 60 unsigned char debayer_select_thed; 61 62 //g_filter 63 unsigned char debayer_gfilter_en; 64 unsigned short debayer_gfilter_offset; 65 66 //c_filter 67 unsigned char debayer_cfilter_en; 68 69 unsigned short debayer_loggd_offset; 70 71 float debayer_cfilter_str; 72 float debayer_wet_clip; 73 float debayer_wet_ghost; 74 float debayer_wgtslope; 75 76 float debayer_bf_sgm; 77 unsigned char debayer_bf_clip; 78 unsigned char debayer_bf_curwgt; 79 80 unsigned short debayer_loghf_offset; 81 82 unsigned short debayer_alpha_offset; 83 float debayer_alpha_scale; 84 unsigned short debayer_edge_offset; 85 float debayer_edge_scale; 86 87 } AdebayerSeletedParamV2_t; 88 89 typedef struct AdebayerSeletedParamV2Lite_s { 90 bool debayer_en; 91 92 //filter coef 93 int lowfreq_filter1[4]; 94 int highfreq_filter2[4]; 95 96 //g_interp 97 unsigned char debayer_clip_en; 98 unsigned short debayer_gain_offset; 99 unsigned char debayer_max_ratio; 100 101 //g_drctwgt 102 unsigned short debayer_hf_offset; 103 unsigned char debayer_thed0; 104 unsigned char debayer_thed1; 105 unsigned char debayer_dist_scale; 106 unsigned char debayer_select_thed; 107 108 //g_filter 109 unsigned char debayer_gfilter_en; 110 unsigned short debayer_gfilter_offset; 111 112 } AdebayerSeletedParamV2Lite_t; 113 114 typedef struct AdebayerProcResultV1_s { 115 AdebayerHwConfigV1_t* config; 116 } AdebayerProcResultV1_t; 117 118 typedef struct AdebayerProcResultV2_s { 119 AdebayerHwConfigV2_t* config; 120 } AdebayerProcResultV2_t; 121 122 #endif//__RKAIQ_TYPES_ADEBAYER_ALGO_INT_H__ 123