summaryrefslogtreecommitdiff
path: root/include/ia_imaging/ia_dvs2_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ia_imaging/ia_dvs2_types.h')
-rw-r--r--include/ia_imaging/ia_dvs2_types.h190
1 files changed, 190 insertions, 0 deletions
diff --git a/include/ia_imaging/ia_dvs2_types.h b/include/ia_imaging/ia_dvs2_types.h
new file mode 100644
index 0000000..105cd4b
--- /dev/null
+++ b/include/ia_imaging/ia_dvs2_types.h
@@ -0,0 +1,190 @@
+/*
+ * 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.
+ */
+/** @file ia_dvs2_types.h
+ * IA_DVS2 data types. This provides data types to access to the DVS2 Host Library.
+ */
+#ifndef _IA_DVS2_TYPES_H_
+#define _IA_DVS2_TYPES_H_
+#include <stdint.h>
+#include "ia_types.h"
+
+/** DVS2 Algorithm.
+ * These settings specify the nembers of correction axes.
+ * ia_dvs2_algorihm_0_axis is special mode. In this case, library does not compensate the
+ * motion, works for digital zoom / scaling.
+ */
+typedef enum {
+ ia_dvs2_algorihm_0_axis = 0, /**< 0 axis, means digital zoom/scaling mode */
+ ia_dvs2_algorihm_2_axis = 2, /**< 2 axis */
+ ia_dvs2_algorihm_4_axis = 4, /**< 4 axis */
+ ia_dvs2_algorihm_6_axis = 6, /**< 6 axis */
+ ia_dvs2_algorihm_max_axis = ia_dvs2_algorihm_6_axis, /**< maximum axis */
+} ia_dvs2_algorithm_version;
+
+/** DVS2 resolution configuration.
+ * These parameter are DVS2 resolution configuration.
+ */
+typedef struct {
+ int width; /**< width [pixel] */
+ int height; /**< height [pixel] */
+} ia_dvs2_resolution;
+
+/** DVS2 BQ resolution.
+ * These parameter are BQ resolution configuration.
+ */
+typedef struct {
+ int width_bq; /**< width [BQ] */
+ int height_bq; /**< height [BQ] */
+} ia_dvs2_bq_resolution;
+
+/** GDC Scan Mode
+ * These settings specify the gdc scan mode.
+ */
+typedef enum {
+ ia_dvs2_gdc_scan_mode_stb = 0, /**< STB (slide to the bottom) */
+ ia_dvs2_gdc_scan_mode_str, /**< STR (slide to the right) */
+} ia_dvs2_gdc_scan_mode;
+
+/** GDC Interpolation Method
+ * These settings specify the gdc interpolation method.
+ */
+typedef enum {
+ ia_dvs2_gdc_interpolation_nnd = 0, /**< NND (nearest neighbor) */
+ ia_dvs2_gdc_interpolation_bli, /**< BLI (bilinear) */
+ ia_dvs2_gdc_interpolation_bci, /**< BCI (bicubic) */
+ ia_dvs2_gdc_interpolation_lut, /**< LUT (look up table) */
+} ia_dvs2_gdc_interpolation;
+
+/** GDC Performance Point
+ * These settings specify the gdc performance point.
+ */
+typedef enum {
+ ia_dvs2_gdc_performance_point_1x1 = 0, /**< 1x1 */
+ ia_dvs2_gdc_performance_point_2x1, /**< 2x1 */
+ ia_dvs2_gdc_performance_point_1x2, /**< 1x2 */
+ ia_dvs2_gdc_performance_point_2x2, /**< 2x2 */
+} ia_dvs2_gdc_performance_point;
+
+/** GDC hardware configuration
+ * These parametes are the gdc hardware block configuration.
+ * dvs2 library use these parameters just check the gdc constraints,
+ * do NOT use these parameters for any controls nor calculations.
+ */
+typedef struct {
+ ia_dvs2_gdc_scan_mode scan_mode;
+ ia_dvs2_gdc_interpolation interpolation;
+ ia_dvs2_gdc_performance_point performance_point;
+} ia_dvs2_gdc_hw_configuration;
+
+/** GDC distortion coefficients.
+ * This structure contains GDC distortion coefficients.
+ */
+typedef struct {
+ float gdc_k1; /**< Distortion Coefficient K1 */
+ float gdc_k2; /**< Distortion Coefficient K2 */
+ float gdc_k3; /**< Distortion Coefficient K3 */
+ float gdc_p1; /**< Distortion Coefficient P1 */
+ float gdc_p2; /**< Distortion Coefficient P2 */
+} ia_dvs2_distortion_coefs;
+
+/** DVS configuration.
+ * This structure contains DVS configuration.
+ */
+typedef struct {
+ ia_dvs2_algorithm_version num_axis; /**< algorithm */
+ float nonblanking_ratio; /**< effective vertical scan ratio, used for rolling correction (Non-blanking ration of frame interval) */
+ int grid_size; /**< isp process grid size [BQ] */
+ ia_dvs2_bq_resolution source_bq; /**< GDC source image size [BQ] */
+ ia_dvs2_bq_resolution output_bq; /**< GDC output image size [BQ] */
+ ia_dvs2_bq_resolution envelope_bq; /**< GDC effective envelope size [BQ] */
+ ia_dvs2_bq_resolution ispfilter_bq; /**< isp pipe filter size [BQ] */
+ int gdc_shift_x; /**< shift value of morphing table depend on ISP pipe. [chroma pixel] */
+ int gdc_shift_y; /**< shift value of morphing table depend on ISP pipe. [chroma pixel] */
+ unsigned int oxdim_y; /**< output block width for Y plane [pixel] */
+ unsigned int oydim_y; /**< output block height for Y plane [pixel] */
+ unsigned int oxdim_uv; /**< output block width for U/V plane [chroma pixel] */
+ unsigned int oydim_uv; /**< output block height for U/V plane [chroma pixel] */
+ ia_dvs2_gdc_hw_configuration hw_config; /**< GDC h/w configuration */
+} ia_dvs2_configuration;
+
+/** DVS2 text log setup.
+ * This structure contains the text log infomation.
+ */
+typedef struct {
+ const char *path; /**< path of log file */
+ int enable; /**< enable/disable of the log function */
+} ia_dvs2_log_setup;
+
+/** DVS2 binary dump data type.
+ * This enum contains the binary dump record data type.
+ */
+typedef enum {
+ eBDSupportConfig,
+ eBDGdcConfig,
+ eBDCharacteristics,
+ eBDBasicConfig,
+ eBDDigitalZoomRatio,
+ eBDDvisParam,
+ eBDGdcParam,
+ eBDMatMotion,
+ eBDMatRoll,
+ eBDTimeStamp,
+ eBDFrameCount,
+ eBDBorderFlag,
+ eBDMotionVector,
+ eBDVProd,
+ eBDHProd,
+ eBDLocalMotionDyn,
+ eBDLocalMotionDxn,
+ eBDLocalMotionWy,
+ eBDLocalMotionWx,
+ eBDVProdRawEvenReal,
+ eBDVProdRawEvenImag,
+ eBDVProdRawOddReal,
+ eBDVProdRawOddImag,
+ eBDHProdRawEvenReal,
+ eBDHProdRawEvenImag,
+ eBDHProdRawOddReal,
+ eBDHProdRawOddImag,
+ eBDCompMotionV,
+ eBDCompMotionH,
+ eBDMorphingTableYH,
+ eBDMorphingTableYV,
+ eBDMorphingTableUVH,
+ eBDMorphingTableUVV,
+ eBDsetNonBlankingRatio,
+ eBDsetMinLocalMotion,
+ eBDsetCutOffFrequency,
+ eBDsetDistortionCoeff,
+ eBDsetWaveLength,
+ eBDVelocity,
+ eBDPrevMotion,
+ eBDPrevDisplace,
+ eBDDisplaceLimit,
+ /*---------*/
+ eBDNumsItem
+ /* Do NOT add any items from here. */
+} ia_dvs2_binary_dump_item;
+
+/** DVS2 binary dump parameter.
+ * This structure contains parameter for binary dump.
+ */
+typedef struct {
+ int frames;
+ bool endless;
+ int binaryDumpFailed;
+} ia_dvs2_binary_dump_params;
+#endif // _IA_DVS2_TYPES_H_