blob: 3e71768b5e0e4a1c93a7bf0846f5151334e5ddf0 [file] [log] [blame]
/*
* 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