//==============================================================================
//
// Copyright (c) 2014-2021 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//==============================================================================
# ifndef _DL_ENUMS_HPP_
# define _DL_ENUMS_HPP_
# include "DlSystem/ZdlExportDefine.hpp"
namespace zdl {
namespace DlSystem
{
/** @addtogroup c_plus_plus_apis C++
@ { */
/**
* Enumeration of supported target runtimes .
*/
enum class Runtime_t
{
/// Run the processing on Snapdragon CPU.
/// Data: float 32bit
/// Math: float 32bit
CPU_FLOAT32 = 0 ,
/// Run the processing on the Adreno GPU.
/// Data: float 16bit
/// Math: float 32bit
GPU_FLOAT32_16_HYBRID = 1 ,
/// Run the processing on the Hexagon DSP.
/// Data: 8bit fixed point Tensorflow style format
/// Math: 8bit fixed point Tensorflow style format
DSP_FIXED8_TF = 2 ,
/// Run the processing on the Adreno GPU.
/// Data: float 16bit
/// Math: float 16bit
GPU_FLOAT16 = 3 ,
/// Run the processing on Snapdragon AIX+HVX.
/// Data: 8bit fixed point Tensorflow style format
/// Math: 8bit fixed point Tensorflow style format
AIP_FIXED8_TF = 5 ,
AIP_FIXED_TF = AIP_FIXED8_TF ,
/// Default legacy enum to retain backward compatibility.
/// CPU = CPU_FLOAT32
CPU = CPU_FLOAT32 ,
/// Default legacy enum to retain backward compatibility.
/// GPU = GPU_FLOAT32_16_HYBRID
GPU = GPU_FLOAT32_16_HYBRID ,
/// Default legacy enum to retain backward compatibility.
/// DSP = DSP_FIXED8_TF
DSP = DSP_FIXED8_TF ,
/// Special value indicating the property is unset.
UNSET = - 1
} ;
/**
* Enumeration of runtime available check options .
*/
enum class RuntimeCheckOption_t
{
/// Perform standard runtime available check
DEFAULT = 0 ,
/// Perform standard runtime available check
NORMAL_CHECK = 0 ,
/// Perform basic runtime available check, may be runtime specific
BASIC_CHECK = 1 ,
/// Perform unsignedPD runtime available check
UNSIGNEDPD_CHECK = 2 ,
} ;
/**
* Enumeration of various performance profiles that can be requested .
*/
enum class PerformanceProfile_t
{
/// Run in a standard mode.
/// This mode will be deprecated in the future and replaced with BALANCED.
DEFAULT = 0 ,
/// Run in a balanced mode.
BALANCED = 0 ,
/// Run in high performance mode
HIGH_PERFORMANCE = 1 ,
/// Run in a power sensitive mode, at the expense of performance.
POWER_SAVER = 2 ,
/// Use system settings. SNPE makes no calls to any performance related APIs.
SYSTEM_SETTINGS = 3 ,
/// Run in sustained high performance mode
SUSTAINED_HIGH_PERFORMANCE = 4 ,
/// Run in burst mode
BURST = 5 ,
/// Run in lower clock than POWER_SAVER, at the expense of performance.
LOW_POWER_SAVER = 6 ,
/// Run in higher clock and provides better performance than POWER_SAVER.
HIGH_POWER_SAVER = 7 ,
/// Run in lower balanced mode
LOW_BALANCED = 8 ,
} ;
/**
* Enumeration of various profilngLevels that can be requested .
*/
enum class ProfilingLevel_t
{
/// No profiling.
/// Collects no runtime stats in the DiagLog
OFF = 0 ,
/// Basic profiling
/// Collects some runtime stats in the DiagLog
BASIC = 1 ,
/// Detailed profiling
/// Collects more runtime stats in the DiagLog, including per-layer statistics
/// Performance may be impacted
DETAILED = 2 ,
/// Moderate profiling
/// Collects more runtime stats in the DiagLog, no per-layer statistics
MODERATE = 3
} ;
/**
* Enumeration of various execution priority hints .
*/
enum class ExecutionPriorityHint_t
{
/// Normal priority
NORMAL = 0 ,
/// Higher than normal priority
HIGH = 1 ,
/// Lower priority
LOW = 2
} ;
/** @} */ /* end_addtogroup c_plus_plus_apis C++*/
/**
* Enumeration that lists the supported image encoding formats .
*/
enum class ImageEncoding_t
{
/// For unknown image type. Also used as a default value for ImageEncoding_t.
UNKNOWN = 0 ,
/// The RGB format consists of 3 bytes per pixel: one byte for
/// Red, one for Green, and one for Blue. The byte ordering is
/// endian independent and is always in RGB byte order.
RGB = 1 ,
/// The ARGB32 format consists of 4 bytes per pixel: one byte for
/// Red, one for Green, one for Blue, and one for the alpha channel.
/// The alpha channel is ignored. The byte ordering depends on the
/// underlying CPU. For little endian CPUs, the byte order is BGRA.
/// For big endian CPUs, the byte order is ARGB.
ARGB32 = 2 ,
/// The RGBA format consists of 4 bytes per pixel: one byte for
/// Red, one for Green, one for Blue, and one for the alpha channel.
/// The alpha channel is ignored. The byte ordering is endian independent
/// and is always in RGBA byte order.
RGBA = 3 ,
/// The GRAYSCALE format is for 8-bit grayscale.
GRAYSCALE = 4 ,
/// NV21 is the Android version of YUV. The Chrominance is down
/// sampled and has a subsampling ratio of 4:2:0. Note that this
/// image format has 3 channels, but the U and V channels
/// are subsampled. For every four Y pixels there is one U and one V pixel. @newpage
NV21 = 5 ,
/// The BGR format consists of 3 bytes per pixel: one byte for
/// Red, one for Green and one for Blue. The byte ordering is
/// endian independent and is always BGR byte order.
BGR = 6
} ;
/**
* Enumeration that lists the supported LogLevels that can be set by users .
*/
enum class LogLevel_t
{
/// Enumeration variable to be used by user to set logging level to FATAL.
LOG_FATAL = 0 ,
/// Enumeration variable to be used by user to set logging level to ERROR.
LOG_ERROR = 1 ,
/// Enumeration variable to be used by user to set logging level to WARN.
LOG_WARN = 2 ,
/// Enumeration variable to be used by user to set logging level to INFO.
LOG_INFO = 3 ,
/// Enumeration variable to be used by user to set logging level to VERBOSE.
LOG_VERBOSE = 4
} ;
typedef enum : int
{
UNSPECIFIED = 0 ,
FLOATING_POINT_32 = 1 ,
FLOATING_POINT_16 = 2 ,
FIXED_POINT_8 = 3 ,
FIXED_POINT_16 = 4
} IOBufferDataType_t ;
} } // namespaces end
# endif