547 lines
25 KiB
C
547 lines
25 KiB
C
// Copyright (C) 2018-2025 Intel Corporation
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
/**
|
|
* @brief This is a header file for prepostprocess C API, which is a C wrapper for ov::preprocess class.
|
|
* Main class for adding pre- and post- processing steps to existing ov::Model
|
|
* @file ov_prepostprocess.h
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "openvino/c/ov_common.h"
|
|
#include "openvino/c/ov_layout.h"
|
|
#include "openvino/c/ov_model.h"
|
|
#include "openvino/c/ov_tensor.h"
|
|
|
|
/**
|
|
* @struct ov_preprocess_prepostprocessor_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_prepostprocessor_t from ov_preprocess_prepostprocessor
|
|
*/
|
|
typedef struct ov_preprocess_prepostprocessor ov_preprocess_prepostprocessor_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_input_info_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_input_info_t from ov_preprocess_input_info
|
|
*/
|
|
typedef struct ov_preprocess_input_info ov_preprocess_input_info_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_input_tensor_info_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_input_tensor_info_t from ov_preprocess_input_tensor_info
|
|
*/
|
|
typedef struct ov_preprocess_input_tensor_info ov_preprocess_input_tensor_info_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_output_info_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_output_info_t from ov_preprocess_output_info
|
|
*/
|
|
typedef struct ov_preprocess_output_info ov_preprocess_output_info_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_output_tensor_info_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_output_tensor_info_t from ov_preprocess_output_tensor_info
|
|
*/
|
|
typedef struct ov_preprocess_output_tensor_info ov_preprocess_output_tensor_info_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_input_model_info_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_input_model_info_t from ov_preprocess_input_model_info
|
|
*/
|
|
typedef struct ov_preprocess_input_model_info ov_preprocess_input_model_info_t;
|
|
|
|
/**
|
|
* @struct ov_preprocess_preprocess_steps_t
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief type define ov_preprocess_preprocess_steps_t from ov_preprocess_preprocess_steps
|
|
*/
|
|
typedef struct ov_preprocess_preprocess_steps ov_preprocess_preprocess_steps_t;
|
|
|
|
/**
|
|
* @enum ov_color_format_e
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief This enum contains enumerations for color format.
|
|
*/
|
|
typedef enum {
|
|
UNDEFINE = 0U, //!< Undefine color format
|
|
NV12_SINGLE_PLANE, //!< Image in NV12 format as single tensor
|
|
NV12_TWO_PLANES, //!< Image in NV12 format represented as separate tensors for Y and UV planes.
|
|
I420_SINGLE_PLANE, //!< Image in I420 (YUV) format as single tensor
|
|
I420_THREE_PLANES, //!< Image in I420 format represented as separate tensors for Y, U and V planes.
|
|
RGB, //!< Image in RGB interleaved format (3 channels)
|
|
BGR, //!< Image in BGR interleaved format (3 channels)
|
|
GRAY, //!< Image in GRAY format (1 channel)
|
|
RGBX, //!< Image in RGBX interleaved format (4 channels)
|
|
BGRX //!< Image in BGRX interleaved format (4 channels)
|
|
} ov_color_format_e;
|
|
|
|
/**
|
|
* @enum ov_preprocess_resize_algorithm_e
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief This enum contains codes for all preprocess resize algorithm.
|
|
*/
|
|
typedef enum {
|
|
RESIZE_LINEAR, //!< linear algorithm
|
|
RESIZE_CUBIC, //!< cubic algorithm
|
|
RESIZE_NEAREST //!< nearest algorithm
|
|
} ov_preprocess_resize_algorithm_e;
|
|
|
|
/**
|
|
* @enum ov_padding_mode_e
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @brief This enum contains enumeration for padding mode.
|
|
*/
|
|
typedef enum {
|
|
CONSTANT = 0, //!< Pads with given constant value.
|
|
EDGE, //!< Pads with tensor edge values.
|
|
REFLECT, //!< Pads with reflection of tensor data along axis. Values on the edges are not duplicated.
|
|
SYMMETRIC //!< Pads similar like `REFLECT` but values on the edges are duplicated.
|
|
} ov_padding_mode_e;
|
|
|
|
/**
|
|
* @brief Create a ov_preprocess_prepostprocessor_t instance.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param model A pointer to the ov_model_t.
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_create(const ov_model_t* model, ov_preprocess_prepostprocessor_t** preprocess);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_prepostprocessor_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_prepostprocessor_free(ov_preprocess_prepostprocessor_t* preprocess);
|
|
|
|
/**
|
|
* @brief Get the input info of ov_preprocess_prepostprocessor_t instance.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_input_info(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
ov_preprocess_input_info_t** preprocess_input_info);
|
|
|
|
/**
|
|
* @brief Get the input info of ov_preprocess_prepostprocessor_t instance by tensor name.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param tensor_name The name of input.
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_input_info_by_name(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
const char* tensor_name,
|
|
ov_preprocess_input_info_t** preprocess_input_info);
|
|
|
|
/**
|
|
* @brief Get the input info of ov_preprocess_prepostprocessor_t instance by tensor order.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param tensor_index The order of input.
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_input_info_by_index(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
const size_t tensor_index,
|
|
ov_preprocess_input_info_t** preprocess_input_info);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_input_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_input_info_free(ov_preprocess_input_info_t* preprocess_input_info);
|
|
|
|
/**
|
|
* @brief Get a ov_preprocess_input_tensor_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t.
|
|
* @param preprocess_input_tensor_info A pointer to ov_preprocess_input_tensor_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_info_get_tensor_info(const ov_preprocess_input_info_t* preprocess_input_info,
|
|
ov_preprocess_input_tensor_info_t** preprocess_input_tensor_info);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_input_tensor_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_input_tensor_info_free(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info);
|
|
|
|
/**
|
|
* @brief Get a ov_preprocess_preprocess_steps_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param ov_preprocess_input_info_t A pointer to the ov_preprocess_input_info_t.
|
|
* @param preprocess_input_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_info_get_preprocess_steps(const ov_preprocess_input_info_t* preprocess_input_info,
|
|
ov_preprocess_preprocess_steps_t** preprocess_input_steps);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_preprocess_steps_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_steps A pointer to the ov_preprocess_preprocess_steps_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_preprocess_steps_free(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps);
|
|
|
|
/**
|
|
* @brief Add resize operation to model's dimensions.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param resize_algorithm A ov_preprocess_resizeAlgorithm instance
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_resize(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const ov_preprocess_resize_algorithm_e resize_algorithm);
|
|
|
|
/**
|
|
* @brief Add scale preprocess operation. Divide each element of input by specified value.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param value Scaling value
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_scale(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps, float value);
|
|
|
|
/**
|
|
* @brief Add scale preprocess operation. Divide each channel element of input by different specified value.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param values Scaling values array for each channels
|
|
* @param value_size Scaling value size
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_scale_multi_channels(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const float* values,
|
|
const int32_t value_size);
|
|
|
|
/**
|
|
* @brief Add mean preprocess operation. Subtract specified value from each element of input.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param value Value to subtract from each element.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_mean(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps, float value);
|
|
|
|
/**
|
|
* @brief Add mean preprocess operation. Subtract each channel element of input by different specified value.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param values Value array to subtract from each element.
|
|
* @param value_size Mean value size
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_mean_multi_channels(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const float* values,
|
|
const int32_t value_size);
|
|
|
|
/**
|
|
* @brief Crop input tensor between begin and end coordinates.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param begin Pointer to begin indexes for input tensor cropping.
|
|
* Negative values represent counting elements from the end of input tensor
|
|
* @param begin_size The size of begin array
|
|
* @param end Pointer to end indexes for input tensor cropping.
|
|
* End indexes are exclusive, which means values including end edge are not included in the output slice.
|
|
* Negative values represent counting elements from the end of input tensor
|
|
* @param end_size The size of end array
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_crop(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
int32_t* begin,
|
|
int32_t begin_size,
|
|
int32_t* end,
|
|
int32_t end_size);
|
|
|
|
/**
|
|
* @brief Add 'convert layout' operation to specified layout.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @param layout A point to ov_layout_t
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_convert_layout(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
ov_layout_t* layout);
|
|
|
|
/**
|
|
* @brief Reverse channels operation.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_process_steps A pointer to ov_preprocess_preprocess_steps_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_reverse_channels(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t precesion.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param element_type A point to element_type
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_element_type(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const ov_element_type_e element_type);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t color format.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param colorFormat The enumerate of colorFormat
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_color_format(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const ov_color_format_e colorFormat);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t color format with subname.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param colorFormat The enumerate of colorFormat
|
|
* @param sub_names_size The size of sub_names
|
|
* @param ... variadic params sub_names Optional list of sub-names assigned for each plane (e.g. "Y", "UV").
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_color_format_with_subname(
|
|
ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const ov_color_format_e colorFormat,
|
|
const size_t sub_names_size,
|
|
...);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t spatial_static_shape.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param input_height The height of input
|
|
* @param input_width The width of input
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_spatial_static_shape(
|
|
ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const size_t input_height,
|
|
const size_t input_width);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t memory type.
|
|
* @ingroup prepostprocess
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param mem_type Memory type. Refer to ov_remote_context.h to get memory type string info.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_memory_type(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const char* mem_type);
|
|
|
|
/**
|
|
* @brief Convert ov_preprocess_preprocess_steps_t element type.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_steps A pointer to the ov_preprocess_preprocess_steps_t.
|
|
* @param element_type preprocess input element type.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_convert_element_type(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const ov_element_type_e element_type);
|
|
|
|
/**
|
|
* @brief Convert ov_preprocess_preprocess_steps_t color.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_steps A pointer to the ov_preprocess_preprocess_steps_t.
|
|
* @param colorFormat The enumerate of colorFormat.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_convert_color(ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const ov_color_format_e colorFormat);
|
|
|
|
/**
|
|
* @brief Helper function to reuse element type and shape from user's created tensor.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param tensor A point to ov_tensor_t
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_from(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
const ov_tensor_t* tensor);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t layout.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_tensor_info A pointer to the ov_preprocess_input_tensor_info_t.
|
|
* @param layout A point to ov_layout_t
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_tensor_info_set_layout(ov_preprocess_input_tensor_info_t* preprocess_input_tensor_info,
|
|
ov_layout_t* layout);
|
|
|
|
/**
|
|
* @brief Get the output info of ov_preprocess_output_info_t instance.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param preprocess_output_info A pointer to the ov_preprocess_output_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_output_info(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
ov_preprocess_output_info_t** preprocess_output_info);
|
|
|
|
/**
|
|
* @brief Get the output info of ov_preprocess_output_info_t instance.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param tensor_index The tensor index
|
|
* @param preprocess_output_info A pointer to the ov_preprocess_output_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_output_info_by_index(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
const size_t tensor_index,
|
|
ov_preprocess_output_info_t** preprocess_output_info);
|
|
|
|
/**
|
|
* @brief Get the output info of ov_preprocess_output_info_t instance.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param tensor_name The name of input.
|
|
* @param preprocess_output_info A pointer to the ov_preprocess_output_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_get_output_info_by_name(const ov_preprocess_prepostprocessor_t* preprocess,
|
|
const char* tensor_name,
|
|
ov_preprocess_output_info_t** preprocess_output_info);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_output_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_output_info A pointer to the ov_preprocess_output_info_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_output_info_free(ov_preprocess_output_info_t* preprocess_output_info);
|
|
|
|
/**
|
|
* @brief Get a ov_preprocess_input_tensor_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_output_info A pointer to the ov_preprocess_output_info_t.
|
|
* @param preprocess_output_tensor_info A pointer to the ov_preprocess_output_tensor_info_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_output_info_get_tensor_info(const ov_preprocess_output_info_t* preprocess_output_info,
|
|
ov_preprocess_output_tensor_info_t** preprocess_output_tensor_info);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_output_tensor_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_output_tensor_info A pointer to the ov_preprocess_output_tensor_info_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_output_tensor_info_free(ov_preprocess_output_tensor_info_t* preprocess_output_tensor_info);
|
|
|
|
/**
|
|
* @brief Set ov_preprocess_input_tensor_info_t precesion.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_output_tensor_info A pointer to the ov_preprocess_output_tensor_info_t.
|
|
* @param element_type A point to element_type
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_output_set_element_type(ov_preprocess_output_tensor_info_t* preprocess_output_tensor_info,
|
|
const ov_element_type_e element_type);
|
|
|
|
/**
|
|
* @brief Get current input model information.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_info A pointer to the ov_preprocess_input_info_t.
|
|
* @param preprocess_input_model_info A pointer to the ov_preprocess_input_model_info_t
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_info_get_model_info(const ov_preprocess_input_info_t* preprocess_input_info,
|
|
ov_preprocess_input_model_info_t** preprocess_input_model_info);
|
|
|
|
/**
|
|
* @brief Release the memory allocated by ov_preprocess_input_model_info_t.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_model_info A pointer to the ov_preprocess_input_model_info_t to free memory.
|
|
*/
|
|
OPENVINO_C_API(void)
|
|
ov_preprocess_input_model_info_free(ov_preprocess_input_model_info_t* preprocess_input_model_info);
|
|
|
|
/**
|
|
* @brief Set layout for model's input tensor.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess_input_model_info A pointer to the ov_preprocess_input_model_info_t
|
|
* @param layout A point to ov_layout_t
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_input_model_info_set_layout(ov_preprocess_input_model_info_t* preprocess_input_model_info,
|
|
ov_layout_t* layout);
|
|
|
|
/**
|
|
* @brief Adds pre/post-processing operations to function passed in constructor.
|
|
* @ingroup ov_prepostprocess_c_api
|
|
* @param preprocess A pointer to the ov_preprocess_prepostprocessor_t.
|
|
* @param model A pointer to the ov_model_t.
|
|
* @return Status code of the operation: OK(0) for success.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_prepostprocessor_build(const ov_preprocess_prepostprocessor_t* preprocess, ov_model_t** model);
|
|
|
|
/**
|
|
* @brief Add pad preprocess operation. Extends an input tensor on edges with constants.
|
|
*
|
|
* @param preprocess_input_process_steps A pointer to the ov_preprocess_preprocess_steps_t.
|
|
* @param pads_begin Number of padding elements to add at the beginning of each axis.
|
|
* @param pads_begin_size Pads begin size (number of axes).
|
|
* @param pads_end Number of padding elements to add at the end of each axis.
|
|
* @param pads_end_size Pads end size (number of axes).
|
|
* @param value Value to be populated in the padded area (mode=CONSTANT)
|
|
* @param mode Padding mode.
|
|
*/
|
|
OPENVINO_C_API(ov_status_e)
|
|
ov_preprocess_preprocess_steps_pad(const ov_preprocess_preprocess_steps_t* preprocess_input_process_steps,
|
|
const int* const pads_begin,
|
|
size_t pads_begin_size,
|
|
const int* const pads_end,
|
|
size_t pads_end_size,
|
|
float value,
|
|
ov_padding_mode_e mode);
|