summaryrefslogtreecommitdiff
path: root/include/ia_imaging/yuvp1_b0_public.h
blob: 3e71768b5e0e4a1c93a7bf0846f5151334e5ddf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
 * Copyright (C) 2015 - 2017 Intel Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef _YUVP1_PUBLIC_H_
#define _YUVP1_PUBLIC_H_

/** @file
* CSS-API header file for 2500/Skycam B0 specific noice reduction (YUV_P1 component) kernel/accelerator.
*/
//#include <type_support.h>

/* All structs in this file will be visible to the CSS API User.
 * The User will be able to set each one of the config params separately by
 * specifying a different config type (see sh_config_type in sh_css.h).
 * If one of those config structs is not set explicitly, a default value will
 * be use instead.
 */

#include "yuvp1_common_public.h"

struct yuvp1_y_ee_nr_lpf_public_config {
	unsigned char a_diag;
	unsigned char a_periph;
	unsigned char a_cent;
	unsigned char y_ee_nr_en;
};

struct yuvp1_y_ee_nr_sense_public_config {

	unsigned short edge_sense_0;
	unsigned short delta_edge_sense;
	unsigned short corner_sense_0;
	unsigned short delta_corner_sense;

};

struct yuvp1_y_ee_nr_gain_public_config {

	unsigned char gain_pos_0;
	unsigned char delta_gain_posi;
	unsigned char gain_neg_0;
	unsigned char delta_gain_neg;

};

struct yuvp1_y_ee_nr_clip_public_config {

	unsigned char clip_pos_0;
	unsigned char delta_clip_posi;
	unsigned char clip_neg_0;
	unsigned char delta_clip_neg;

};

struct yuvp1_y_ee_nr_frng_public_config {

	unsigned char gain_exp;
	unsigned short min_edge;
	unsigned char lin_seg_param;
	unsigned char t1;
	unsigned char t2;
};

struct yuvp1_y_ee_nr_diag_public_config {

	unsigned char diag_disc_g;
	unsigned char hvw_hor;
	unsigned char dw_hor;
	unsigned char hvw_diag;
	unsigned char dw_diag;
};

struct yuvp1_y_ee_nr_fc_coring_public_config {

	unsigned short pos_0;
	unsigned short pos_delta;
	unsigned short neg_0;
	unsigned short neg_delta;

};

struct yuvp1_y_ee_nr_public_config {

	struct yuvp1_y_ee_nr_lpf_public_config lpf;
	struct yuvp1_y_ee_nr_sense_public_config sense;
	struct yuvp1_y_ee_nr_gain_public_config gain;
	struct yuvp1_y_ee_nr_clip_public_config clip;
	struct yuvp1_y_ee_nr_frng_public_config frng;
	struct yuvp1_y_ee_nr_diag_public_config diag;
	struct yuvp1_y_ee_nr_fc_coring_public_config fc_coring;

};

struct ia_css_2500_yuvp1_b0_kernel_config {
	struct yuvp1_y_ee_nr_public_config y_ee_nr;
	struct yuvp1_yds_public_config yds;
	struct yuvp1_chnr_public_config chnr;
};

/** @brief Print YUVP1_B0 public configuration
 *
 * @param	cfg	The pointer to configuration data
 * @return	None
 *
 * Print YUVP1_B0 public configuration.
 */
void ia_css_yuvp1_b0_public_cfg_dump(
	const struct ia_css_2500_yuvp1_b0_kernel_config *cfg);

/** @brief Compare two YUVP1_B0 public configurations
 *
 * @param	cfg1	The pointer to first configuration data
 * @param	cfg2	The pointer to second configuration data
 * @param	cfg_dump	Configurations are printed in case of
 *   			   mismatch
 * @return	true - match, false - not match
 *
 * Compare two YUVP1_B0 public configurations
 */
bool ia_css_yuvp1_b0_public_cfg_compare(
	const struct ia_css_2500_yuvp1_b0_kernel_config *cfg1,
	const struct ia_css_2500_yuvp1_b0_kernel_config *cfg2,
	bool cfg_dump);

#endif