GNU Linux-libre 4.14.290-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / isp / kernels / cnr / cnr_2 / ia_css_cnr2_types.h
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #ifndef __IA_CSS_CNR2_TYPES_H
16 #define __IA_CSS_CNR2_TYPES_H
17
18 /** @file
19 * CSS-API header file for Chroma Noise Reduction (CNR) parameters
20 */
21
22 /** Chroma Noise Reduction configuration.
23  *
24  *  Small sensitivity of edge means strong smoothness and NR performance.
25  *  If you see blurred color on vertical edges,
26  *  set higher values on sense_gain_h*.
27  *  If you see blurred color on horizontal edges,
28  *  set higher values on sense_gain_v*.
29  *
30  *  ISP block: CNR2
31  * (ISP1: CNR1 is used.)
32  * (ISP2: CNR1 is used for Preview/Video.)
33  *  ISP2: CNR2 is used for Still.
34  */
35 struct ia_css_cnr_config {
36         uint16_t coring_u;      /**< Coring level of U.
37                                 u0.13, [0,8191], default/ineffective 0 */
38         uint16_t coring_v;      /**< Coring level of V.
39                                 u0.13, [0,8191], default/ineffective 0 */
40         uint16_t sense_gain_vy; /**< Sensitivity of horizontal edge of Y.
41                                 u13.0, [0,8191], default 100, ineffective 8191 */
42         uint16_t sense_gain_vu; /**< Sensitivity of horizontal edge of U.
43                                 u13.0, [0,8191], default 100, ineffective 8191 */
44         uint16_t sense_gain_vv; /**< Sensitivity of horizontal edge of V.
45                                 u13.0, [0,8191], default 100, ineffective 8191 */
46         uint16_t sense_gain_hy; /**< Sensitivity of vertical edge of Y.
47                                 u13.0, [0,8191], default 50, ineffective 8191 */
48         uint16_t sense_gain_hu; /**< Sensitivity of vertical edge of U.
49                                 u13.0, [0,8191], default 50, ineffective 8191 */
50         uint16_t sense_gain_hv; /**< Sensitivity of vertical edge of V.
51                                 u13.0, [0,8191], default 50, ineffective 8191 */
52 };
53
54 #endif /* __IA_CSS_CNR2_TYPES_H */
55