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