ipptypes.h 51 KB

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