diff options
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr')
6 files changed, 0 insertions, 381 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr3/ia_css_tnr3_types.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr3/ia_css_tnr3_types.h deleted file mode 100644 index 223423f..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr3/ia_css_tnr3_types.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifdef ISP2401 -/** -Support for Intel Camera Imaging ISP subsystem. -Copyright (c) 2010 - 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_TNR3_TYPES_H -#define _IA_CSS_TNR3_TYPES_H - -/* @file -* CSS-API header file for Temporal Noise Reduction v3 (TNR3) kernel -*/ - -/** - * \brief Number of piecewise linear segments. - * \details The parameters to TNR3 are specified as a piecewise linear segment. - * The number of such segments is fixed at 3. - */ -#define TNR3_NUM_SEGMENTS 3 - -/* Temporal Noise Reduction v3 (TNR3) configuration. - * The parameter to this kernel is fourfold - * 1. Three piecewise linear graphs (one for each plane) with three segments - * each. Each line graph has Luma values on the x axis and sigma values for - * each plane on the y axis. The three linear segments may have a different - * slope and the point of Luma value which where the slope may change is called - * a "Knee" point. As there are three such segments, four points need to be - * specified each on the Luma axis and the per plane Sigma axis. On the Luma - * axis two points are fixed (namely 0 and maximum luma value - depending on - * ISP bit depth). The other two points are the points where the slope may - * change its value. These two points are called knee points. The four points on - * the per plane sigma axis are also specified at the interface. - * 2. One rounding adjustment parameter for each plane - * 3. One maximum feedback threshold value for each plane - * 4. Selection of the reference frame buffer to be used for noise reduction. - */ -struct ia_css_tnr3_kernel_config { - unsigned int maxfb_y; /** Maximum Feedback Gain for Y */ - unsigned int maxfb_u; /** Maximum Feedback Gain for U */ - unsigned int maxfb_v; /** Maximum Feedback Gain for V */ - unsigned int round_adj_y; /** Rounding Adjust for Y */ - unsigned int round_adj_u; /** Rounding Adjust for U */ - unsigned int round_adj_v; /** Rounding Adjust for V */ - unsigned int knee_y[TNR3_NUM_SEGMENTS - 1]; /** Knee points */ - unsigned int sigma_y[TNR3_NUM_SEGMENTS + 1]; /** Standard deviation for Y at points Y0, Y1, Y2, Y3 */ - unsigned int sigma_u[TNR3_NUM_SEGMENTS + 1]; /** Standard deviation for U at points U0, U1, U2, U3 */ - unsigned int sigma_v[TNR3_NUM_SEGMENTS + 1]; /** Standard deviation for V at points V0, V1, V2, V3 */ - unsigned int ref_buf_select; /** Selection of the reference buffer */ -}; - -#endif -#endif diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c deleted file mode 100644 index 222a7bd..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.c +++ /dev/null @@ -1,130 +0,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. - */ - -#include "ia_css_types.h" -#include "ia_css_frame.h" -#include "sh_css_defs.h" -#include "ia_css_debug.h" -#include "sh_css_frac.h" -#include "assert_support.h" -#define IA_CSS_INCLUDE_CONFIGURATIONS -#include "ia_css_isp_configs.h" -#include "isp.h" - -#include "ia_css_tnr.host.h" -const struct ia_css_tnr_config default_tnr_config = { - 32768, - 32, - 32, -}; - -void -ia_css_tnr_encode( - struct sh_css_isp_tnr_params *to, - const struct ia_css_tnr_config *from, - unsigned size) -{ - (void)size; - to->coef = - uDIGIT_FITTING(from->gain, 16, SH_CSS_TNR_COEF_SHIFT); - to->threshold_Y = - uDIGIT_FITTING(from->threshold_y, 16, SH_CSS_ISP_YUV_BITS); - to->threshold_C = - uDIGIT_FITTING(from->threshold_uv, 16, SH_CSS_ISP_YUV_BITS); -} - -void -ia_css_tnr_dump( - const struct sh_css_isp_tnr_params *tnr, - unsigned level) -{ - if (!tnr) return; - ia_css_debug_dtrace(level, "Temporal Noise Reduction:\n"); - ia_css_debug_dtrace(level, "\t%-32s = %d\n", - "tnr_coef", tnr->coef); - ia_css_debug_dtrace(level, "\t%-32s = %d\n", - "tnr_threshold_Y", tnr->threshold_Y); - ia_css_debug_dtrace(level, "\t%-32s = %d\n", - "tnr_threshold_C", tnr->threshold_C); -} - -void -ia_css_tnr_debug_dtrace( - const struct ia_css_tnr_config *config, - unsigned level) -{ - ia_css_debug_dtrace(level, - "config.gain=%d, " - "config.threshold_y=%d, config.threshold_uv=%d\n", - config->gain, - config->threshold_y, config->threshold_uv); -} - -void -ia_css_tnr_config( - struct sh_css_isp_tnr_isp_config *to, - const struct ia_css_tnr_configuration *from, - unsigned size) -{ - unsigned elems_a = ISP_VEC_NELEMS; - unsigned i; - - (void)size; - ia_css_dma_configure_from_info(&to->port_b, &from->tnr_frames[0]->info); - to->width_a_over_b = elems_a / to->port_b.elems; - to->frame_height = from->tnr_frames[0]->info.res.height; -#ifndef ISP2401 - for (i = 0; i < NUM_VIDEO_TNR_FRAMES; i++) { -#else - for (i = 0; i < NUM_TNR_FRAMES; i++) { -#endif - to->tnr_frame_addr[i] = from->tnr_frames[i]->data + from->tnr_frames[i]->planes.yuyv.offset; - } - - /* Assume divisiblity here, may need to generalize to fixed point. */ - assert (elems_a % to->port_b.elems == 0); -} - -void -ia_css_tnr_configure( - const struct ia_css_binary *binary, - const struct ia_css_frame **frames) -{ - struct ia_css_tnr_configuration config; - unsigned i; - -#ifndef ISP2401 - for (i = 0; i < NUM_VIDEO_TNR_FRAMES; i++) -#else - for (i = 0; i < NUM_TNR_FRAMES; i++) -#endif - config.tnr_frames[i] = frames[i]; - - ia_css_configure_tnr(binary, &config); -} - -void -ia_css_init_tnr_state( - struct sh_css_isp_tnr_dmem_state *state, - size_t size) -{ - (void)size; - -#ifndef ISP2401 - assert(NUM_VIDEO_TNR_FRAMES >= 2); -#endif - assert(sizeof(*state) == size); - state->tnr_in_buf_idx = 0; - state->tnr_out_buf_idx = 1; -} diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.h deleted file mode 100644 index 9290dfa..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr.host.h +++ /dev/null @@ -1,56 +0,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_TNR_HOST_H -#define __IA_CSS_TNR_HOST_H - -#include "ia_css_binary.h" -#include "ia_css_tnr_state.h" -#include "ia_css_tnr_types.h" -#include "ia_css_tnr_param.h" - -extern const struct ia_css_tnr_config default_tnr_config; - -void -ia_css_tnr_encode( - struct sh_css_isp_tnr_params *to, - const struct ia_css_tnr_config *from, - unsigned size); - -void -ia_css_tnr_dump( - const struct sh_css_isp_tnr_params *tnr, - unsigned level); - -void -ia_css_tnr_debug_dtrace( - const struct ia_css_tnr_config *config, - unsigned level); - -void -ia_css_tnr_config( - struct sh_css_isp_tnr_isp_config *to, - const struct ia_css_tnr_configuration *from, - unsigned size); - -void -ia_css_tnr_configure( - const struct ia_css_binary *binary, - const struct ia_css_frame **frames); - -void -ia_css_init_tnr_state( - struct sh_css_isp_tnr_dmem_state *state, - size_t size); -#endif /* __IA_CSS_TNR_HOST_H */ diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_param.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_param.h deleted file mode 100644 index db4a7cc..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_param.h +++ /dev/null @@ -1,48 +0,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_TNR_PARAM_H -#define __IA_CSS_TNR_PARAM_H - -#include "type_support.h" -#include "sh_css_defs.h" -#include "dma.h" - -/* TNR (Temporal Noise Reduction) */ -struct sh_css_isp_tnr_params { - int32_t coef; - int32_t threshold_Y; - int32_t threshold_C; -}; - -struct ia_css_tnr_configuration { -#ifndef ISP2401 - const struct ia_css_frame *tnr_frames[NUM_VIDEO_TNR_FRAMES]; -#else - const struct ia_css_frame *tnr_frames[NUM_TNR_FRAMES]; -#endif -}; - -struct sh_css_isp_tnr_isp_config { - uint32_t width_a_over_b; - uint32_t frame_height; - struct dma_port_config port_b; -#ifndef ISP2401 - hrt_vaddress tnr_frame_addr[NUM_VIDEO_TNR_FRAMES]; -#else - hrt_vaddress tnr_frame_addr[NUM_TNR_FRAMES]; -#endif -}; - -#endif /* __IA_CSS_TNR_PARAM_H */ diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_state.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_state.h deleted file mode 100644 index 8b1218f..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_state.h +++ /dev/null @@ -1,26 +0,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_TNR_STATE_H -#define __IA_CSS_TNR_STATE_H - -#include "type_support.h" - -/* TNR (temporal noise reduction) */ -struct sh_css_isp_tnr_dmem_state { - uint32_t tnr_in_buf_idx; - uint32_t tnr_out_buf_idx; -}; - -#endif /* __IA_CSS_TNR_STATE_H */ diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_types.h b/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_types.h deleted file mode 100644 index 9bbc9ab..0000000 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/tnr/tnr_1.0/ia_css_tnr_types.h +++ /dev/null @@ -1,60 +0,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_TNR_TYPES_H -#define __IA_CSS_TNR_TYPES_H - -/* @file -* CSS-API header file for Temporal Noise Reduction (TNR) parameters. -*/ - -/* Temporal Noise Reduction (TNR) configuration. - * - * When difference between current frame and previous frame is less than or - * equal to threshold, TNR works and current frame is mixed - * with previous frame. - * When difference between current frame and previous frame is greater - * than threshold, we judge motion is detected. Then, TNR does not work and - * current frame is outputted as it is. - * Therefore, when threshold_y and threshold_uv are set as 0, TNR can be disabled. - * - * ISP block: TNR1 - * ISP1: TNR1 is used. - * ISP2: TNR1 is used. - */ - - -struct ia_css_tnr_config { - ia_css_u0_16 gain; /** Interpolation ratio of current frame - and previous frame. - gain=0.0 -> previous frame is outputted. - gain=1.0 -> current frame is outputted. - u0.16, [0,65535], - default 32768(0.5), ineffective 65535(almost 1.0) */ - ia_css_u0_16 threshold_y; /** Threshold to enable interpolation of Y. - If difference between current frame and - previous frame is greater than threshold_y, - TNR for Y is disabled. - u0.16, [0,65535], default/ineffective 0 */ - ia_css_u0_16 threshold_uv; /** Threshold to enable interpolation of - U/V. - If difference between current frame and - previous frame is greater than threshold_uv, - TNR for UV is disabled. - u0.16, [0,65535], default/ineffective 0 */ -}; - - -#endif /* __IA_CSS_TNR_TYPES_H */ - |