/* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __IA_CSS_YNR2_TYPES_H #define __IA_CSS_YNR2_TYPES_H /* @file * CSS-API header file for Y(Luma) Noise Reduction. */ /* Y(Luma) Noise Reduction configuration. * * ISP block: YNR2 & YEE2 * (ISP1: YNR1 and YEE1 are used.) * (ISP2: YNR1 and YEE1 are used for Preview/Video.) * ISP2: YNR2 and YEE2 are used for Still. */ struct ia_css_ynr_config { uint16_t edge_sense_gain_0; /** Sensitivity of edge in dark area. u13.0, [0,8191], default 1000, ineffective 0 */ uint16_t edge_sense_gain_1; /** Sensitivity of edge in bright area. u13.0, [0,8191], default 1000, ineffective 0 */ uint16_t corner_sense_gain_0; /** Sensitivity of corner in dark area. u13.0, [0,8191], default 1000, ineffective 0 */ uint16_t corner_sense_gain_1; /** Sensitivity of corner in bright area. u13.0, [0,8191], default 1000, ineffective 0 */ }; /* Fringe Control configuration. * * ISP block: FC2 (FC2 is used with YNR2/YEE2.) * (ISP1: FC2 is not used.) * (ISP2: FC2 is not for Preview/Video.) * ISP2: FC2 is used for Still. */ struct ia_css_fc_config { uint8_t gain_exp; /** Common exponent of gains. u8.0, [0,13], default 1, ineffective 0 */ uint16_t coring_pos_0; /** Coring threshold for positive edge in dark area. u0.13, [0,8191], default 0(0), ineffective 0 */ uint16_t coring_pos_1; /** Coring threshold for positive edge in bright area. u0.13, [0,8191], default 0(0), ineffective 0 */ uint16_t coring_neg_0; /** Coring threshold for negative edge in dark area. u0.13, [0,8191], default 0(0), ineffective 0 */ uint16_t coring_neg_1; /** Coring threshold for negative edge in bright area. u0.13, [0,8191], default 0(0), ineffective 0 */ uint16_t gain_pos_0; /** Gain for positive edge in dark area. u0.13, [0,8191], default 4096(0.5), ineffective 0 */ uint16_t gain_pos_1; /** Gain for positive edge in bright area. u0.13, [0,8191], default 4096(0.5), ineffective 0 */ uint16_t gain_neg_0; /** Gain for negative edge in dark area. u0.13, [0,8191], default 4096(0.5), ineffective 0 */ uint16_t gain_neg_1; /** Gain for negative edge in bright area. u0.13, [0,8191], default 4096(0.5), ineffective 0 */ uint16_t crop_pos_0; /** Limit for positive edge in dark area. u0.13, [0,8191], default/ineffective 8191(almost 1.0) */ uint16_t crop_pos_1; /** Limit for positive edge in bright area. u0.13, [0,8191], default/ineffective 8191(almost 1.0) */ int16_t crop_neg_0; /** Limit for negative edge in dark area. s0.13, [-8192,0], default/ineffective -8192(-1.0) */ int16_t crop_neg_1; /** Limit for negative edge in bright area. s0.13, [-8192,0], default/ineffective -8192(-1.0) */ }; #endif /* __IA_CSS_YNR2_TYPES_H */