ipptypes.h 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107
  1. /*
  2. // Copyright 1999 2016 Intel Corporation All Rights Reserved.
  3. //
  4. // The source code, information and material ("Material") contained herein is
  5. // owned by Intel Corporation or its suppliers or licensors, and title
  6. // to such Material remains with Intel Corporation or its suppliers or
  7. // licensors. The Material contains proprietary information of Intel
  8. // or its suppliers and licensors. The Material is protected by worldwide
  9. // copyright laws and treaty provisions. No part of the Material may be used,
  10. // copied, reproduced, modified, published, uploaded, posted, transmitted,
  11. // distributed or disclosed in any way without Intel's prior express written
  12. // permission. No license under any patent, copyright or other intellectual
  13. // property rights in the Material is granted to or conferred upon you,
  14. // either expressly, by implication, inducement, estoppel or otherwise.
  15. // Any license under such intellectual property rights must be express and
  16. // approved by Intel in writing.
  17. //
  18. // Unless otherwise agreed by Intel in writing,
  19. // you may not remove or alter this notice or any other notice embedded in
  20. // Materials by Intel or Intel's suppliers or licensors in any way.
  21. //
  22. */
  23. /*
  24. // Intel(R) Integrated Performance Primitives
  25. // Derivative Types and Macro Definitions
  26. //
  27. // The main purpose of this header file is
  28. // to support compatibility with the legacy
  29. // domains until their end of life.
  30. //
  31. */
  32. #ifndef __IPPTYPES_H__
  33. #define __IPPTYPES_H__
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /*****************************************************************************/
  38. /* Below are ippCore domain specific definitions */
  39. /*****************************************************************************/
  40. #if !defined( _OWN_BLDPCS )
  41. #define ippCPUID_MMX 0x00000001 /* Intel Architecture MMX technology supported */
  42. #define ippCPUID_SSE 0x00000002 /* Streaming SIMD Extensions */
  43. #define ippCPUID_SSE2 0x00000004 /* Streaming SIMD Extensions 2 */
  44. #define ippCPUID_SSE3 0x00000008 /* Streaming SIMD Extensions 3 */
  45. #define ippCPUID_SSSE3 0x00000010 /* Supplemental Streaming SIMD Extensions 3 */
  46. #define ippCPUID_MOVBE 0x00000020 /* The processor supports MOVBE instruction */
  47. #define ippCPUID_SSE41 0x00000040 /* Streaming SIMD Extensions 4.1 */
  48. #define ippCPUID_SSE42 0x00000080 /* Streaming SIMD Extensions 4.2 */
  49. #define ippCPUID_AVX 0x00000100 /* Advanced Vector Extensions instruction set */
  50. #define ippAVX_ENABLEDBYOS 0x00000200 /* The operating system supports AVX */
  51. #define ippCPUID_AES 0x00000400 /* AES instruction */
  52. #define ippCPUID_CLMUL 0x00000800 /* PCLMULQDQ instruction */
  53. #define ippCPUID_ABR 0x00001000 /* Reserved */
  54. #define ippCPUID_RDRAND 0x00002000 /* Read Random Number instructions */
  55. #define ippCPUID_F16C 0x00004000 /* Float16 instructions */
  56. #define ippCPUID_AVX2 0x00008000 /* Advanced Vector Extensions 2 instruction set */
  57. #define ippCPUID_ADCOX 0x00010000 /* ADCX and ADOX instructions */
  58. #define ippCPUID_RDSEED 0x00020000 /* The RDSEED instruction */
  59. #define ippCPUID_PREFETCHW 0x00040000 /* The PREFETCHW instruction */
  60. #define ippCPUID_SHA 0x00080000 /* Intel (R) SHA Extensions */
  61. #define ippCPUID_AVX512F 0x00100000 /* AVX-512 Foundation instructions */
  62. #define ippCPUID_AVX512CD 0x00200000 /* AVX-512 Conflict Detection instructions */
  63. #define ippCPUID_AVX512ER 0x00400000 /* AVX-512 Exponential & Reciprocal instructions*/
  64. #define ippCPUID_AVX512PF 0x00800000 /* AVX-512 Prefetch instructions */
  65. #define ippCPUID_AVX512BW 0x01000000 /* AVX-512 Byte & Word instructions */
  66. #define ippCPUID_AVX512DQ 0x02000000 /* AVX-512 DWord & QWord instructions */
  67. #define ippCPUID_AVX512VL 0x04000000 /* AVX-512 Vector Length extensions */
  68. #define ippCPUID_KNC 0x80000000 /* Intel(R) Xeon Phi(TM) Coprocessor */
  69. #if defined( _WIN32 ) || defined ( _WIN64 )
  70. #define ippCPUID_NOCHECK 0x8000000000000000L /* Force ippSetCpuFeatures to set CPU features without check */
  71. #else
  72. #define ippCPUID_NOCHECK 0x8000000000000000LL
  73. #endif
  74. #if defined( _WIN32 ) || defined ( _WIN64 )
  75. #define ippCPUID_GETINFO_A 0x616f666e69746567L /* Force ipp_GetCpuFeatures to work as cpuid instruction */
  76. #else
  77. #define ippCPUID_GETINFO_A 0x616f666e69746567LL
  78. #endif
  79. #define IPP_COUNT_OF( obj ) (sizeof(obj)/sizeof(obj[0]))
  80. /*****************************************************************************/
  81. /* Below are ippSP domain specific definitions */
  82. /*****************************************************************************/
  83. typedef enum {
  84. ippRndZero,
  85. ippRndNear,
  86. ippRndFinancial,
  87. ippRndHintAccurate=0x10
  88. } IppRoundMode;
  89. typedef enum {
  90. ippAlgHintNone,
  91. ippAlgHintFast,
  92. ippAlgHintAccurate
  93. } IppHintAlgorithm;
  94. typedef enum {
  95. ippCmpLess,
  96. ippCmpLessEq,
  97. ippCmpEq,
  98. ippCmpGreaterEq,
  99. ippCmpGreater
  100. } IppCmpOp;
  101. typedef enum {
  102. ippAlgAuto = 0x00000000,
  103. ippAlgDirect = 0x00000001,
  104. ippAlgFFT = 0x00000002,
  105. ippAlgMask = 0x000000FF
  106. } IppAlgType;
  107. typedef enum {
  108. ippsNormNone = 0x00000000, /* default */
  109. ippsNormA = 0x00000100, /* biased normalization */
  110. ippsNormB = 0x00000200, /* unbiased normalization */
  111. ippsNormMask = 0x0000FF00
  112. } IppsNormOp;
  113. typedef enum {
  114. ippNormInf = 0x00000001,
  115. ippNormL1 = 0x00000002,
  116. ippNormL2 = 0x00000004
  117. } IppNormType;
  118. enum {
  119. IPP_FFT_DIV_FWD_BY_N = 1,
  120. IPP_FFT_DIV_INV_BY_N = 2,
  121. IPP_FFT_DIV_BY_SQRTN = 4,
  122. IPP_FFT_NODIV_BY_ANY = 8
  123. };
  124. enum {
  125. IPP_DIV_FWD_BY_N = 1,
  126. IPP_DIV_INV_BY_N = 2,
  127. IPP_DIV_BY_SQRTN = 4,
  128. IPP_NODIV_BY_ANY = 8
  129. };
  130. typedef struct {
  131. Ipp32f rho;
  132. Ipp32f theta;
  133. } IppPointPolar;
  134. typedef enum {ippWinBartlett,ippWinBlackman,ippWinHamming,ippWinHann,ippWinRect} IppWinType;
  135. typedef enum { ippButterworth, ippChebyshev1 } IppsIIRFilterType;
  136. typedef enum { ippZCR=0, ippZCXor, ippZCC } IppsZCType;
  137. #if !defined( _OWN_BLDPCS )
  138. typedef struct {
  139. int left;
  140. int right;
  141. } IppsROI;
  142. typedef struct RandUniState_8u IppsRandUniState_8u;
  143. typedef struct RandUniState_16s IppsRandUniState_16s;
  144. typedef struct RandUniState_32f IppsRandUniState_32f;
  145. typedef struct RandUniState_64f IppsRandUniState_64f;
  146. typedef struct RandGaussState_8u IppsRandGaussState_8u;
  147. typedef struct RandGaussState_16s IppsRandGaussState_16s;
  148. typedef struct RandGaussState_32f IppsRandGaussState_32f;
  149. typedef struct RandGaussState_64f IppsRandGaussState_64f;
  150. typedef struct FFTSpec_C_32fc IppsFFTSpec_C_32fc;
  151. typedef struct FFTSpec_C_32f IppsFFTSpec_C_32f;
  152. typedef struct FFTSpec_R_32f IppsFFTSpec_R_32f;
  153. typedef struct FFTSpec_C_64fc IppsFFTSpec_C_64fc;
  154. typedef struct FFTSpec_C_64f IppsFFTSpec_C_64f;
  155. typedef struct FFTSpec_R_64f IppsFFTSpec_R_64f;
  156. typedef struct DFTSpec_C_32fc IppsDFTSpec_C_32fc;
  157. typedef struct DFTSpec_C_32f IppsDFTSpec_C_32f;
  158. typedef struct DFTSpec_R_32f IppsDFTSpec_R_32f;
  159. typedef struct DFTSpec_C_64fc IppsDFTSpec_C_64fc;
  160. typedef struct DFTSpec_C_64f IppsDFTSpec_C_64f;
  161. typedef struct DFTSpec_R_64f IppsDFTSpec_R_64f;
  162. typedef struct DCTFwdSpec_32f IppsDCTFwdSpec_32f;
  163. typedef struct DCTInvSpec_32f IppsDCTInvSpec_32f;
  164. typedef struct DCTFwdSpec_64f IppsDCTFwdSpec_64f;
  165. typedef struct DCTInvSpec_64f IppsDCTInvSpec_64f;
  166. typedef struct sWTFwdState_32f IppsWTFwdState_32f;
  167. typedef struct sWTFwdState_8u32f IppsWTFwdState_8u32f;
  168. typedef struct sWTFwdState_16s32f IppsWTFwdState_16s32f;
  169. typedef struct sWTFwdState_16u32f IppsWTFwdState_16u32f;
  170. typedef struct sWTInvState_32f IppsWTInvState_32f;
  171. typedef struct sWTInvState_32f8u IppsWTInvState_32f8u;
  172. typedef struct sWTInvState_32f16s IppsWTInvState_32f16s;
  173. typedef struct sWTInvState_32f16u IppsWTInvState_32f16u;
  174. typedef struct IIRState_32f IppsIIRState_32f;
  175. typedef struct IIRState_32fc IppsIIRState_32fc;
  176. typedef struct IIRState32f_16s IppsIIRState32f_16s;
  177. typedef struct IIRState32fc_16sc IppsIIRState32fc_16sc;
  178. typedef struct IIRState_64f IppsIIRState_64f;
  179. typedef struct IIRState_64fc IppsIIRState_64fc;
  180. typedef struct IIRState64f_32f IppsIIRState64f_32f;
  181. typedef struct IIRState64fc_32fc IppsIIRState64fc_32fc;
  182. typedef struct IIRState64f_32s IppsIIRState64f_32s;
  183. typedef struct IIRState64fc_32sc IppsIIRState64fc_32sc;
  184. typedef struct IIRState64f_16s IppsIIRState64f_16s;
  185. typedef struct IIRState64fc_16sc IppsIIRState64fc_16sc;
  186. typedef struct FIRSpec_32f IppsFIRSpec_32f;
  187. typedef struct FIRSpec_64f IppsFIRSpec_64f;
  188. typedef struct FIRSpec_32fc IppsFIRSpec_32fc;
  189. typedef struct FIRSpec_64fc IppsFIRSpec_64fc;
  190. typedef struct FIRLMSState_32f IppsFIRLMSState_32f;
  191. typedef struct FIRLMSState32f_16s IppsFIRLMSState32f_16s;
  192. typedef struct HilbertSpec IppsHilbertSpec;
  193. typedef struct FIRSparseState_32f IppsFIRSparseState_32f;
  194. typedef struct IIRSparseState_32f IppsIIRSparseState_32f;
  195. typedef struct ResamplingPolyphase_16s IppsResamplingPolyphase_16s;
  196. typedef struct ResamplingPolyphaseFixed_16s IppsResamplingPolyphaseFixed_16s;
  197. typedef struct ResamplingPolyphase_32f IppsResamplingPolyphase_32f;
  198. typedef struct ResamplingPolyphaseFixed_32f IppsResamplingPolyphaseFixed_32f;
  199. #endif /* _OWN_BLDPCS */
  200. /*****************************************************************************/
  201. /* Below are ippIP domain specific definitions */
  202. /*****************************************************************************/
  203. #define IPP_TEMPORAL_COPY 0x0
  204. #define IPP_NONTEMPORAL_STORE 0x01
  205. #define IPP_NONTEMPORAL_LOAD 0x02
  206. typedef int IppEnum;
  207. #define IPP_DEG_TO_RAD( deg ) ( (deg)/180.0 * IPP_PI )
  208. typedef enum {
  209. ippiNormNone = 0x00000000, /* default */
  210. ippiNorm = 0x00000100, /* normalized form */
  211. ippiNormCoefficient = 0x00000200, /* correlation coefficient in the range [-1.0 ... 1.0] */
  212. ippiNormMask = 0x0000FF00
  213. } IppiNormOp;
  214. typedef enum {
  215. ippiROIFull = 0x00000000,
  216. ippiROIValid = 0x00010000,
  217. ippiROISame = 0x00020000,
  218. ippiROIMask = 0x00FF0000
  219. } IppiROIShape;
  220. typedef enum {
  221. ippC0 = 0,
  222. ippC1 = 1,
  223. ippC2 = 2,
  224. ippC3 = 3,
  225. ippC4 = 4,
  226. ippP2 = 5,
  227. ippP3 = 6,
  228. ippP4 = 7,
  229. ippAC1 = 8,
  230. ippAC4 = 9,
  231. ippA0C4 = 10,
  232. ippAP4 = 11
  233. } IppChannels;
  234. typedef enum _IppiBorderType {
  235. ippBorderConst = 0,
  236. ippBorderRepl = 1,
  237. ippBorderWrap = 2,
  238. ippBorderMirror = 3, /* left border: 012... -> 21012... */
  239. ippBorderMirrorR = 4, /* left border: 012... -> 210012... */
  240. ippBorderInMem = 6,
  241. ippBorderTransp = 7,
  242. ippBorderInMemTop = 0x0010,
  243. ippBorderInMemBottom = 0x0020,
  244. ippBorderInMemLeft = 0x0040,
  245. ippBorderInMemRight = 0x0080
  246. } IppiBorderType;
  247. typedef enum {
  248. ippAxsHorizontal,
  249. ippAxsVertical,
  250. ippAxsBoth,
  251. ippAxs45,
  252. ippAxs135
  253. } IppiAxis;
  254. typedef struct {
  255. int x;
  256. int y;
  257. int width;
  258. int height;
  259. } IppiRect;
  260. typedef struct {
  261. int x;
  262. int y;
  263. } IppiPoint;
  264. typedef struct {
  265. int width;
  266. int height;
  267. } IppiSize;
  268. typedef struct {
  269. Ipp32f x;
  270. Ipp32f y;
  271. } IppiPoint_32f;
  272. typedef enum _IppiMaskSize {
  273. ippMskSize1x3 = 13,
  274. ippMskSize1x5 = 15,
  275. ippMskSize3x1 = 31,
  276. ippMskSize3x3 = 33,
  277. ippMskSize5x1 = 51,
  278. ippMskSize5x5 = 55
  279. } IppiMaskSize;
  280. enum {
  281. IPPI_INTER_NN = 1,
  282. IPPI_INTER_LINEAR = 2,
  283. IPPI_INTER_CUBIC = 4,
  284. IPPI_INTER_CUBIC2P_BSPLINE, /* two-parameter cubic filter (B=1, C=0) */
  285. IPPI_INTER_CUBIC2P_CATMULLROM, /* two-parameter cubic filter (B=0, C=1/2) */
  286. IPPI_INTER_CUBIC2P_B05C03, /* two-parameter cubic filter (B=1/2, C=3/10) */
  287. IPPI_INTER_SUPER = 8,
  288. IPPI_INTER_LANCZOS = 16,
  289. IPPI_ANTIALIASING = (1 << 29),
  290. IPPI_SUBPIXEL_EDGE = (1 << 30),
  291. IPPI_SMOOTH_EDGE = (1 << 31)
  292. };
  293. typedef enum {
  294. ippNearest = IPPI_INTER_NN,
  295. ippLinear = IPPI_INTER_LINEAR,
  296. ippCubic = IPPI_INTER_CUBIC2P_CATMULLROM,
  297. ippLanczos = IPPI_INTER_LANCZOS,
  298. ippHahn = 0,
  299. ippSuper = IPPI_INTER_SUPER
  300. } IppiInterpolationType;
  301. typedef enum {
  302. ippPolyphase_1_2,
  303. ippPolyphase_3_5,
  304. ippPolyphase_2_3,
  305. ippPolyphase_7_10,
  306. ippPolyphase_3_4
  307. } IppiFraction;
  308. enum {
  309. IPP_FASTN_ORIENTATION = 0x0001,
  310. IPP_FASTN_NMS = 0x0002,
  311. IPP_FASTN_CIRCLE = 0X0004,
  312. IPP_FASTN_SCORE_MODE0 = 0X0020
  313. };
  314. #if !defined( _OWN_BLDPCS )
  315. typedef enum {
  316. ippAlphaOver,
  317. ippAlphaIn,
  318. ippAlphaOut,
  319. ippAlphaATop,
  320. ippAlphaXor,
  321. ippAlphaPlus,
  322. ippAlphaOverPremul,
  323. ippAlphaInPremul,
  324. ippAlphaOutPremul,
  325. ippAlphaATopPremul,
  326. ippAlphaXorPremul,
  327. ippAlphaPlusPremul
  328. } IppiAlphaType;
  329. typedef struct DeconvFFTState_32f_C1R IppiDeconvFFTState_32f_C1R;
  330. typedef struct DeconvFFTState_32f_C3R IppiDeconvFFTState_32f_C3R;
  331. typedef struct DeconvLR_32f_C1R IppiDeconvLR_32f_C1R;
  332. typedef struct DeconvLR_32f_C3R IppiDeconvLR_32f_C3R;
  333. typedef enum {
  334. ippiFilterBilateralGauss = 100,
  335. ippiFilterBilateralGaussFast = 101
  336. } IppiFilterBilateralType;
  337. typedef struct FilterBilateralSpec IppiFilterBilateralSpec;
  338. typedef enum {
  339. ippDistNormL1 = 0x00000002
  340. } IppiDistanceMethodType;
  341. typedef enum {
  342. ippResizeFilterHann,
  343. ippResizeFilterLanczos
  344. } IppiResizeFilterType;
  345. typedef struct ResizeFilterState IppiResizeFilterState;
  346. typedef struct {
  347. Ipp32u borderLeft;
  348. Ipp32u borderTop;
  349. Ipp32u borderRight;
  350. Ipp32u borderBottom;
  351. } IppiBorderSize;
  352. typedef enum {
  353. ippWarpForward,
  354. ippWarpBackward,
  355. } IppiWarpDirection;
  356. typedef enum {
  357. ippWarpAffine,
  358. ippWarpPerspective,
  359. ippWarpBilinear,
  360. } IppiWarpTransformType;
  361. typedef struct ResizeSpec_32f IppiResizeSpec_32f;
  362. typedef struct ResizeYUV422Spec IppiResizeYUV422Spec;
  363. typedef struct ResizeYUV420Spec IppiResizeYUV420Spec;
  364. typedef struct ResizeSpec_64f IppiResizeSpec_64f;
  365. typedef struct IppiWarpSpec IppiWarpSpec;
  366. typedef struct FilterBorderSpec IppiFilterBorderSpec;
  367. typedef struct ThresholdAdaptiveSpec IppiThresholdAdaptiveSpec;
  368. typedef struct HistogramSpec IppiHistogramSpec;
  369. typedef struct {
  370. int cvCompatible; /* openCV compatible output format */
  371. int cellSize; /* squre cell size (pixels) */
  372. int blockSize; /* square block size (pixels) */
  373. int blockStride; /* block displacement (the same for x- and y- directions) */
  374. int nbins; /* required number of bins */
  375. Ipp32f sigma; /* gaussian factor of HOG block weights */
  376. Ipp32f l2thresh; /* normalization factor */
  377. IppiSize winSize; /* detection window size (pixels) */
  378. } IppiHOGConfig;
  379. typedef struct FFT2DSpec_C_32fc IppiFFTSpec_C_32fc;
  380. typedef struct FFT2DSpec_R_32f IppiFFTSpec_R_32f;
  381. typedef struct DFT2DSpec_C_32fc IppiDFTSpec_C_32fc;
  382. typedef struct DFT2DSpec_R_32f IppiDFTSpec_R_32f;
  383. typedef struct DCT2DFwdSpec_32f IppiDCTFwdSpec_32f;
  384. typedef struct DCT2DInvSpec_32f IppiDCTInvSpec_32f;
  385. typedef struct iWTFwdSpec_32f_C1R IppiWTFwdSpec_32f_C1R;
  386. typedef struct iWTInvSpec_32f_C1R IppiWTInvSpec_32f_C1R;
  387. typedef struct iWTFwdSpec_32f_C3R IppiWTFwdSpec_32f_C3R;
  388. typedef struct iWTInvSpec_32f_C3R IppiWTInvSpec_32f_C3R;
  389. typedef struct MomentState64f IppiMomentState_64f;
  390. typedef Ipp64f IppiHuMoment_64f[7];
  391. typedef struct LUT_Spec IppiLUT_Spec;
  392. #define IPP_HOG_MAX_CELL (16) /* max size of CELL */
  393. #define IPP_HOG_MAX_BLOCK (64) /* max size of BLOCK */
  394. #define IPP_HOG_MAX_BINS (16) /* max number of BINS */
  395. typedef struct _ipHOG IppiHOGSpec;
  396. #endif /* _OWN_BLDPCS */
  397. /**** Below are 3D Image (Volume) Processing specific definitions ****/
  398. typedef struct {
  399. int width;
  400. int height;
  401. int depth;
  402. } IpprVolume;
  403. typedef struct {
  404. int x;
  405. int y;
  406. int z;
  407. int width;
  408. int height;
  409. int depth;
  410. } IpprCuboid;
  411. typedef struct {
  412. int x;
  413. int y;
  414. int z;
  415. } IpprPoint;
  416. /*****************************************************************************/
  417. /* Below are ippCV domain specific definitions */
  418. /*****************************************************************************/
  419. typedef enum _IppiDifferentialKernel
  420. {
  421. ippFilterSobelVert,
  422. ippFilterSobelHoriz,
  423. ippFilterSobel,
  424. ippFilterScharrVert,
  425. ippFilterScharrHoriz,
  426. ippFilterScharr,
  427. ippFilterCentralDiffVert,
  428. ippFilterCentralDiffHoriz,
  429. ippFilterCentralDiff,
  430. }IppiDifferentialKernel;
  431. #if !defined( _OWN_BLDPCS )
  432. typedef enum _IppiKernelType {
  433. ippKernelSobel = 0,
  434. ippKernelScharr = 1,
  435. ippKernelSobelNeg = 2
  436. } IppiKernelType;
  437. typedef enum _IppiNorm {
  438. ippiNormInf = 0,
  439. ippiNormL1 = 1,
  440. ippiNormL2 = 2,
  441. ippiNormFM = 3
  442. } IppiNorm;
  443. typedef struct ipcvMorphState IppiMorphState;
  444. typedef struct ipcvMorphAdvState IppiMorphAdvState;
  445. typedef struct ipcvMorphGrayState_8u IppiMorphGrayState_8u;
  446. typedef struct ipcvMorphGrayState_32f IppiMorphGrayState_32f;
  447. typedef struct ipcvConvState IppiConvState;
  448. typedef struct _IppiConnectedComp {
  449. Ipp64f area; /* area of the segmented component */
  450. Ipp64f value[3];/* gray scale value of the segmented component */
  451. IppiRect rect; /* bounding rectangle of the segmented component */
  452. } IppiConnectedComp;
  453. typedef struct PyramidState IppiPyramidState;
  454. typedef IppiPyramidState IppiPyramidDownState_8u_C1R;
  455. typedef IppiPyramidState IppiPyramidDownState_16u_C1R;
  456. typedef IppiPyramidState IppiPyramidDownState_32f_C1R;
  457. typedef IppiPyramidState IppiPyramidDownState_8u_C3R;
  458. typedef IppiPyramidState IppiPyramidDownState_16u_C3R;
  459. typedef IppiPyramidState IppiPyramidDownState_32f_C3R;
  460. typedef IppiPyramidState IppiPyramidUpState_8u_C1R;
  461. typedef IppiPyramidState IppiPyramidUpState_16u_C1R;
  462. typedef IppiPyramidState IppiPyramidUpState_32f_C1R;
  463. typedef IppiPyramidState IppiPyramidUpState_8u_C3R;
  464. typedef IppiPyramidState IppiPyramidUpState_16u_C3R;
  465. typedef IppiPyramidState IppiPyramidUpState_32f_C3R;
  466. typedef struct _IppiPyramid {
  467. Ipp8u **pImage;
  468. IppiSize *pRoi;
  469. Ipp64f *pRate;
  470. int *pStep;
  471. Ipp8u *pState;
  472. int level;
  473. } IppiPyramid;
  474. typedef struct OptFlowPyrLK IppiOptFlowPyrLK;
  475. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_8u_C1R;
  476. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_16u_C1R;
  477. typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_32f_C1R;
  478. typedef struct ipcvHaarClassifier_32f IppiHaarClassifier_32f;
  479. typedef struct ipcvHaarClassifier_32s IppiHaarClassifier_32s;
  480. typedef struct ipcvFGHistogramState_8u_C1R IppFGHistogramState_8u_C1R;
  481. typedef struct ipcvFGHistogramState_8u_C3R IppFGHistogramState_8u_C3R;
  482. typedef struct ipcvFGGaussianState_8u_C1R IppFGGaussianState_8u_C1R;
  483. typedef struct ipcvFGGaussianState_8u_C3R IppFGGaussianState_8u_C3R;
  484. typedef enum _IppiInpaintFlag {
  485. IPP_INPAINT_TELEA = 0,
  486. IPP_INPAINT_NS = 1
  487. } IppiInpaintFlag;
  488. typedef struct ippcvFilterGaussianSpec IppFilterGaussianSpec;
  489. typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C1R;
  490. typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C3R;
  491. typedef struct HoughProbSpec IppiHoughProbSpec;
  492. typedef struct FastNSpec IppiFastNSpec;
  493. typedef struct _IppiCornerFastN {
  494. int x;
  495. int y;
  496. int cornerType;
  497. int orientation;
  498. float angle;
  499. float score;
  500. } IppiCornerFastN;
  501. typedef struct FGMMState_8u_C3R IppFGMMState_8u_C3R;
  502. typedef struct
  503. {
  504. unsigned int numFrames;
  505. unsigned int maxNGauss;
  506. Ipp32f varInit;
  507. Ipp32f varMin;
  508. Ipp32f varMax;
  509. Ipp32f varWBRatio;
  510. Ipp32f bckgThr;
  511. Ipp32f varNGRatio;
  512. Ipp32f reduction;
  513. Ipp8u shadowValue;
  514. char shadowFlag;
  515. Ipp32f shadowRatio;
  516. } IppFGMModel;
  517. #endif /* _OWN_BLDPCS */
  518. #define IPP_SEGMENT_QUEUE 0x01
  519. #define IPP_SEGMENT_DISTANCE 0x02
  520. #define IPP_SEGMENT_BORDER_4 0x40
  521. #define IPP_SEGMENT_BORDER_8 0x80
  522. #define IPP_TRUNC(a,b) ((a)&~((b)-1))
  523. #define IPP_APPEND(a,b) (((a)+(b)-1)&~((b)-1))
  524. /*****************************************************************************/
  525. /* Below are ippCC domain specific definitions */
  526. /*****************************************************************************/
  527. enum {
  528. IPP_UPPER = 1,
  529. IPP_LEFT = 2,
  530. IPP_CENTER = 4,
  531. IPP_RIGHT = 8,
  532. IPP_LOWER = 16,
  533. IPP_UPPER_LEFT = 32,
  534. IPP_UPPER_RIGHT = 64,
  535. IPP_LOWER_LEFT = 128,
  536. IPP_LOWER_RIGHT = 256
  537. };
  538. #if !defined( _OWN_BLDPCS )
  539. typedef enum {
  540. ippDitherNone,
  541. ippDitherFS,
  542. ippDitherJJN,
  543. ippDitherStucki,
  544. ippDitherBayer
  545. } IppiDitherType;
  546. #endif /* _OWN_BLDPCS */
  547. /*****************************************************************************/
  548. /* Below are ippCH domain specific definitions */
  549. /*****************************************************************************/
  550. #if !defined( _OWN_BLDPCS )
  551. typedef struct {
  552. void *pFind;
  553. int lenFind;
  554. } IppRegExpFind;
  555. typedef struct RegExpState IppRegExpState;
  556. typedef enum {
  557. ippFmtASCII = 0,
  558. ippFmtUTF8
  559. } IppRegExpFormat;
  560. typedef struct RegExpReplaceState IppRegExpReplaceState;
  561. #endif /* _OWN_BLDPCS */
  562. /*****************************************************************************/
  563. /* Below are ippDC domain specific definitions */
  564. /*****************************************************************************/
  565. #if !defined ( _OWN_BLDPCS )
  566. typedef struct MTFState_8u IppMTFState_8u;
  567. typedef enum {
  568. ippBWTItohTanakaLimSort,
  569. ippBWTItohTanakaUnlimSort,
  570. ippBWTSuffixSort,
  571. ippBWTAutoSort
  572. } IppBWTSortAlgorithmHint;
  573. typedef struct LZSSState_8u IppLZSSState_8u;
  574. typedef struct LZ77State_8u IppLZ77State_8u;
  575. typedef enum{
  576. IppLZ77FastCompr,
  577. IppLZ77AverageCompr,
  578. IppLZ77BestCompr
  579. } IppLZ77ComprLevel;
  580. typedef enum{
  581. IppLZ77NoChcksm,
  582. IppLZ77Adler32,
  583. IppLZ77CRC32
  584. } IppLZ77Chcksm;
  585. typedef enum {
  586. IppLZ77NoFlush,
  587. IppLZ77SyncFlush,
  588. IppLZ77FullFlush,
  589. IppLZ77FinishFlush
  590. } IppLZ77Flush;
  591. typedef struct IppLZ77Pairs_16u {
  592. Ipp16u length;
  593. Ipp16u offset;
  594. } IppLZ77Pair;
  595. typedef enum {
  596. IppLZ77StatusInit,
  597. IppLZ77StatusLZ77Process,
  598. IppLZ77StatusHuffProcess,
  599. IppLZ77StatusFinal
  600. } IppLZ77DeflateStatus;
  601. typedef enum {
  602. IppLZ77UseFixed,
  603. IppLZ77UseDynamic,
  604. IppLZ77UseStored
  605. } IppLZ77HuffMode;
  606. typedef enum {
  607. IppLZ77InflateStatusInit,
  608. IppLZ77InflateStatusHuffProcess,
  609. IppLZ77InflateStatusLZ77Process,
  610. IppLZ77InflateStatusFinal
  611. } IppLZ77InflateStatus;
  612. typedef struct IppInflateState {
  613. const Ipp8u* pWindow; /* pointer to the sliding window
  614. (the dictionary for the LZ77 algorithm) */
  615. unsigned int winSize; /* size of the sliding window */
  616. unsigned int tableType; /* type of Huffman code tables
  617. (for example, 0 - tables for Fixed Huffman codes) */
  618. unsigned int tableBufferSize; /* (ENOUGH = 2048) * (sizeof(code) = 4) -
  619. sizeof(IppInflateState) */
  620. } IppInflateState;
  621. typedef enum { /* this type is used as a translator of the inflate_mode type from zlib */
  622. ippTYPE,
  623. ippLEN,
  624. ippLENEXT
  625. } IppInflateMode;
  626. typedef struct {
  627. Ipp16u freq;
  628. Ipp16u code;
  629. } IppDeflateFreqTable;
  630. typedef struct {
  631. Ipp16u code;
  632. Ipp16u len;
  633. } IppDeflateHuffCode;
  634. typedef struct RLEState_BZ2 IppRLEState_BZ2;
  635. typedef struct EncodeHuffState_BZ2 IppEncodeHuffState_BZ2;
  636. typedef struct DecodeHuffState_BZ2 IppDecodeHuffState_BZ2;
  637. typedef enum {
  638. IppLZO1XST, /* Single-threaded, generic LZO-compatible*/
  639. IppLZO1XMT /* Multi-threaded */
  640. } IppLZOMethod ;
  641. typedef struct LZOState_8u IppLZOState_8u;
  642. #endif /* _OWN_BLDPCS */
  643. /* /////////////////////////////////////////////////////////////////////////////
  644. // The following enumerator defines a status of IPP operations
  645. // negative value means error
  646. */
  647. typedef enum {
  648. /* errors */
  649. ippStsNotSupportedModeErr = -9999,/* The requested mode is currently not supported. */
  650. ippStsCpuNotSupportedErr = -9998,/* The target CPU is not supported. */
  651. ippStsInplaceModeNotSupportedErr = -9997,/* The inplace operation is currently not supported. */
  652. ippStsIIRIIRLengthErr = -234, /* Vector length for IIRIIR function is less than 3*(IIR order) */
  653. ippStsWarpTransformTypeErr = -233, /* The warp transform type is illegal */
  654. ippStsExceededSizeErr = -232, /* Requested size exceeded the maximum supported ROI size */
  655. ippStsWarpDirectionErr = -231, /* The warp transform direction is illegal */
  656. ippStsFilterTypeErr = -230, /* The filter type is incorrect or not supported */
  657. ippStsNormErr = -229, /* The norm is incorrect or not supported */
  658. ippStsAlgTypeErr = -228, /* Algorithm type is not supported. */
  659. ippStsMisalignedOffsetErr = -227, /* The offset is not aligned with an element. */
  660. ippStsQuadraticNonResidueErr = -226, /* SQRT operation on quadratic non-residue value. */
  661. ippStsBorderErr = -225, /* Illegal value for border type.*/
  662. ippStsDitherTypeErr = -224, /* Dithering type is not supported. */
  663. ippStsH264BufferFullErr = -223, /* Buffer for the output bitstream is full. */
  664. ippStsWrongAffinitySettingErr= -222, /* An affinity setting does not correspond to the affinity setting that was set by f.ippSetAffinity(). */
  665. ippStsLoadDynErr = -221, /* Error when loading the dynamic library. */
  666. ippStsPointAtInfinity = -220, /* Point at infinity is detected. */
  667. ippStsUnknownStatusCodeErr = -216, /* Unknown status code. */
  668. ippStsOFBSizeErr = -215, /* Incorrect value for crypto OFB block size. */
  669. ippStsLzoBrokenStreamErr = -214, /* LZO safe decompression function cannot decode LZO stream. */
  670. ippStsRoundModeNotSupportedErr = -213, /* Rounding mode is not supported. */
  671. ippStsDecimateFractionErr = -212, /* Fraction in Decimate is not supported. */
  672. ippStsWeightErr = -211, /* Incorrect value for weight. */
  673. ippStsQualityIndexErr = -210, /* Cannot calculate the quality index for an image filled with a constant. */
  674. ippStsIIRPassbandRippleErr = -209, /* Ripple in passband for Chebyshev1 design is less than zero, equal to zero, or greater than 29. */
  675. ippStsFilterFrequencyErr = -208, /* Cutoff frequency of filter is less than zero, equal to zero, or greater than 0.5. */
  676. ippStsFIRGenOrderErr = -207, /* Order of the FIR filter for design is less than 1. */
  677. ippStsIIRGenOrderErr = -206, /* Order of the IIR filter for design is less than 1, or greater than 12. */
  678. ippStsConvergeErr = -205, /* The algorithm does not converge. */
  679. ippStsSizeMatchMatrixErr = -204, /* The sizes of the source matrices are unsuitable. */
  680. ippStsCountMatrixErr = -203, /* Count value is less than, or equal to zero. */
  681. ippStsRoiShiftMatrixErr = -202, /* RoiShift value is negative or not divisible by the size of the data type. */
  682. ippStsResizeNoOperationErr = -201, /* One of the output image dimensions is less than 1 pixel. */
  683. ippStsSrcDataErr = -200, /* The source buffer contains unsupported data. */
  684. ippStsMaxLenHuffCodeErr = -199, /* Huff: Max length of Huffman code is more than the expected one. */
  685. ippStsCodeLenTableErr = -198, /* Huff: Invalid codeLenTable. */
  686. ippStsFreqTableErr = -197, /* Huff: Invalid freqTable. */
  687. ippStsIncompleteContextErr = -196, /* Crypto: set up of context is not complete. */
  688. ippStsSingularErr = -195, /* Matrix is singular. */
  689. ippStsSparseErr = -194, /* Positions of taps are not in ascending order, or are negative, or repetitive. */
  690. ippStsBitOffsetErr = -193, /* Incorrect bit offset value. */
  691. ippStsQPErr = -192, /* Incorrect quantization parameter value. */
  692. ippStsVLCErr = -191, /* Illegal VLC or FLC is detected during stream decoding. */
  693. ippStsRegExpOptionsErr = -190, /* RegExp: Options for the pattern are incorrect. */
  694. ippStsRegExpErr = -189, /* RegExp: The structure pRegExpState contains incorrect data. */
  695. ippStsRegExpMatchLimitErr = -188, /* RegExp: The match limit is exhausted. */
  696. ippStsRegExpQuantifierErr = -187, /* RegExp: Incorrect quantifier. */
  697. ippStsRegExpGroupingErr = -186, /* RegExp: Incorrect grouping. */
  698. ippStsRegExpBackRefErr = -185, /* RegExp: Incorrect back reference. */
  699. ippStsRegExpChClassErr = -184, /* RegExp: Incorrect character class. */
  700. ippStsRegExpMetaChErr = -183, /* RegExp: Incorrect metacharacter. */
  701. ippStsStrideMatrixErr = -182, /* Stride value is not positive or not divisible by the size of the data type. */
  702. ippStsCTRSizeErr = -181, /* Incorrect value for crypto CTR block size. */
  703. ippStsJPEG2KCodeBlockIsNotAttached =-180, /* Codeblock parameters are not attached to the state structure. */
  704. ippStsNotPosDefErr = -179, /* Matrix is not positive definite. */
  705. ippStsEphemeralKeyErr = -178, /* ECC: Invalid ephemeral key. */
  706. ippStsMessageErr = -177, /* ECC: Invalid message digest. */
  707. ippStsShareKeyErr = -176, /* ECC: Invalid share key. */
  708. ippStsIvalidPublicKey = -175, /* ECC: Invalid public key. */
  709. ippStsIvalidPrivateKey = -174, /* ECC: Invalid private key. */
  710. ippStsOutOfECErr = -173, /* ECC: Point out of EC. */
  711. ippStsECCInvalidFlagErr = -172, /* ECC: Invalid Flag. */
  712. ippStsMP3FrameHeaderErr = -171, /* Error in fields of the IppMP3FrameHeader structure. */
  713. ippStsMP3SideInfoErr = -170, /* Error in fields of the IppMP3SideInfo structure. */
  714. ippStsBlockStepErr = -169, /* Step for Block is less than 8. */
  715. ippStsMBStepErr = -168, /* Step for MB is less than 16. */
  716. ippStsAacPrgNumErr = -167, /* AAC: Invalid number of elements for one program. */
  717. ippStsAacSectCbErr = -166, /* AAC: Invalid section codebook. */
  718. ippStsAacSfValErr = -164, /* AAC: Invalid scalefactor value. */
  719. ippStsAacCoefValErr = -163, /* AAC: Invalid quantized coefficient value. */
  720. ippStsAacMaxSfbErr = -162, /* AAC: Invalid coefficient index. */
  721. ippStsAacPredSfbErr = -161, /* AAC: Invalid predicted coefficient index. */
  722. ippStsAacPlsDataErr = -160, /* AAC: Invalid pulse data attributes. */
  723. ippStsAacGainCtrErr = -159, /* AAC: Gain control is not supported. */
  724. ippStsAacSectErr = -158, /* AAC: Invalid number of sections. */
  725. ippStsAacTnsNumFiltErr = -157, /* AAC: Invalid number of TNS filters. */
  726. ippStsAacTnsLenErr = -156, /* AAC: Invalid length of TNS region. */
  727. ippStsAacTnsOrderErr = -155, /* AAC: Invalid order of TNS filter. */
  728. ippStsAacTnsCoefResErr = -154, /* AAC: Invalid bit-resolution for TNS filter coefficients. */
  729. ippStsAacTnsCoefErr = -153, /* AAC: Invalid coefficients of TNS filter. */
  730. ippStsAacTnsDirectErr = -152, /* AAC: Invalid direction TNS filter. */
  731. ippStsAacTnsProfileErr = -151, /* AAC: Invalid TNS profile. */
  732. ippStsAacErr = -150, /* AAC: Internal error. */
  733. ippStsAacBitOffsetErr = -149, /* AAC: Invalid current bit offset in bitstream. */
  734. ippStsAacAdtsSyncWordErr = -148, /* AAC: Invalid ADTS syncword. */
  735. ippStsAacSmplRateIdxErr = -147, /* AAC: Invalid sample rate index. */
  736. ippStsAacWinLenErr = -146, /* AAC: Invalid window length (not short or long). */
  737. ippStsAacWinGrpErr = -145, /* AAC: Invalid number of groups for current window length. */
  738. ippStsAacWinSeqErr = -144, /* AAC: Invalid window sequence range. */
  739. ippStsAacComWinErr = -143, /* AAC: Invalid common window flag. */
  740. ippStsAacStereoMaskErr = -142, /* AAC: Invalid stereo mask. */
  741. ippStsAacChanErr = -141, /* AAC: Invalid channel number. */
  742. ippStsAacMonoStereoErr = -140, /* AAC: Invalid mono-stereo flag. */
  743. ippStsAacStereoLayerErr = -139, /* AAC: Invalid this Stereo Layer flag. */
  744. ippStsAacMonoLayerErr = -138, /* AAC: Invalid this Mono Layer flag. */
  745. ippStsAacScalableErr = -137, /* AAC: Invalid scalable object flag. */
  746. ippStsAacObjTypeErr = -136, /* AAC: Invalid audio object type. */
  747. ippStsAacWinShapeErr = -135, /* AAC: Invalid window shape. */
  748. ippStsAacPcmModeErr = -134, /* AAC: Invalid PCM output interleaving indicator. */
  749. ippStsVLCUsrTblHeaderErr = -133, /* VLC: Invalid header inside table. */
  750. ippStsVLCUsrTblUnsupportedFmtErr = -132, /* VLC: Table format is not supported. */
  751. ippStsVLCUsrTblEscAlgTypeErr = -131, /* VLC: Ecs-algorithm is not supported. */
  752. ippStsVLCUsrTblEscCodeLengthErr = -130, /* VLC: Esc-code length inside table header is incorrect. */
  753. ippStsVLCUsrTblCodeLengthErr = -129, /* VLC: Code length inside table is incorrect. */
  754. ippStsVLCInternalTblErr = -128, /* VLC: Invalid internal table. */
  755. ippStsVLCInputDataErr = -127, /* VLC: Invalid input data. */
  756. ippStsVLCAACEscCodeLengthErr = -126, /* VLC: Invalid AAC-Esc code length. */
  757. ippStsNoiseRangeErr = -125, /* Noise value for Wiener Filter is out of range. */
  758. ippStsUnderRunErr = -124, /* Error in data under run. */
  759. ippStsPaddingErr = -123, /* Detected padding error indicates the possible data corruption. */
  760. ippStsCFBSizeErr = -122, /* Incorrect value for crypto CFB block size. */
  761. ippStsPaddingSchemeErr = -121, /* Invalid padding scheme. */
  762. ippStsInvalidCryptoKeyErr = -120, /* A compromised key causes suspansion of the requested cryptographic operation. */
  763. ippStsLengthErr = -119, /* Incorrect value for string length. */
  764. ippStsBadModulusErr = -118, /* Bad modulus caused a failure in module inversion. */
  765. ippStsLPCCalcErr = -117, /* Cannot evaluate linear prediction. */
  766. ippStsRCCalcErr = -116, /* Cannot compute reflection coefficients. */
  767. ippStsIncorrectLSPErr = -115, /* Incorrect values for Linear Spectral Pair. */
  768. ippStsNoRootFoundErr = -114, /* No roots are found for equation. */
  769. ippStsJPEG2KBadPassNumber = -113, /* Pass number exceeds allowed boundaries [0,nOfPasses-1]. */
  770. ippStsJPEG2KDamagedCodeBlock= -112, /* Codeblock for decoding contains damaged data. */
  771. ippStsH263CBPYCodeErr = -111, /* Illegal Huffman code is detected through CBPY stream processing. */
  772. ippStsH263MCBPCInterCodeErr = -110, /* Illegal Huffman code is detected through MCBPC Inter stream processing. */
  773. ippStsH263MCBPCIntraCodeErr = -109, /* Illegal Huffman code is detected through MCBPC Intra stream processing. */
  774. ippStsNotEvenStepErr = -108, /* Step value is not pixel multiple. */
  775. ippStsHistoNofLevelsErr = -107, /* Number of levels for histogram is less than 2. */
  776. ippStsLUTNofLevelsErr = -106, /* Number of levels for LUT is less than 2. */
  777. ippStsMP4BitOffsetErr = -105, /* Incorrect bit offset value. */
  778. ippStsMP4QPErr = -104, /* Incorrect quantization parameter. */
  779. ippStsMP4BlockIdxErr = -103, /* Incorrect block index. */
  780. ippStsMP4BlockTypeErr = -102, /* Incorrect block type. */
  781. ippStsMP4MVCodeErr = -101, /* Illegal Huffman code is detected during MV stream processing. */
  782. ippStsMP4VLCCodeErr = -100, /* Illegal Huffman code is detected during VLC stream processing. */
  783. ippStsMP4DCCodeErr = -99, /* Illegal code is detected during DC stream processing. */
  784. ippStsMP4FcodeErr = -98, /* Incorrect fcode value. */
  785. ippStsMP4AlignErr = -97, /* Incorrect buffer alignment . */
  786. ippStsMP4TempDiffErr = -96, /* Incorrect temporal difference. */
  787. ippStsMP4BlockSizeErr = -95, /* Incorrect size of a block or macroblock. */
  788. ippStsMP4ZeroBABErr = -94, /* All BAB values are equal to zero. */
  789. ippStsMP4PredDirErr = -93, /* Incorrect prediction direction. */
  790. ippStsMP4BitsPerPixelErr = -92, /* Incorrect number of bits per pixel. */
  791. ippStsMP4VideoCompModeErr = -91, /* Incorrect video component mode. */
  792. ippStsMP4LinearModeErr = -90, /* Incorrect DC linear mode. */
  793. ippStsH263PredModeErr = -83, /* Incorrect Prediction Mode value. */
  794. ippStsH263BlockStepErr = -82, /* The step value is less than 8. */
  795. ippStsH263MBStepErr = -81, /* The step value is less than 16. */
  796. ippStsH263FrameWidthErr = -80, /* The frame width is less than 8. */
  797. ippStsH263FrameHeightErr = -79, /* The frame height is less than, or equal to zero. */
  798. ippStsH263ExpandPelsErr = -78, /* Expand pixels number is less than 8. */
  799. ippStsH263PlaneStepErr = -77, /* Step value is less than the plane width. */
  800. ippStsH263QuantErr = -76, /* Quantizer value is less than, or equal to zero, or greater than 31. */
  801. ippStsH263MVCodeErr = -75, /* Illegal Huffman code is detected during MV stream processing. */
  802. ippStsH263VLCCodeErr = -74, /* Illegal Huffman code is detected during VLC stream processing. */
  803. ippStsH263DCCodeErr = -73, /* Illegal code is detected during DC stream processing. */
  804. ippStsH263ZigzagLenErr = -72, /* Zigzag compact length is more than 64. */
  805. ippStsFBankFreqErr = -71, /* Incorrect value for the filter bank frequency parameter. */
  806. ippStsFBankFlagErr = -70, /* Incorrect value for the filter bank parameter. */
  807. ippStsFBankErr = -69, /* Filter bank is not correctly initialized. */
  808. ippStsNegOccErr = -67, /* Occupation count is negative. */
  809. ippStsCdbkFlagErr = -66, /* Incorrect value for the codebook flag parameter. */
  810. ippStsSVDCnvgErr = -65, /* SVD algorithm does not converge. */
  811. ippStsJPEGHuffTableErr = -64, /* JPEG Huffman table is destroyed. */
  812. ippStsJPEGDCTRangeErr = -63, /* JPEG DCT coefficient is out of range. */
  813. ippStsJPEGOutOfBufErr = -62, /* Attempt to access out of the buffer limits. */
  814. ippStsDrawTextErr = -61, /* System error in the draw text operation. */
  815. ippStsChannelOrderErr = -60, /* Incorrect order of the destination channels. */
  816. ippStsZeroMaskValuesErr = -59, /* All values of the mask are equal to zero. */
  817. ippStsQuadErr = -58, /* The quadrangle is nonconvex or degenerates into triangle, line, or point */
  818. ippStsRectErr = -57, /* Size of the rectangle region is less than, or equal to 1. */
  819. ippStsCoeffErr = -56, /* Incorrect values for transformation coefficients. */
  820. ippStsNoiseValErr = -55, /* Incorrect value for noise amplitude for dithering. */
  821. ippStsDitherLevelsErr = -54, /* Number of dithering levels is out of range. */
  822. ippStsNumChannelsErr = -53, /* Number of channels is incorrect, or not supported. */
  823. ippStsCOIErr = -52, /* COI is out of range. */
  824. ippStsDivisorErr = -51, /* Divisor is equal to zero, function is aborted. */
  825. ippStsAlphaTypeErr = -50, /* Illegal type of image compositing operation. */
  826. ippStsGammaRangeErr = -49, /* Gamma range bounds is less than, or equal to zero. */
  827. ippStsGrayCoefSumErr = -48, /* Sum of the conversion coefficients must be less than, or equal to 1. */
  828. ippStsChannelErr = -47, /* Illegal channel number. */
  829. ippStsToneMagnErr = -46, /* Tone magnitude is less than, or equal to zero. */
  830. ippStsToneFreqErr = -45, /* Tone frequency is negative, or greater than, or equal to 0.5. */
  831. ippStsTonePhaseErr = -44, /* Tone phase is negative, or greater than, or equal to 2*PI. */
  832. ippStsTrnglMagnErr = -43, /* Triangle magnitude is less than, or equal to zero. */
  833. ippStsTrnglFreqErr = -42, /* Triangle frequency is negative, or greater than, or equal to 0.5. */
  834. ippStsTrnglPhaseErr = -41, /* Triangle phase is negative, or greater than, or equal to 2*PI. */
  835. ippStsTrnglAsymErr = -40, /* Triangle asymmetry is less than -PI, or greater than, or equal to PI. */
  836. ippStsHugeWinErr = -39, /* Kaiser window is too big. */
  837. ippStsJaehneErr = -38, /* Magnitude value is negative. */
  838. ippStsStrideErr = -37, /* Stride value is less than the length of the row. */
  839. ippStsEpsValErr = -36, /* Negative epsilon value. */
  840. ippStsWtOffsetErr = -35, /* Invalid offset value for wavelet filter. */
  841. ippStsAnchorErr = -34, /* Anchor point is outside the mask. */
  842. ippStsMaskSizeErr = -33, /* Invalid mask size. */
  843. ippStsShiftErr = -32, /* Shift value is less than zero. */
  844. ippStsSampleFactorErr = -31, /* Sampling factor is less than, or equal to zero. */
  845. ippStsSamplePhaseErr = -30, /* Phase value is out of range: 0 <= phase < factor. */
  846. ippStsFIRMRFactorErr = -29, /* MR FIR sampling factor is less than, or equal to zero. */
  847. ippStsFIRMRPhaseErr = -28, /* MR FIR sampling phase is negative, or greater than, or equal to the sampling factor. */
  848. ippStsRelFreqErr = -27, /* Relative frequency value is out of range. */
  849. ippStsFIRLenErr = -26, /* Length of a FIR filter is less than, or equal to zero. */
  850. ippStsIIROrderErr = -25, /* Order of an IIR filter is not valid. */
  851. ippStsDlyLineIndexErr = -24, /* Invalid value for the delay line sample index. */
  852. ippStsResizeFactorErr = -23, /* Resize factor(s) is less than, or equal to zero. */
  853. ippStsInterpolationErr = -22, /* Invalid interpolation mode. */
  854. ippStsMirrorFlipErr = -21, /* Invalid flip mode. */
  855. ippStsMoment00ZeroErr = -20, /* Moment value M(0,0) is too small to continue calculations. */
  856. ippStsThreshNegLevelErr = -19, /* Negative value of the level in the threshold operation. */
  857. ippStsThresholdErr = -18, /* Invalid threshold bounds. */
  858. ippStsContextMatchErr = -17, /* Context parameter does not match the operation. */
  859. ippStsFftFlagErr = -16, /* Invalid value for the FFT flag parameter. */
  860. ippStsFftOrderErr = -15, /* Invalid value for the FFT order parameter. */
  861. ippStsStepErr = -14, /* Step value is not valid. */
  862. ippStsScaleRangeErr = -13, /* Scale bounds are out of range. */
  863. ippStsDataTypeErr = -12, /* Data type is incorrect or not supported. */
  864. ippStsOutOfRangeErr = -11, /* Argument is out of range, or point is outside the image. */
  865. ippStsDivByZeroErr = -10, /* An attempt to divide by zero. */
  866. ippStsMemAllocErr = -9, /* Memory allocated for the operation is not enough.*/
  867. ippStsNullPtrErr = -8, /* Null pointer error. */
  868. ippStsRangeErr = -7, /* Incorrect values for bounds: the lower bound is greater than the upper bound. */
  869. ippStsSizeErr = -6, /* Incorrect value for data size. */
  870. ippStsBadArgErr = -5, /* Incorrect arg/param of the function. */
  871. ippStsNoMemErr = -4, /* Not enough memory for the operation. */
  872. ippStsSAReservedErr3 = -3, /* Unknown/unspecified error, -3. */
  873. ippStsErr = -2, /* Unknown/unspecified error, -2. */
  874. ippStsSAReservedErr1 = -1, /* Unknown/unspecified error, -1. */
  875. /* no errors */
  876. ippStsNoErr = 0, /* No errors. */
  877. /* warnings */
  878. ippStsNoOperation = 1, /* No operation has been executed. */
  879. ippStsMisalignedBuf = 2, /* Misaligned pointer in operation in which it must be aligned. */
  880. ippStsSqrtNegArg = 3, /* Negative value(s) for the argument in the Sqrt function. */
  881. ippStsInvZero = 4, /* INF result. Zero value was met by InvThresh with zero level. */
  882. ippStsEvenMedianMaskSize= 5, /* Even size of the Median Filter mask was replaced with the odd one. */
  883. ippStsDivByZero = 6, /* Zero value(s) for the divisor in the Div function. */
  884. ippStsLnZeroArg = 7, /* Zero value(s) for the argument in the Ln function. */
  885. ippStsLnNegArg = 8, /* Negative value(s) for the argument in the Ln function. */
  886. ippStsNanArg = 9, /* Argument value is not a number. */
  887. ippStsJPEGMarker = 10, /* JPEG marker in the bitstream. */
  888. ippStsResFloor = 11, /* All result values are floored. */
  889. ippStsOverflow = 12, /* Overflow in the operation. */
  890. ippStsLSFLow = 13, /* Quantized LP synthesis filter stability check is applied at the low boundary of [0,pi]. */
  891. ippStsLSFHigh = 14, /* Quantized LP synthesis filter stability check is applied at the high boundary of [0,pi]. */
  892. ippStsLSFLowAndHigh = 15, /* Quantized LP synthesis filter stability check is applied at both boundaries of [0,pi]. */
  893. ippStsZeroOcc = 16, /* Zero occupation count. */
  894. ippStsUnderflow = 17, /* Underflow in the operation. */
  895. ippStsSingularity = 18, /* Singularity in the operation. */
  896. ippStsDomain = 19, /* Argument is out of the function domain. */
  897. ippStsNonIntelCpu = 20, /* The target CPU is not Genuine Intel. */
  898. ippStsCpuMismatch = 21, /* Cannot set the library for the given CPU. */
  899. ippStsNoIppFunctionFound = 22, /* Application does not contain Intel IPP function calls. */
  900. ippStsDllNotFoundBestUsed = 23, /* Dispatcher cannot find the newest version of the Intel IPP dll. */
  901. ippStsNoOperationInDll = 24, /* The function does nothing in the dynamic version of the library. */
  902. ippStsInsufficientEntropy= 25, /* Generation of the prime/key failed due to insufficient entropy in the random seed and stimulus bit string. */
  903. ippStsOvermuchStrings = 26, /* Number of destination strings is more than expected. */
  904. ippStsOverlongString = 27, /* Length of one of the destination strings is more than expected. */
  905. ippStsAffineQuadChanged = 28, /* 4th vertex of destination quad is not equal to customer's one. */
  906. ippStsWrongIntersectROI = 29, /* ROI has no intersection with the source or destination ROI. No operation. */
  907. ippStsWrongIntersectQuad = 30, /* Quadrangle has no intersection with the source or destination ROI. No operation. */
  908. ippStsSmallerCodebook = 31, /* Size of created codebook is less than the cdbkSize argument. */
  909. ippStsSrcSizeLessExpected = 32, /* DC: Size of the source buffer is less than the expected one. */
  910. ippStsDstSizeLessExpected = 33, /* DC: Size of the destination buffer is less than the expected one. */
  911. ippStsStreamEnd = 34, /* DC: The end of stream processed. */
  912. ippStsDoubleSize = 35, /* Width or height of image is odd. */
  913. ippStsNotSupportedCpu = 36, /* The CPU is not supported. */
  914. ippStsUnknownCacheSize = 37, /* The CPU is supported, but the size of the cache is unknown. */
  915. ippStsSymKernelExpected = 38, /* The Kernel is not symmetric. */
  916. ippStsEvenMedianWeight = 39, /* Even weight of the Weighted Median Filter is replaced with the odd one. */
  917. ippStsWrongIntersectVOI = 40, /* VOI has no intersection with the source or destination volume. No operation. */
  918. ippStsI18nMsgCatalogInvalid=41, /* Message Catalog is invalid, English message returned. */
  919. ippStsI18nGetMessageFail = 42, /* Failed to fetch a localized message, English message returned. For more information use errno on Linux* OS and GetLastError on Windows* OS. */
  920. ippStsWaterfall = 43, /* Cannot load required library, waterfall is used. */
  921. ippStsPrevLibraryUsed = 44, /* Cannot load required library, previous dynamic library is used. */
  922. ippStsLLADisabled = 45, /* OpenMP* Low Level Affinity is disabled. */
  923. ippStsNoAntialiasing = 46, /* The mode does not support antialiasing. */
  924. ippStsRepetitiveSrcData = 47, /* DC: The source data is too repetitive. */
  925. ippStsSizeWrn = 48, /* The size does not allow to perform full operation. */
  926. ippStsFeatureNotSupported = 49, /* Current CPU doesn't support at least 1 of the desired features. */
  927. ippStsUnknownFeature = 50, /* At least one of the desired features is unknown. */
  928. ippStsFeaturesCombination = 51, /* Wrong combination of features. */
  929. ippStsAccurateModeNotSupported = 52 /* Accurate mode is not supported. */
  930. } IppStatus;
  931. #define ippStsOk ippStsNoErr
  932. #endif
  933. #ifdef __cplusplus
  934. }
  935. #endif
  936. #endif /* __IPPTYPES_H__ */