/*
|
* 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
|
|