blob: 3f46655bee57fd9af3d52f3a8f6209d04a349bac [file] [log] [blame]
/*
* 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_YNR_TYPES_H
#define __IA_CSS_YNR_TYPES_H
/** @file
* CSS-API header file for Noise Reduction (BNR) and YCC Noise Reduction (YNR,CNR).
*/
/** Configuration used by Bayer Noise Reduction (BNR) and
* YCC Noise Reduction (YNR,CNR).
*
* ISP block: BNR1, YNR1, CNR1
* ISP1: BNR1,YNR1,CNR1 are used.
* ISP2: BNR1,YNR1,CNR1 are used for Preview/Video.
* BNR1,YNR2,CNR2 are used for Still.
*/
struct ia_css_nr_config {
ia_css_u0_16 bnr_gain; /**< Strength of noise reduction (BNR).
u0.16, [0,65535],
default 14336(0.21875), ineffective 0 */
ia_css_u0_16 ynr_gain; /**< Strength of noise reduction (YNR).
u0.16, [0,65535],
default 14336(0.21875), ineffective 0 */
ia_css_u0_16 direction; /**< Sensitivity of edge (BNR).
u0.16, [0,65535],
default 512(0.0078125), ineffective 0 */
ia_css_u0_16 threshold_cb; /**< Coring threshold for Cb (CNR).
This is the same as
de_config.c1_coring_threshold.
u0.16, [0,65535],
default 0(0), ineffective 0 */
ia_css_u0_16 threshold_cr; /**< Coring threshold for Cr (CNR).
This is the same as
de_config.c2_coring_threshold.
u0.16, [0,65535],
default 0(0), ineffective 0 */
};
/** Edge Enhancement (sharpen) configuration.
*
* ISP block: YEE1
* ISP1: YEE1 is used.
* ISP2: YEE1 is used for Preview/Video.
* (YEE2 is used for Still.)
*/
struct ia_css_ee_config {
ia_css_u5_11 gain; /**< The strength of sharpness.
u5.11, [0,65535],
default 8192(4.0), ineffective 0 */
ia_css_u8_8 threshold; /**< The threshold that divides noises from
edge.
u8.8, [0,65535],
default 256(1.0), ineffective 65535 */
ia_css_u5_11 detail_gain; /**< The strength of sharpness in pell-mell
area.
u5.11, [0,65535],
default 2048(1.0), ineffective 0 */
};
/** YNR and YEE (sharpen) configuration.
*/
struct ia_css_yee_config {
struct ia_css_nr_config nr; /**< The NR configuration. */
struct ia_css_ee_config ee; /**< The EE configuration. */
};
#endif /* __IA_CSS_YNR_TYPES_H */