summaryrefslogtreecommitdiff
path: root/include/ia_imaging/yuvp2_public.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ia_imaging/yuvp2_public.h')
-rw-r--r--include/ia_imaging/yuvp2_public.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/include/ia_imaging/yuvp2_public.h b/include/ia_imaging/yuvp2_public.h
new file mode 100644
index 0000000..4c1aab4
--- /dev/null
+++ b/include/ia_imaging/yuvp2_public.h
@@ -0,0 +1,145 @@
+/*
+ * 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 _YUVP2_PUBLIC_H_
+#define _YUVP2_PUBLIC_H_
+
+/** @file
+* CSS-API header file for 2500/Skycam color enhancement (YUV_P2 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 "yuvp2_common_defs.h"
+
+/******************
+* Y-TM
+*******************/
+
+struct yuvp2_ytm_public_config {
+ unsigned short entries[YUVP2_YTM_LUT_NUM_OF_ENTRIES];
+ unsigned int ytm_en;
+};
+
+/******************
+* YDS
+*******************/
+struct yuvp2_yds_public_config {
+
+ unsigned char c00;
+ unsigned char c01;
+ unsigned char c02;
+ unsigned char c03;
+ unsigned char c10;
+ unsigned char c11;
+ unsigned char c12;
+ unsigned char c13;
+ unsigned char norm_factor;
+ unsigned char bin_output;
+
+};
+
+/*******************
+* TCC
+********************/
+
+struct yuvp2_tcc_gen_control_public_config {
+ unsigned char blend_shift;
+ unsigned char gain_according_to_y_only;
+ signed char gamma;
+ signed char delta;
+
+};
+
+struct yuvp2_tcc_macc_elem_public_config {
+ signed short A;
+ signed short B;
+ signed short C;
+ signed short D;
+};
+
+struct yuvp2_tcc_macc_table_public_config {
+ struct yuvp2_tcc_macc_elem_public_config entries[YUVP2_TCC_NUM_OF_MACC_TABLE_ELEMENTS];
+};
+
+
+struct yuvp2_tcc_inv_y_lut_public_config {
+ unsigned short entries[YUVP2_TCC_NUM_OF_INV_Y_LUT_ELEMENTS];
+};
+
+
+struct yuvp2_tcc_gain_pcwl_lut_public_config {
+ unsigned short entries[YUVP2_TCC_NUM_OF_GAIN_PCWL_LUT_ELEMENTS];
+};
+
+
+struct yuvp2_tcc_r_sqr_lut_public_config {
+ unsigned short entries[YUVP2_TCC_NUM_OF_R_SQR_LUT_ELEMENTS];
+};
+
+struct yuvp2_tcc_public_config {
+ struct yuvp2_tcc_gen_control_public_config gen_control;
+ struct yuvp2_tcc_macc_table_public_config macc_table;
+ struct yuvp2_tcc_inv_y_lut_public_config inv_y_lut;
+ struct yuvp2_tcc_gain_pcwl_lut_public_config gain_pcwl;
+ struct yuvp2_tcc_r_sqr_lut_public_config r_sqr_lut;
+};
+
+
+/****************************
+* YUVP2 combined
+****************************/
+
+struct ia_css_2500_yuvp2_kernel_config {
+
+ struct yuvp2_ytm_public_config ytm;
+ struct yuvp2_yds_public_config yds2;
+ struct yuvp2_tcc_public_config tcc;
+};
+
+/** @brief Print YUVP2 public configuration
+ *
+ * @param cfg The pointer to configuration data
+ * @return None
+ *
+ * Print YUVP2 public configuration.
+ */
+void ia_css_yuvp2_public_cfg_dump(
+ const struct ia_css_2500_yuvp2_kernel_config *cfg);
+
+/** @brief Compare two YUVP2 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 YUVP2 public configurations
+ */
+bool ia_css_yuvp2_public_cfg_compare(
+ const struct ia_css_2500_yuvp2_kernel_config *cfg1,
+ const struct ia_css_2500_yuvp2_kernel_config *cfg2,
+ bool cfg_dump);
+
+#endif