| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * 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 { |
| u16 edge_sense_gain_0; /** Sensitivity of edge in dark area. |
| u13.0, [0,8191], |
| default 1000, ineffective 0 */ |
| u16 edge_sense_gain_1; /** Sensitivity of edge in bright area. |
| u13.0, [0,8191], |
| default 1000, ineffective 0 */ |
| u16 corner_sense_gain_0; /** Sensitivity of corner in dark area. |
| u13.0, [0,8191], |
| default 1000, ineffective 0 */ |
| u16 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 { |
| u8 gain_exp; /** Common exponent of gains. |
| u8.0, [0,13], |
| default 1, ineffective 0 */ |
| u16 coring_pos_0; /** Coring threshold for positive edge in dark area. |
| u0.13, [0,8191], |
| default 0(0), ineffective 0 */ |
| u16 coring_pos_1; /** Coring threshold for positive edge in bright area. |
| u0.13, [0,8191], |
| default 0(0), ineffective 0 */ |
| u16 coring_neg_0; /** Coring threshold for negative edge in dark area. |
| u0.13, [0,8191], |
| default 0(0), ineffective 0 */ |
| u16 coring_neg_1; /** Coring threshold for negative edge in bright area. |
| u0.13, [0,8191], |
| default 0(0), ineffective 0 */ |
| u16 gain_pos_0; /** Gain for positive edge in dark area. |
| u0.13, [0,8191], |
| default 4096(0.5), ineffective 0 */ |
| u16 gain_pos_1; /** Gain for positive edge in bright area. |
| u0.13, [0,8191], |
| default 4096(0.5), ineffective 0 */ |
| u16 gain_neg_0; /** Gain for negative edge in dark area. |
| u0.13, [0,8191], |
| default 4096(0.5), ineffective 0 */ |
| u16 gain_neg_1; /** Gain for negative edge in bright area. |
| u0.13, [0,8191], |
| default 4096(0.5), ineffective 0 */ |
| u16 crop_pos_0; /** Limit for positive edge in dark area. |
| u0.13, [0,8191], |
| default/ineffective 8191(almost 1.0) */ |
| u16 crop_pos_1; /** Limit for positive edge in bright area. |
| u0.13, [0,8191], |
| default/ineffective 8191(almost 1.0) */ |
| s16 crop_neg_0; /** Limit for negative edge in dark area. |
| s0.13, [-8192,0], |
| default/ineffective -8192(-1.0) */ |
| s16 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 */ |