/* * Copyright (C) 2015 - 2017 Intel 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. */ /*! * \file ia_isp_types.h * \brief Common ISP enumerations and structures. */ #ifndef IA_ISP_TYPES_H_ #define IA_ISP_TYPES_H_ #ifdef __cplusplus extern "C" { #endif /*! * \brief Complexity level for ISP features. */ typedef enum { ia_isp_feature_level_off, /* Feature is turned off */ ia_isp_feature_level_low, /* Minimum set of algorithms are used */ ia_isp_feature_level_high /* Maximum set of algorithms are used */ } ia_isp_feature_level; /*! * \brief Custom control parameters for tuning interpolation in GAIC * * GAIC implements generic interpolations of tuning parameters as factor of certain run-time changing parameter. * This structure defines custom run-time changeable control parameters, which can be used in tuning interpolations. */ typedef struct { int count; /*!< Length of parameters array. */ float *parameters; /*!< Parameters used in calculation (interpolation) of tuning values. The first element of the array corresponds custom tuning 0, second corresponds with custom tuning 1 etc.*/ } ia_isp_custom_controls; /*! * \brief Definitions for the color effects. */ typedef enum { ia_isp_effect_none = 0, ia_isp_effect_sky_blue = (1 << 0), ia_isp_effect_grass_green = (1 << 1), ia_isp_effect_skin_whiten_low = (1 << 2), ia_isp_effect_skin_whiten = (1 << 3), ia_isp_effect_skin_whiten_high = (1 << 4), ia_isp_effect_sepia = (1 << 5), ia_isp_effect_black_and_white = (1 << 6), ia_isp_effect_negative = (1 << 7), ia_isp_effect_vivid = (1 << 8), ia_isp_effect_invert_gamma = (1 << 9), ia_isp_effect_grayscale = (1 << 10), ia_isp_effect_aqua = (1 << 11) } ia_isp_effect; /*! * \brief Settings for feature level and strength. */ typedef struct { ia_isp_feature_level feature_level; /* Feature level */ char strength; /* Setting for the strength [-128,127]. */ } ia_isp_feature_setting; /* Thresholds to extract data of given range from statistics. Used to split combined WDR statistics into several low dynamic range statistics. */ typedef struct { float low; float high; float scale; } ia_isp_stat_split_thresh; #ifdef __cplusplus } #endif #endif /* IA_ISP_TYPES_H_ */