hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
 * lut3d_head.h
 *
 *  Copyright (c) 2021 Rockchip Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
 
#ifndef __CALIBDBV2_LUT3D_HEADER_H__
#define __CALIBDBV2_LUT3D_HEADER_H__
 
#include "rk_aiq_comm.h"
 
RKAIQ_BEGIN_DECLARE
 
/*****************************************************************************/
/**
 * @brief   Global 3DLUT calibration structure of isp2.0
 */
/*****************************************************************************/
typedef struct CalibDbV2_Lut3D_Table_Para_s {
    // M4_ARRAY_DESC("Lut R", "u16", M4_SIZE(81,9), M4_RANGE(0,4096), "0", M4_DIGIT(0),  M4_DYNAMIC(0))
    unsigned short look_up_table_r[729];
    // M4_ARRAY_DESC("Lut G", "u16", M4_SIZE(81,9), M4_RANGE(0,4096), "0", M4_DIGIT(0),  M4_DYNAMIC(0))
    unsigned short look_up_table_g[729];
    // M4_ARRAY_DESC("Lut B", "u16", M4_SIZE(81,9), M4_RANGE(0,4096), "0", M4_DIGIT(0),  M4_DYNAMIC(0))
    unsigned short look_up_table_b[729];
}CalibDbV2_Lut3D_Table_Para_t;
 
typedef struct CalibDbV2_Lut3D_Gain_Alpha_Curve_s {
    // M4_ARRAY_DESC("gain", "f32", M4_SIZE(1,9), M4_RANGE(0,256), "[1,2,4,8,16,32,64,128,256]", M4_DIGIT(0), M4_DYNAMIC(0))
    float                                                       gain[9];
    // M4_ARRAY_DESC("Alpha", "f32", M4_SIZE(1,9), M4_RANGE(0,1), "1.00", M4_DIGIT(2), M4_DYNAMIC(0))
    float                                                       alpha[9];
} CalibDbV2_Lut3D_Gain_Alpha_Curve_t;
 
typedef struct CalibDbV2_Lut3D_LutPara_s {
    //  M4_STRING_DESC("name", M4_SIZE(1,1), M4_RANGE(0, 25), "Normal",M4_DYNAMIC(0))
    char *name;
     // M4_ARRAY_DESC("awbGain", "f32", M4_SIZE(1,2), M4_RANGE(0,5), "[1.0000,1.0000]", M4_DIGIT(4), M4_DYNAMIC(0))
    float     awbGain[2];
    // M4_ARRAY_TABLE_DESC("gain-alpha curve", "array_table_ui", M4_INDEX_DEFAULT)
    CalibDbV2_Lut3D_Gain_Alpha_Curve_t gain_alpha;
    // M4_STRUCT_DESC("Table", "normal_ui_style")
    CalibDbV2_Lut3D_Table_Para_t Table;
}CalibDbV2_Lut3D_LutPara_t;
 
typedef struct CalibDbV2_Lut3D_Auto_Para_s {
    // M4_BOOL_DESC("damp enable", "0")
    bool damp_en;
    // M4_STRUCT_LIST_DESC("lutAll", M4_SIZE_DYNAMIC, "normal_ui_style")
    CalibDbV2_Lut3D_LutPara_t*        lutAll;
    int lutAll_len;
}CalibDbV2_Lut3D_Auto_Para_t;
 
typedef struct CalibDbV2_Lut3D_Manual_Para_s {
    // M4_STRUCT_DESC("Table", "normal_ui_style")
    CalibDbV2_Lut3D_Table_Para_t Table;
}CalibDbV2_Lut3D_Manual_Para_t;
 
typedef enum CalibDbV2_Lut3D_Op_Mode_s {
    CALIB_Lut3D_MODE_MANUAL                      = 1,        /**< run manual 3dlut */
    CALIB_Lut3D_MODE_AUTO                        = 2,        /**< run auto 3dlut */
} CalibDbV2_Lut3D_Op_Mode_t;
 
typedef struct CalibDbV2_Lut3D_Common_Para_s {
    // M4_BOOL_DESC("enable", "0")
    bool enable;
    // M4_ENUM_DESC("mode", "CalibDbV2_Lut3D_Op_Mode_t", "CALIB_Lut3D_MODE_AUTO");
    CalibDbV2_Lut3D_Op_Mode_t mode;
   // M4_NUMBER_DESC("gain tolerance", "f32", M4_RANGE(0.0, 256), "0.2", M4_DIGIT(4))
  float gain_tolerance;
   // M4_NUMBER_DESC("wbgain tolerance", "f32", M4_RANGE(0.0, 4), "0.5", M4_DIGIT(4))
  float wbgain_tolerance;
}CalibDbV2_Lut3D_Common_Para_t;
 
typedef struct {
    // M4_STRUCT_DESC("common", "normal_ui_style")
    CalibDbV2_Lut3D_Common_Para_t common;
    // M4_STRUCT_DESC("manualLut3D", "normal_ui_style")
    CalibDbV2_Lut3D_Manual_Para_t MLut3D;
    // M4_STRUCT_DESC("autoLut3D", "normal_ui_style")
    CalibDbV2_Lut3D_Auto_Para_t ALut3D;
} CalibDbV2_Lut3D_Para_V2_t;
 
RKAIQ_END_DECLARE
 
#endif