1 /*
2 // Copyright 1999-2019 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 /*
25 //              Intel(R) Integrated Performance Primitives (Intel(R) IPP)
26 //              Derivative Types and Macro Definitions
27 //
28 //              The main purpose of this header file is
29 //              to support compatibility with the legacy
30 //              domains until their end of life.
31 //
32 */
33 
34 
35 #ifndef __IPPICV_TYPES_H__
36 #define __IPPICV_TYPES_H__
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 #if defined( IPPTYPES_H__ )
43 #error "You try to include ippicv_types.h and ipptypes.h together. You can't use Intel(R) IPP and ICV libraries together, please use only one and please use header files only for one library"
44 #endif
45 
46 /*****************************************************************************/
47 /*                   Below are ippCore domain specific definitions           */
48 /*****************************************************************************/
49 #if !defined( _OWN_BLDPCS )
50 
51 #ifndef IPP_CPU_FEATURES__
52 #define IPP_CPU_FEATURES__
53 
54 #define   ippCPUID_MMX             0x00000001   /* Intel(R) Architecture MMX technology supported                              */
55 #define   ippCPUID_SSE             0x00000002   /* Intel(R) Streaming SIMD Extensions                                          */
56 #define   ippCPUID_SSE2            0x00000004   /* Intel(R) Streaming SIMD Extensions 2                                        */
57 #define   ippCPUID_SSE3            0x00000008   /* Intel(R) Streaming SIMD Extensions 3                                        */
58 #define   ippCPUID_SSSE3           0x00000010   /* Supplemental Streaming SIMD Extensions 3                                    */
59 #define   ippCPUID_MOVBE           0x00000020   /* Intel(R) MOVBE instruction                                                  */
60 #define   ippCPUID_SSE41           0x00000040   /* Intel(R) Streaming SIMD Extensions 4.1                                      */
61 #define   ippCPUID_SSE42           0x00000080   /* Intel(R) Streaming SIMD Extensions 4.2                                      */
62 #define   ippCPUID_AVX             0x00000100   /* Intel(R) Advanced Vector Extensions instruction set                         */
63 #define   ippAVX_ENABLEDBYOS       0x00000200   /* Intel(R) Advanced Vector Extensions instruction set is supported by OS      */
64 #define   ippCPUID_AES             0x00000400   /* Intel(R) AES New Instructions                                               */
65 #define   ippCPUID_CLMUL           0x00000800   /* Intel(R) CLMUL instruction                                                  */
66 #define   ippCPUID_ABR             0x00001000   /* Reserved                                                                    */
67 #define   ippCPUID_RDRAND          0x00002000   /* Intel(R) RDRAND instruction                                                 */
68 #define   ippCPUID_F16C            0x00004000   /* Intel(R) F16C new instructions                                              */
69 #define   ippCPUID_AVX2            0x00008000   /* Intel(R) Advanced Vector Extensions 2 instruction set                       */
70 #define   ippCPUID_ADCOX           0x00010000   /* Intel(R) ADOX/ADCX new instructions                                         */
71 #define   ippCPUID_RDSEED          0x00020000   /* Intel(R) RDSEED instruction                                                 */
72 #define   ippCPUID_PREFETCHW       0x00040000   /* Intel(R) PREFETCHW instruction                                              */
73 #define   ippCPUID_SHA             0x00080000   /* Intel(R) SHA new instructions                                               */
74 #define   ippCPUID_AVX512F         0x00100000   /* Intel(R) Advanced Vector Extensions 3.1 instruction set                     */
75 #define   ippCPUID_AVX512CD        0x00200000   /* Intel(R) Advanced Vector Extensions CD (Conflict Detection) instruction set */
76 #define   ippCPUID_AVX512ER        0x00400000   /* Intel(R) Advanced Vector Extensions ER instruction set                      */
77 #define   ippCPUID_AVX512PF        0x00800000   /* Intel(R) Advanced Vector Extensions PF instruction set                      */
78 #define   ippCPUID_AVX512BW        0x01000000   /* Intel(R) Advanced Vector Extensions BW instruction set                      */
79 #define   ippCPUID_AVX512DQ        0x02000000   /* Intel(R) Advanced Vector Extensions DQ instruction set                      */
80 #define   ippCPUID_AVX512VL        0x04000000   /* Intel(R) Advanced Vector Extensions VL instruction set                      */
81 #define   ippCPUID_AVX512VBMI      0x08000000   /* Intel(R) Advanced Vector Extensions Bit Manipulation instructions           */
82 #define   ippCPUID_MPX             0x10000000   /* Intel(R) Memory Protection Extensions                                       */
83 #define   ippCPUID_AVX512_4FMADDPS 0x20000000   /* Intel(R) Advanced Vector Extensions DL floating-point single precision      */
84 #define   ippCPUID_AVX512_4VNNIW   0x40000000   /* Intel(R) Advanced Vector Extensions DL enhanced word variable precision     */
85 #define   ippCPUID_KNC             0x80000000   /* Intel(R) Xeon Phi(TM) Coprocessor                                           */
86 #if defined( _WIN32 ) || defined ( _WIN64 )
87  #define   ippCPUID_AVX512IFMA     0x100000000L   /* Intel(R) Advanced Vector Extensions IFMA (PMADD52) instruction set        */
88  #define   ippCPUID_NOCHECK    0x8000000000000000L   /* Force ippSetCpuFeatures to set CPU features without check              */
89  #define   ippCPUID_GETINFO_A  0x616f666e69746567L   /* Force ipp_GetCpuFeatures to work as cpuid instruction                  */
90  #define   ippCPUID_AVX512VPOPCNTDQ 0x400000000L     /* Intel(R) Advanced Vector Extensions 512 VPOPCNTDQ instruction set      */
91  #define   ippCPUID_AVX512_BITALG   0x800000000L     /* Intel(R) Advanced Vector Extensions 512 BITALG instruction set         */
92 #else
93  #define   ippCPUID_AVX512IFMA     0x100000000LL   /* Intel(R) Advanced Vector Extensions IFMA (PMADD52) instruction set       */
94  #define   ippCPUID_NOCHECK    0x8000000000000000LL
95  #define   ippCPUID_GETINFO_A  0x616f666e69746567LL
96  #define   ippCPUID_AVX512VPOPCNTDQ 0x400000000LL    /* Intel(R) Advanced Vector Extensions 512 VPOPCNTDQ instruction set      */
97  #define   ippCPUID_AVX512_BITALG   0x800000000LL    /* Intel(R) Advanced Vector Extensions 512 BITALG instruction set         */
98 #endif
99 
100 #endif /* IPP_CPU_FEATURES__ */
101 
102 #define IPP_COUNT_OF( obj )  (sizeof(obj)/sizeof(obj[0]))
103 
104 typedef struct {
105     int type;
106     int level;
107     int size;
108 } IppCache;
109 
110 /*****************************************************************************/
111 /*                   Below are ippSP domain specific definitions             */
112 /*****************************************************************************/
113 typedef enum {
114     ippRndZero,
115     ippRndNear,
116     ippRndFinancial,
117     ippRndHintAccurate=0x10
118 } IppRoundMode;
119 
120 
121 typedef enum {
122     ippAlgHintNone,
123     ippAlgHintFast,
124     ippAlgHintAccurate
125 } IppHintAlgorithm;
126 
127 typedef enum {
128     ippCmpLess,
129     ippCmpLessEq,
130     ippCmpEq,
131     ippCmpGreaterEq,
132     ippCmpGreater
133 } IppCmpOp;
134 
135 typedef enum {
136     ippAlgAuto    = 0x00000000,
137     ippAlgDirect  = 0x00000001,
138     ippAlgFFT     = 0x00000002,
139     ippAlgMask    = 0x000000FF
140 } IppAlgType;
141 
142 typedef enum {
143     ippsNormNone  = 0x00000000, /* default */
144     ippsNormA     = 0x00000100, /* biased normalization */
145     ippsNormB     = 0x00000200, /* unbiased normalization */
146     ippsNormMask  = 0x0000FF00
147 } IppsNormOp;
148 
149 typedef enum {
150     ippNormInf  =   0x00000001,
151     ippNormL1   =   0x00000002,
152     ippNormL2   =   0x00000004
153 } IppNormType;
154 
155 enum {
156     IPP_FFT_DIV_FWD_BY_N = 1,
157     IPP_FFT_DIV_INV_BY_N = 2,
158     IPP_FFT_DIV_BY_SQRTN = 4,
159     IPP_FFT_NODIV_BY_ANY = 8
160 };
161 
162 enum {
163     IPP_DIV_FWD_BY_N = 1,
164     IPP_DIV_INV_BY_N = 2,
165     IPP_DIV_BY_SQRTN = 4,
166     IPP_NODIV_BY_ANY = 8
167 };
168 
169 typedef struct {
170     Ipp32f rho;
171     Ipp32f theta;
172 } IppPointPolar;
173 
174 typedef enum {ippWinBartlett,ippWinBlackman,ippWinHamming,ippWinHann,ippWinRect} IppWinType;
175 
176 typedef enum { ippButterworth, ippChebyshev1 } IppsIIRFilterType;
177 
178 typedef enum  { ippZCR=0,   ippZCXor,   ippZCC } IppsZCType;
179 
180 #if !defined( _OWN_BLDPCS )
181 
182 typedef struct {
183     int left;
184     int right;
185 } IppsROI;
186 
187 typedef struct RandUniState_8u IppsRandUniState_8u;
188 typedef struct RandUniState_16s IppsRandUniState_16s;
189 typedef struct RandUniState_32f IppsRandUniState_32f;
190 typedef struct RandUniState_64f IppsRandUniState_64f;
191 
192 typedef struct RandGaussState_8u IppsRandGaussState_8u;
193 typedef struct RandGaussState_16s IppsRandGaussState_16s;
194 typedef struct RandGaussState_32f IppsRandGaussState_32f;
195 typedef struct RandGaussState_64f IppsRandGaussState_64f;
196 
197 typedef struct FFTSpec_C_32fc   IppsFFTSpec_C_32fc;
198 typedef struct FFTSpec_C_32f    IppsFFTSpec_C_32f;
199 typedef struct FFTSpec_R_32f    IppsFFTSpec_R_32f;
200 
201 typedef struct FFTSpec_C_64fc   IppsFFTSpec_C_64fc;
202 typedef struct FFTSpec_C_64f    IppsFFTSpec_C_64f;
203 typedef struct FFTSpec_R_64f    IppsFFTSpec_R_64f;
204 
205 typedef struct DFTSpec_C_32fc       IppsDFTSpec_C_32fc;
206 typedef struct DFTSpec_C_32f        IppsDFTSpec_C_32f;
207 typedef struct DFTSpec_R_32f        IppsDFTSpec_R_32f;
208 
209 typedef struct DFTSpec_C_64fc       IppsDFTSpec_C_64fc;
210 typedef struct DFTSpec_C_64f        IppsDFTSpec_C_64f;
211 typedef struct DFTSpec_R_64f        IppsDFTSpec_R_64f;
212 
213 typedef struct DCTFwdSpec_32f IppsDCTFwdSpec_32f;
214 typedef struct DCTInvSpec_32f IppsDCTInvSpec_32f;
215 
216 typedef struct DCTFwdSpec_64f IppsDCTFwdSpec_64f;
217 typedef struct DCTInvSpec_64f IppsDCTInvSpec_64f;
218 
219 typedef struct sWTFwdState_32f    IppsWTFwdState_32f;
220 typedef struct sWTFwdState_8u32f  IppsWTFwdState_8u32f;
221 typedef struct sWTFwdState_16s32f IppsWTFwdState_16s32f;
222 typedef struct sWTFwdState_16u32f IppsWTFwdState_16u32f;
223 typedef struct sWTInvState_32f    IppsWTInvState_32f;
224 typedef struct sWTInvState_32f8u  IppsWTInvState_32f8u;
225 typedef struct sWTInvState_32f16s IppsWTInvState_32f16s;
226 typedef struct sWTInvState_32f16u IppsWTInvState_32f16u;
227 
228 typedef struct IIRState_32f      IppsIIRState_32f;
229 typedef struct IIRState_32fc     IppsIIRState_32fc;
230 typedef struct IIRState32f_16s   IppsIIRState32f_16s;
231 typedef struct IIRState32fc_16sc IppsIIRState32fc_16sc;
232 typedef struct IIRState_64f      IppsIIRState_64f;
233 typedef struct IIRState_64fc     IppsIIRState_64fc;
234 typedef struct IIRState64f_32f   IppsIIRState64f_32f;
235 typedef struct IIRState64fc_32fc IppsIIRState64fc_32fc;
236 typedef struct IIRState64f_32s   IppsIIRState64f_32s;
237 typedef struct IIRState64fc_32sc IppsIIRState64fc_32sc;
238 typedef struct IIRState64f_16s   IppsIIRState64f_16s;
239 typedef struct IIRState64fc_16sc IppsIIRState64fc_16sc;
240 
241 typedef struct FIRSpec_32f        IppsFIRSpec_32f;
242 typedef struct FIRSpec_64f        IppsFIRSpec_64f;
243 typedef struct FIRSpec_32fc       IppsFIRSpec_32fc;
244 typedef struct FIRSpec_64fc       IppsFIRSpec_64fc;
245 
246 typedef struct FIRLMSState_32f    IppsFIRLMSState_32f;
247 typedef struct FIRLMSState32f_16s IppsFIRLMSState32f_16s;
248 
249 typedef struct HilbertSpec IppsHilbertSpec;
250 
251 typedef struct FIRSparseState_32f IppsFIRSparseState_32f;
252 typedef struct IIRSparseState_32f IppsIIRSparseState_32f;
253 
254 typedef struct ResamplingPolyphase_16s      IppsResamplingPolyphase_16s;
255 typedef struct ResamplingPolyphaseFixed_16s IppsResamplingPolyphaseFixed_16s;
256 typedef struct ResamplingPolyphase_32f      IppsResamplingPolyphase_32f;
257 typedef struct ResamplingPolyphaseFixed_32f IppsResamplingPolyphaseFixed_32f;
258 
259 #endif /* _OWN_BLDPCS */
260 
261 /*****************************************************************************/
262 /*                   Below are ippIP domain specific definitions             */
263 /*****************************************************************************/
264 #define IPP_TEMPORAL_COPY      0x0
265 #define IPP_NONTEMPORAL_STORE  0x01
266 #define IPP_NONTEMPORAL_LOAD   0x02
267 
268 typedef int IppEnum;
269 
270 #define IPP_DEG_TO_RAD( deg ) ( (deg)/180.0 * IPP_PI )
271 
272 typedef enum {
273     ippiNormNone        = 0x00000000, /* default */
274     ippiNorm            = 0x00000100, /* normalized form */
275     ippiNormCoefficient = 0x00000200, /* correlation coefficient in the range [-1.0 ... 1.0] */
276     ippiNormMask        = 0x0000FF00
277 } IppiNormOp;
278 
279 typedef enum {
280    ippiROIFull   = 0x00000000,
281    ippiROIValid  = 0x00010000,
282    ippiROISame   = 0x00020000,
283    ippiROIMask   = 0x00FF0000
284 } IppiROIShape;
285 
286 typedef enum {
287    ippC0    =  0,
288    ippC1    =  1,
289    ippC2    =  2,
290    ippC3    =  3,
291    ippC4    =  4,
292    ippP2    =  5,
293    ippP3    =  6,
294    ippP4    =  7,
295    ippAC1   =  8,
296    ippAC4   =  9,
297    ippA0C4  = 10,
298    ippAP4   = 11
299 } IppChannels;
300 
301 typedef enum _IppiBorderType {
302     ippBorderRepl         =  1,
303     ippBorderWrap         =  2,
304     ippBorderMirror       =  3, /* left border: 012... -> 21012... */
305     ippBorderMirrorR      =  4, /* left border: 012... -> 210012... */
306     ippBorderDefault      =  5,
307     ippBorderConst        =  6,
308     ippBorderTransp       =  7,
309 
310     /* Flags to use source image memory pixels from outside of the border in particular directions */
311     ippBorderInMemTop     =  0x0010,
312     ippBorderInMemBottom  =  0x0020,
313     ippBorderInMemLeft    =  0x0040,
314     ippBorderInMemRight   =  0x0080,
315     ippBorderInMem        =  ippBorderInMemLeft|ippBorderInMemTop|ippBorderInMemRight|ippBorderInMemBottom,
316 
317     /* Flags to use source image memory pixels from outside of the border for first stage only in multi-stage filters */
318     ippBorderFirstStageInMemTop     =  0x0100,
319     ippBorderFirstStageInMemBottom  =  0x0200,
320     ippBorderFirstStageInMemLeft    =  0x0400,
321     ippBorderFirstStageInMemRight   =  0x0800,
322     ippBorderFirstStageInMem        = ippBorderFirstStageInMemLeft|ippBorderFirstStageInMemTop|ippBorderFirstStageInMemRight|ippBorderFirstStageInMemBottom
323 } IppiBorderType;
324 
325 typedef enum {
326     ippAxsHorizontal,
327     ippAxsVertical,
328     ippAxsBoth,
329     ippAxs45,
330     ippAxs135
331 } IppiAxis;
332 
333 typedef struct {
334     int x;
335     int y;
336     int width;
337     int height;
338 } IppiRect;
339 
340 typedef struct {
341     int x;
342     int y;
343 } IppiPoint;
344 
345 typedef struct {
346     int width;
347     int height;
348 } IppiSize;
349 
350 typedef struct {
351     Ipp32f x;
352     Ipp32f y;
353 } IppiPoint_32f;
354 
355 typedef enum  _IppiMaskSize {
356     ippMskSize1x3 = 13,
357     ippMskSize1x5 = 15,
358     ippMskSize3x1 = 31,
359     ippMskSize3x3 = 33,
360     ippMskSize5x1 = 51,
361     ippMskSize5x5 = 55
362 } IppiMaskSize;
363 
364 enum {
365     IPPI_INTER_NN     = 1,
366     IPPI_INTER_LINEAR = 2,
367     IPPI_INTER_CUBIC  = 4,
368     IPPI_INTER_CUBIC2P_BSPLINE,     /* two-parameter cubic filter (B=1, C=0) */
369     IPPI_INTER_CUBIC2P_CATMULLROM,  /* two-parameter cubic filter (B=0, C=1/2) */
370     IPPI_INTER_CUBIC2P_B05C03,      /* two-parameter cubic filter (B=1/2, C=3/10) */
371     IPPI_INTER_SUPER  = 8,
372     IPPI_INTER_LANCZOS = 16,
373     IPPI_ANTIALIASING  = (1 << 29),
374     IPPI_SUBPIXEL_EDGE = (1 << 30),
375     IPPI_SMOOTH_EDGE   = (1 << 31)
376 };
377 
378 typedef enum {
379     ippNearest = IPPI_INTER_NN,
380     ippLinear = IPPI_INTER_LINEAR,
381     ippCubic = IPPI_INTER_CUBIC2P_CATMULLROM,
382     ippLanczos = IPPI_INTER_LANCZOS,
383     ippHahn = 0,
384     ippSuper = IPPI_INTER_SUPER
385 } IppiInterpolationType;
386 
387 typedef enum {
388     ippPolyphase_1_2,
389     ippPolyphase_3_5,
390     ippPolyphase_2_3,
391     ippPolyphase_7_10,
392     ippPolyphase_3_4
393 } IppiFraction;
394 
395 enum {
396     IPP_FASTN_ORIENTATION = 0x0001,
397     IPP_FASTN_NMS         = 0x0002,
398     IPP_FASTN_CIRCLE      = 0X0004,
399     IPP_FASTN_SCORE_MODE0 = 0X0020
400 };
401 
402 #if !defined( _OWN_BLDPCS )
403 
404 typedef enum {
405     ippAlphaOver,
406     ippAlphaIn,
407     ippAlphaOut,
408     ippAlphaATop,
409     ippAlphaXor,
410     ippAlphaPlus,
411     ippAlphaOverPremul,
412     ippAlphaInPremul,
413     ippAlphaOutPremul,
414     ippAlphaATopPremul,
415     ippAlphaXorPremul,
416     ippAlphaPlusPremul
417 } IppiAlphaType;
418 
419 typedef struct DeconvFFTState_32f_C1R IppiDeconvFFTState_32f_C1R;
420 typedef struct DeconvFFTState_32f_C3R IppiDeconvFFTState_32f_C3R;
421 typedef struct DeconvLR_32f_C1R IppiDeconvLR_32f_C1R;
422 typedef struct DeconvLR_32f_C3R IppiDeconvLR_32f_C3R;
423 
424 typedef enum {
425     ippiFilterBilateralGauss = 100,
426     ippiFilterBilateralGaussFast = 101
427 } IppiFilterBilateralType;
428 
429 typedef struct FilterBilateralSpec IppiFilterBilateralSpec;
430 
431 typedef enum {
432     ippDistNormL1   =   0x00000002
433 } IppiDistanceMethodType;
434 
435 typedef enum {
436     ippResizeFilterHann,
437     ippResizeFilterLanczos
438 } IppiResizeFilterType;
439 
440 typedef struct ResizeFilterState IppiResizeFilterState;
441 
442 typedef struct {
443     Ipp32u borderLeft;
444     Ipp32u borderTop;
445     Ipp32u borderRight;
446     Ipp32u borderBottom;
447 } IppiBorderSize;
448 
449 typedef enum {
450     ippWarpForward,
451     ippWarpBackward
452 } IppiWarpDirection;
453 
454 typedef enum {
455     ippWarpAffine,
456     ippWarpPerspective,
457     ippWarpBilinear
458 } IppiWarpTransformType;
459 
460 
461 typedef struct ResizeSpec_32f   IppiResizeSpec_32f;
462 typedef struct ResizeYUV422Spec IppiResizeYUV422Spec;
463 typedef struct ResizeYUV420Spec IppiResizeYUV420Spec;
464 
465 typedef struct ResizeSpec_64f   IppiResizeSpec_64f;
466 
467 typedef struct IppiWarpSpec     IppiWarpSpec;
468 
469 typedef struct FilterBorderSpec IppiFilterBorderSpec;
470 
471 typedef struct ThresholdAdaptiveSpec IppiThresholdAdaptiveSpec;
472 
473 typedef struct HistogramSpec IppiHistogramSpec;
474 
475 typedef struct {
476    int   cvCompatible;  /* openCV compatible output format */
477    int   cellSize;      /* squre cell size (pixels) */
478    int   blockSize;     /* square block size (pixels) */
479    int   blockStride;   /* block displacement (the same for x- and y- directions) */
480    int   nbins;         /* required number of bins */
481    Ipp32f   sigma;      /* gaussian factor of HOG block weights */
482    Ipp32f   l2thresh;   /* normalization factor */
483    IppiSize winSize;    /* detection window size (pixels) */
484 } IppiHOGConfig;
485 
486 typedef struct FFT2DSpec_C_32fc IppiFFTSpec_C_32fc;
487 typedef struct FFT2DSpec_R_32f IppiFFTSpec_R_32f;
488 
489 typedef struct DFT2DSpec_C_32fc IppiDFTSpec_C_32fc;
490 typedef struct DFT2DSpec_R_32f IppiDFTSpec_R_32f;
491 
492 typedef struct DCT2DFwdSpec_32f IppiDCTFwdSpec_32f;
493 typedef struct DCT2DInvSpec_32f IppiDCTInvSpec_32f;
494 
495 typedef struct iWTFwdSpec_32f_C1R IppiWTFwdSpec_32f_C1R;
496 typedef struct iWTInvSpec_32f_C1R IppiWTInvSpec_32f_C1R;
497 typedef struct iWTFwdSpec_32f_C3R IppiWTFwdSpec_32f_C3R;
498 typedef struct iWTInvSpec_32f_C3R IppiWTInvSpec_32f_C3R;
499 
500 typedef struct MomentState64f IppiMomentState_64f;
501 typedef Ipp64f IppiHuMoment_64f[7];
502 
503 typedef struct LUT_Spec IppiLUT_Spec;
504 
505 #define IPP_HOG_MAX_CELL   (16)  /* max size of CELL */
506 #define IPP_HOG_MAX_BLOCK  (64)  /* max size of BLOCK */
507 #define IPP_HOG_MAX_BINS   (16)  /* max number of BINS */
508 
509 typedef struct _ipHOG   IppiHOGSpec;
510 
511 #endif /* _OWN_BLDPCS */
512 
513 
514          /**** Below are 3D Image (Volume) Processing specific definitions ****/
515 
516 typedef struct {
517     int width;
518     int height;
519     int depth;
520 } IpprVolume;
521 
522 typedef struct {
523     int x;
524     int y;
525     int z;
526     int width;
527     int height;
528     int depth;
529 } IpprCuboid;
530 
531 typedef struct {
532     int x;
533     int y;
534     int z;
535 } IpprPoint;
536 
537 /*****************************************************************************/
538 /*                   Below are ippCV domain specific definitions             */
539 /*****************************************************************************/
540 
541 typedef enum _IppiDifferentialKernel
542 {
543     ippFilterSobelVert,
544     ippFilterSobelHoriz,
545     ippFilterSobel,
546     ippFilterScharrVert,
547     ippFilterScharrHoriz,
548     ippFilterScharr,
549     ippFilterCentralDiffVert,
550     ippFilterCentralDiffHoriz,
551     ippFilterCentralDiff
552 }IppiDifferentialKernel;
553 
554 #if !defined( _OWN_BLDPCS )
555 
556 typedef enum _IppiKernelType {
557     ippKernelSobel     =  0,
558     ippKernelScharr    =  1,
559     ippKernelSobelNeg  =  2
560 } IppiKernelType;
561 
562 typedef enum _IppiNorm {
563     ippiNormInf = 0,
564     ippiNormL1 = 1,
565     ippiNormL2 = 2,
566     ippiNormFM = 3
567 } IppiNorm;
568 
569 typedef struct ipcvMorphState IppiMorphState;
570 typedef struct ipcvMorphStateL IppiMorphStateL;
571 typedef struct ipcvMorphAdvState IppiMorphAdvState;
572 typedef struct ipcvMorphAdvStateL IppiMorphAdvStateL;
573 typedef struct ipcvMorphGrayState_8u IppiMorphGrayState_8u;
574 typedef struct ipcvMorphGrayState_8uL IppiMorphGrayState_8uL;
575 typedef struct ipcvMorphGrayState_32f IppiMorphGrayState_32f;
576 typedef struct ipcvMorphGrayState_32fL IppiMorphGrayState_32fL;
577 
578 typedef struct ipcvConvState IppiConvState;
579 
580 typedef struct _IppiConnectedComp {
581     Ipp64f   area;    /*  area of the segmented component  */
582     Ipp64f   value[3];/*  gray scale value of the segmented component  */
583     IppiRect rect;    /*  bounding rectangle of the segmented component  */
584 } IppiConnectedComp;
585 
586 typedef struct PyramidState IppiPyramidState;
587 
588 typedef IppiPyramidState IppiPyramidDownState_8u_C1R;
589 typedef IppiPyramidState IppiPyramidDownState_16u_C1R;
590 typedef IppiPyramidState IppiPyramidDownState_32f_C1R;
591 typedef IppiPyramidState IppiPyramidDownState_8u_C3R;
592 typedef IppiPyramidState IppiPyramidDownState_16u_C3R;
593 typedef IppiPyramidState IppiPyramidDownState_32f_C3R;
594 typedef IppiPyramidState IppiPyramidUpState_8u_C1R;
595 typedef IppiPyramidState IppiPyramidUpState_16u_C1R;
596 typedef IppiPyramidState IppiPyramidUpState_32f_C1R;
597 typedef IppiPyramidState IppiPyramidUpState_8u_C3R;
598 typedef IppiPyramidState IppiPyramidUpState_16u_C3R;
599 typedef IppiPyramidState IppiPyramidUpState_32f_C3R;
600 
601 
602 typedef struct _IppiPyramid {
603     Ipp8u         **pImage;
604     IppiSize      *pRoi;
605     Ipp64f        *pRate;
606     int           *pStep;
607     Ipp8u         *pState;
608     int            level;
609 } IppiPyramid;
610 
611 typedef struct OptFlowPyrLK IppiOptFlowPyrLK;
612 
613 typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_8u_C1R;
614 typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_16u_C1R;
615 typedef IppiOptFlowPyrLK IppiOptFlowPyrLK_32f_C1R;
616 
617 typedef struct ipcvHaarClassifier_32f IppiHaarClassifier_32f;
618 typedef struct ipcvHaarClassifier_32s IppiHaarClassifier_32s;
619 
620 typedef struct ipcvFGHistogramState_8u_C1R IppFGHistogramState_8u_C1R;
621 typedef struct ipcvFGHistogramState_8u_C3R IppFGHistogramState_8u_C3R;
622 
623 typedef struct ipcvFGGaussianState_8u_C1R IppFGGaussianState_8u_C1R;
624 typedef struct ipcvFGGaussianState_8u_C3R IppFGGaussianState_8u_C3R;
625 
626 typedef enum _IppiInpaintFlag {
627     IPP_INPAINT_TELEA    =  0,
628     IPP_INPAINT_NS       =  1
629 } IppiInpaintFlag;
630 
631 typedef struct ippcvFilterGaussianSpec IppFilterGaussianSpec;
632 
633 typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C1R;
634 typedef struct ipcvInpaintState_8u IppiInpaintState_8u_C3R;
635 
636 typedef struct HoughProbSpec IppiHoughProbSpec;
637 
638 typedef struct FastNSpec IppiFastNSpec;
639 
640 typedef struct _IppiCornerFastN {
641     int     x;
642     int     y;
643     int     cornerType;
644     int     orientation;
645     float   angle;
646     float   score;
647 } IppiCornerFastN;
648 
649 typedef struct FGMMState_8u_C3R IppFGMMState_8u_C3R;
650 
651 typedef struct
652 {
653   unsigned int numFrames;
654   unsigned int maxNGauss;
655   Ipp32f       varInit;
656   Ipp32f       varMin;
657   Ipp32f       varMax;
658   Ipp32f       varWBRatio;
659   Ipp32f       bckgThr;
660   Ipp32f       varNGRatio;
661   Ipp32f       reduction;
662   Ipp8u        shadowValue;
663   char         shadowFlag;
664   Ipp32f       shadowRatio;
665 } IppFGMModel;
666 
667 #endif /* _OWN_BLDPCS */
668 
669 #define IPP_SEGMENT_QUEUE     0x01
670 #define IPP_SEGMENT_DISTANCE  0x02
671 #define IPP_SEGMENT_BORDER_4  0x40
672 #define IPP_SEGMENT_BORDER_8  0x80
673 
674 #define IPP_TRUNC(a,b) ((a)&~((b)-1))
675 #define IPP_APPEND(a,b) (((a)+(b)-1)&~((b)-1))
676 
677 /*****************************************************************************/
678 /*                   Below are ippCC domain specific definitions             */
679 /*****************************************************************************/
680 enum {
681      IPP_UPPER        = 1,
682      IPP_LEFT         = 2,
683      IPP_CENTER       = 4,
684      IPP_RIGHT        = 8,
685      IPP_LOWER        = 16,
686      IPP_UPPER_LEFT   = 32,
687      IPP_UPPER_RIGHT  = 64,
688      IPP_LOWER_LEFT   = 128,
689      IPP_LOWER_RIGHT  = 256
690 };
691 
692 #if !defined( _OWN_BLDPCS )
693 
694 typedef enum {
695     ippDitherNone,
696     ippDitherFS,
697     ippDitherJJN,
698     ippDitherStucki,
699     ippDitherBayer
700 } IppiDitherType;
701 
702 #endif /* _OWN_BLDPCS */
703 
704 /*****************************************************************************/
705 /*                   Below are ippCH domain specific definitions             */
706 /*****************************************************************************/
707 
708 #if !defined( _OWN_BLDPCS )
709 
710 typedef struct {
711  void *pFind;
712  int lenFind;
713 } IppRegExpFind;
714 
715 typedef struct RegExpState IppRegExpState;
716 
717 typedef enum {
718     ippFmtASCII = 0,
719     ippFmtUTF8
720 } IppRegExpFormat;
721 
722 typedef struct RegExpReplaceState IppRegExpReplaceState;
723 
724 #endif /* _OWN_BLDPCS */
725 
726 /*****************************************************************************/
727 /*                   Below are ippDC domain specific definitions             */
728 /*****************************************************************************/
729 
730 #if !defined ( _OWN_BLDPCS )
731 
732 typedef struct MTFState_8u IppMTFState_8u;
733 
734 typedef enum {
735     ippBWTItohTanakaLimSort,
736     ippBWTItohTanakaUnlimSort,
737     ippBWTSuffixSort,
738     ippBWTAutoSort
739 } IppBWTSortAlgorithmHint;
740 
741 typedef struct LZSSState_8u IppLZSSState_8u;
742 
743 typedef struct LZ77State_8u IppLZ77State_8u;
744 typedef enum{
745    IppLZ77FastCompr,
746    IppLZ77AverageCompr,
747    IppLZ77BestCompr
748 } IppLZ77ComprLevel;
749 typedef enum{
750    IppLZ77NoChcksm,
751    IppLZ77Adler32,
752    IppLZ77CRC32
753 } IppLZ77Chcksm;
754 typedef enum {
755    IppLZ77NoFlush,
756    IppLZ77SyncFlush,
757    IppLZ77FullFlush,
758    IppLZ77FinishFlush
759 } IppLZ77Flush;
760 typedef struct IppLZ77Pairs_16u {
761    Ipp16u length;
762    Ipp16u offset;
763 } IppLZ77Pair;
764 typedef enum {
765    IppLZ77StatusInit,
766    IppLZ77StatusLZ77Process,
767    IppLZ77StatusHuffProcess,
768    IppLZ77StatusFinal
769 } IppLZ77DeflateStatus;
770 typedef enum {
771   IppLZ77UseFixed,
772   IppLZ77UseDynamic,
773   IppLZ77UseStored
774 } IppLZ77HuffMode;
775 typedef enum {
776   IppLZ77InflateStatusInit,
777   IppLZ77InflateStatusHuffProcess,
778   IppLZ77InflateStatusLZ77Process,
779   IppLZ77InflateStatusFinal
780 } IppLZ77InflateStatus;
781 
782 typedef struct IppInflateState {
783   const Ipp8u* pWindow;          /* pointer to the sliding window
784                                     (the dictionary for the LZ77 algorithm) */
785   unsigned int winSize;          /* size of the sliding window */
786   unsigned int tableType;        /* type of Huffman code tables
787                                     (for example, 0 - tables for Fixed Huffman codes) */
788   unsigned int tableBufferSize;  /* (ENOUGH = 2048) * (sizeof(code) = 4) -
789                                     sizeof(IppInflateState) */
790 } IppInflateState;
791 
792 typedef enum { /* this type is used as a translator of the inflate_mode type from zlib */
793   ippTYPE,
794   ippLEN,
795   ippLENEXT
796 } IppInflateMode;
797 
798 typedef struct {
799   Ipp16u freq;
800   Ipp16u code;
801 } IppDeflateFreqTable;
802 
803 typedef struct {
804   Ipp16u code;
805   Ipp16u len;
806 } IppDeflateHuffCode;
807 
808 typedef struct RLEState_BZ2 IppRLEState_BZ2;
809 
810 typedef struct EncodeHuffState_BZ2 IppEncodeHuffState_BZ2;
811 
812 typedef struct DecodeHuffState_BZ2 IppDecodeHuffState_BZ2;
813 
814 typedef enum {
815     IppLZO1XST,      /* Single-threaded, generic LZO-compatible*/
816     IppLZO1XMT      /* Multi-threaded */
817 } IppLZOMethod ;
818 
819 typedef struct LZOState_8u IppLZOState_8u;
820 
821 #endif /* _OWN_BLDPCS */
822 
823 /* /////////////////////////////////////////////////////////////////////////////
824 //        The following enumerator defines a status of Intel(R) IPP operations
825 //                     negative value means error
826 */
827     /* errors */
828 #define ippStsCpuNotSupportedErr         -9999/* The target CPU is not supported. */
829 #define ippStsInplaceModeNotSupportedErr -9998/* The inplace operation is currently not supported. */
830 
831 #define ippStsIIRIIRLengthErr             -234 /* Vector length for IIRIIR function is less than 3*(IIR order) */
832 #define ippStsWarpTransformTypeErr        -233 /* The warp transform type is illegal */
833 #define ippStsExceededSizeErr             -232 /* Requested size exceeded the maximum supported ROI size */
834 #define ippStsWarpDirectionErr            -231 /* The warp transform direction is illegal */
835 #define ippStsFilterTypeErr               -230 /* The filter type is incorrect or not supported */
836 #define ippStsNormErr                     -229 /* The norm is incorrect or not supported */
837 #define ippStsAlgTypeErr                  -228 /* Algorithm type is not supported. */
838 #define ippStsMisalignedOffsetErr         -227 /* The offset is not aligned with an element. */
839 #define ippStsBorderErr                   -225 /* Illegal value for border type.*/
840 #define ippStsDitherTypeErr               -224 /* Dithering type is not supported. */
841 #define ippStsUnknownStatusCodeErr        -216 /* Unknown status code. */
842 #define ippStsLzoBrokenStreamErr          -214 /* LZO safe decompression function cannot decode LZO stream.*/
843 #define ippStsRoundModeNotSupportedErr    -213 /* Rounding mode is not supported. */
844 #define ippStsDecimateFractionErr         -212 /* Fraction in Decimate is not supported. */
845 #define ippStsWeightErr                   -211 /* Incorrect value for weight. */
846 #define ippStsQualityIndexErr             -210 /* Cannot calculate the quality index for an image filled with a constant. */
847 #define ippStsIIRPassbandRippleErr        -209 /* Ripple in passband for Chebyshev1 design is less than zero, equal to zero, or greater than 29. */
848 #define ippStsFilterFrequencyErr          -208 /* Cutoff frequency of filter is less than zero, equal to zero, or greater than 0.5. */
849 #define ippStsIIRGenOrderErr              -206 /* Order of the IIR filter for design is less than 1, or greater than 12. */
850 #define ippStsConvergeErr                 -205 /* The algorithm does not converge. */
851 #define ippStsSizeMatchMatrixErr          -204 /* The sizes of the source matrices are unsuitable. */
852 #define ippStsCountMatrixErr              -203 /* Count value is less than or equal to zero. */
853 #define ippStsRoiShiftMatrixErr           -202 /* RoiShift value is negative or not divisible by the size of the data type. */
854 #define ippStsSrcDataErr                  -200 /* The source buffer contains unsupported data.*/
855 #define ippStsSingularErr                 -195 /* Matrix is singular. */
856 #define ippStsSparseErr                   -194 /* Positions of taps are not in ascending order, or are negative, or repetitive. */
857 #define ippStsRegExpOptionsErr            -190 /* RegExp: Options for the pattern are incorrect. */
858 #define ippStsRegExpErr                   -189 /* RegExp: The structure pRegExpState contains incorrect data. */
859 #define ippStsRegExpMatchLimitErr         -188 /* RegExp: The match limit is exhausted. */
860 #define ippStsRegExpQuantifierErr         -187 /* RegExp: Incorrect quantifier. */
861 #define ippStsRegExpGroupingErr           -186 /* RegExp: Incorrect grouping. */
862 #define ippStsRegExpBackRefErr            -185 /* RegExp: Incorrect back reference. */
863 #define ippStsRegExpChClassErr            -184 /* RegExp: Incorrect character class. */
864 #define ippStsRegExpMetaChErr             -183 /* RegExp: Incorrect metacharacter. */
865 #define ippStsStrideMatrixErr             -182 /* Stride value is not positive or not divisible by the size of the data type. */
866 #define ippStsNoiseRangeErr               -125 /* Noise value for Wiener Filter is out of range. */
867 #define ippStsNotEvenStepErr              -108 /* Step value is not pixel multiple. */
868 #define ippStsHistoNofLevelsErr           -107 /* Number of levels for histogram is less than 2. */
869 #define ippStsLUTNofLevelsErr             -106 /* Number of levels for LUT is less than 2. */
870 #define ippStsChannelOrderErr              -60 /* Incorrect order of the destination channels. */
871 #define ippStsDataTypeErr                  -59 /* Data type is incorrect or not supported. */
872 #define ippStsQuadErr                      -58 /* The quadrangle is nonconvex or degenerates into triangle, line, or point */
873 #define ippStsRectErr                      -57 /* Size of the rectangle region is less than, or equal to 1. */
874 #define ippStsCoeffErr                     -56 /* Incorrect values for transformation coefficients. */
875 #define ippStsNoiseValErr                  -55 /* Incorrect value for noise amplitude for dithering. */
876 #define ippStsDitherLevelsErr              -54 /* Number of dithering levels is out of range. */
877 #define ippStsNumChannelsErr               -53 /* Number of channels is incorrect, or not supported. */
878 #define ippStsCOIErr                       -52 /* COI is out of range. */
879 #define ippStsDivisorErr                   -51 /* Divisor is equal to zero, function is aborted. */
880 #define ippStsAlphaTypeErr                 -50 /* Illegal type of image compositing operation. */
881 #define ippStsGammaRangeErr                -49 /* Gamma range bounds is less than, or equal to zero. */
882 #define ippStsChannelErr                   -47 /* Illegal channel number. */
883 #define ippStsToneMagnErr                  -46 /* Tone magnitude is less than, or equal to zero. */
884 #define ippStsToneFreqErr                  -45 /* Tone frequency is negative, or greater than, or equal to 0.5. */
885 #define ippStsTonePhaseErr                 -44 /* Tone phase is negative, or greater than, or equal to 2*PI. */
886 #define ippStsTrnglMagnErr                 -43 /* Triangle magnitude is less than, or equal to zero. */
887 #define ippStsTrnglFreqErr                 -42 /* Triangle frequency is negative, or greater than, or equal to 0.5. */
888 #define ippStsTrnglPhaseErr                -41 /* Triangle phase is negative, or greater than, or equal to 2*PI. */
889 #define ippStsTrnglAsymErr                 -40 /* Triangle asymmetry is less than -PI, or greater than, or equal to PI. */
890 #define ippStsHugeWinErr                   -39 /* Kaiser window is too big. */
891 #define ippStsJaehneErr                    -38 /* Magnitude value is negative. */
892 #define ippStsStrideErr                    -37 /* Stride value is less than the length of the row. */
893 #define ippStsEpsValErr                    -36 /* Negative epsilon value. */
894 #define ippStsWtOffsetErr                  -35 /* Invalid offset value for wavelet filter. */
895 #define ippStsAnchorErr                    -34 /* Anchor point is outside the mask. */
896 #define ippStsMaskSizeErr                  -33 /* Invalid mask size. */
897 #define ippStsShiftErr                     -32 /* Shift value is less than zero. */
898 #define ippStsSampleFactorErr              -31 /* Sampling factor is less than,or equal to zero. */
899 #define ippStsSamplePhaseErr               -30 /* Phase value is out of range: 0 <= phase < factor. */
900 #define ippStsFIRMRFactorErr               -29 /* MR FIR sampling factor is less than, or equal to zero. */
901 #define ippStsFIRMRPhaseErr                -28 /* MR FIR sampling phase is negative, or greater than, or equal to the sampling factor. */
902 #define ippStsRelFreqErr                   -27 /* Relative frequency value is out of range. */
903 #define ippStsFIRLenErr                    -26 /* Length of a FIR filter is less than, or equal to zero. */
904 #define ippStsIIROrderErr                  -25 /* Order of an IIR filter is not valid. */
905 #define ippStsResizeFactorErr              -24 /* Resize factor(s) is less than, or equal to zero. */
906 #define ippStsInterpolationErr             -23 /* Invalid interpolation mode. */
907 #define ippStsMirrorFlipErr                -22 /* Invalid flip mode. */
908 #define ippStsMoment00ZeroErr              -21 /* Moment value M(0,0) is too small to continue calculations. */
909 #define ippStsThreshNegLevelErr            -20 /* Negative value of the level in the threshold operation. */
910 #define ippStsThresholdErr                 -19 /* Invalid threshold bounds. */
911 #define ippStsFftFlagErr                   -18 /* Invalid value for the FFT flag parameter. */
912 #define ippStsFftOrderErr                  -17 /* Invalid value for the FFT order parameter. */
913 #define ippStsStepErr                      -16 /* Step value is not valid. */
914 
915 #ifndef IPPSTATUS_H__
916 #define IPPSTATUS_H__
917 typedef signed int IppStatus;
918     /* start of common with ippCrypto part - any changes MUST be done in both repositories - IPP & ippCrypto */
919   #define ippStsLoadDynErr                  -221 /* Error when loading the dynamic library. */
920   #define ippStsLengthErr                    -15 /* Incorrect value for string length. */
921   #define ippStsNotSupportedModeErr          -14 /* The requested mode is currently not supported. */
922   #define ippStsContextMatchErr              -13 /* Context parameter does not match the operation. */
923   #define ippStsScaleRangeErr                -12 /* Scale bounds are out of range. */
924   #define ippStsOutOfRangeErr                -11 /* Argument is out of range, or point is outside the image. */
925   #define ippStsDivByZeroErr                 -10 /* An attempt to divide by zero. */
926   #define ippStsMemAllocErr                   -9 /* Memory allocated for the operation is not enough.*/
927   #define ippStsNullPtrErr                    -8 /* Null pointer error. */
928   #define ippStsRangeErr                      -7 /* Incorrect values for bounds: the lower bound is greater than the upper bound. */
929   #define ippStsSizeErr                       -6 /* Incorrect value for data size. */
930   #define ippStsBadArgErr                     -5 /* Incorrect arg/param of the function. */
931   #define ippStsNoMemErr                      -4 /* Not enough memory for the operation. */
932   #define ippStsErr                           -2 /* Unknown/unspecified error */
933      /* no errors */
934   #define ippStsNoErr                          0 /* No errors. */
935      /* warnings  */
936   #define ippStsNoOperation                    1 /* No operation has been executed. */
937   #define ippStsDivByZero                      2 /* Zero value(s) for the divisor in the Div function. */
938   #define ippStsWaterfall                     43 /* Cannot load required library, waterfall is used. */
939     /* end of common with ippCrypto part */
940 #endif /* IPPSTATUS_H__ */
941 
942 #define ippStsSqrtNegArg                     3 /* Negative value(s) for the argument in the Sqrt function. */
943 #define ippStsInvZero                        4 /* INF result. Zero value was met by InvThresh with zero level. */
944 #define ippStsEvenMedianMaskSize             5 /* Even size of the Median Filter mask was replaced with the odd one. */
945 #define ippStsLnZeroArg                      7 /* Zero value(s) for the argument in the Ln function. */
946 #define ippStsLnNegArg                       8 /* Negative value(s) for the argument in the Ln function. */
947 #define ippStsNanArg                         9 /* Argument value is not a number. */
948 #define ippStsOverflow                      12 /* Overflow in the operation. */
949 #define ippStsUnderflow                     17 /* Underflow in the operation. */
950 #define ippStsSingularity                   18 /* Singularity in the operation. */
951 #define ippStsDomain                        19 /* Argument is out of the function domain.*/
952 #define ippStsNonIntelCpu                   20 /* The target CPU is not Genuine Intel. */
953 #define ippStsCpuMismatch                   21 /* Cannot set the library for the given CPU. */
954 #define ippStsOvermuchStrings               26 /* Number of destination strings is more than expected. */
955 #define ippStsOverlongString                27 /* Length of one of the destination strings is more than expected. */
956 #define ippStsAffineQuadChanged             28 /* 4th vertex of destination quad is not equal to customer's one. */
957 #define ippStsWrongIntersectROI             29 /* ROI has no intersection with the source or destination ROI. No operation. */
958 #define ippStsWrongIntersectQuad            30 /* Quadrangle has no intersection with the source or destination ROI. No operation. */
959 #define ippStsSrcSizeLessExpected           32 /* DC: Size of the source buffer is less than the expected one.*/
960 #define ippStsDstSizeLessExpected           33 /* DC: Size of the destination buffer is less than the expected one. */
961 #define ippStsDoubleSize                    35 /* Width or height of image is odd. */
962 #define ippStsNotSupportedCpu               36 /* The CPU is not supported. */
963 #define ippStsUnknownCacheSize              37 /* The CPU is supported, but the size of the cache is unknown. */
964 #define ippStsSymKernelExpected             38 /* The Kernel is not symmetric. */
965 #define ippStsEvenMedianWeight              39 /* Even weight of the Weighted Median Filter is replaced with the odd one. */
966 #define ippStsWrongIntersectVOI             40 /* VOI has no intersection with the source or destination volume. No operation. */
967 #define ippStsNoAntialiasing                46 /* The mode does not support antialiasing. */
968 #define ippStsRepetitiveSrcData             47 /* DC: The source data is too repetitive.*/
969 #define ippStsSizeWrn                       48 /* The size does not allow to perform full operation. */
970 #define ippStsFeatureNotSupported           49 /* Current CPU doesn't support at least 1 of the desired features. */
971 #define ippStsUnknownFeature                50 /* At least one of the desired features is unknown. */
972 #define ippStsFeaturesCombination           51 /* Wrong combination of features. */
973 #define ippStsAccurateModeNotSupported      52/* Accurate mode is not supported. */
974 
975 #define ippStsOk ippStsNoErr
976 
977 #endif
978 
979 #define ippRectInfinite ippiWarpGetRectInfinite()
980 
981 #ifdef __cplusplus
982 }
983 #endif
984 
985 #endif /* __IPPICV_TYPES_H__ */
986