/addons/ofxOpenCv/libs/ippicv/include/ipp.h

http://github.com/openframeworks/openFrameworks · C Header · 8451 lines · 2967 code · 888 blank · 4596 comment · 0 complexity · 59252002280ea37ab3c289967927cb00 MD5 · raw file

  1. /*
  2. // Copyright 2014 2015 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. #if !defined( __IPPICV_H__ )
  24. #define __IPPICV_H__
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28. #include "ippicv_defs.h"
  29. #include "ippicv_types.h"
  30. #include "ippicv_redefs.h"
  31. #include "ippversion.h"
  32. /* =============================================================================
  33. ippCore
  34. ============================================================================= */
  35. /* /////////////////////////////////////////////////////////////////////////////
  36. // Name: ippGetLibVersion
  37. // Purpose: getting of the library version
  38. // Returns: the structure of information about version
  39. // of ippcore library
  40. // Parameters:
  41. //
  42. // Notes: not necessary to release the returned structure
  43. */
  44. IPPAPI( const IppLibraryVersion*, ippGetLibVersion, (void) )
  45. /* /////////////////////////////////////////////////////////////////////////////
  46. // Name: ippInit
  47. // Purpose: Automatic switching to best for current cpu library code using.
  48. // Returns:
  49. // ippStsNoErr
  50. //
  51. // Parameter: nothing
  52. //
  53. // Notes: At the moment of this function execution no any other IPP function
  54. // has to be working
  55. */
  56. IPPAPI( IppStatus, ippInit, ( void ))
  57. /* /////////////////////////////////////////////////////////////////////////////
  58. // Functions to allocate and free memory
  59. ///////////////////////////////////////////////////////////////////////////// */
  60. /* /////////////////////////////////////////////////////////////////////////////
  61. // Name: ippMalloc
  62. // Purpose: 64-byte aligned memory allocation
  63. // Parameter:
  64. // len number of bytes
  65. // Returns: pointer to allocated memory
  66. //
  67. // Notes: the memory allocated by ippMalloc has to be free by ippFree
  68. // function only.
  69. */
  70. IPPAPI( void*, ippMalloc, (int length) )
  71. /* /////////////////////////////////////////////////////////////////////////////
  72. // Name: ippFree
  73. // Purpose: free memory allocated by the ippMalloc function
  74. // Parameter:
  75. // ptr pointer to the memory allocated by the ippMalloc function
  76. //
  77. // Notes: use the function to free memory allocated by ippMalloc
  78. */
  79. IPPAPI( void, ippFree, (void* ptr) )
  80. /* ////////////////////////////////////////////////////////////////////////////
  81. // Name: ippSetCpuFeatures
  82. //
  83. // Purpose: Changes the set of enabled/disabled CPU features.
  84. // This function sets the processor-specific code of the Intel IPP
  85. // library according to the processor features specified in cpuFeatures.
  86. //
  87. // Return:
  88. // ippStsNoErr No errors.
  89. // Warnings:
  90. // ippStsFeatureNotSupported Current CPU doesn't support at least 1 of the
  91. // desired features;
  92. // ippStsUnknownFeature At least one of the desired features is unknown;
  93. // ippStsFeaturesCombination Wrong combination of features;
  94. // ippStsCpuMismatch Indicates that the specified processor features
  95. // are not valid. Previously set code is used.
  96. //
  97. // Arguments:
  98. // cpuFeatures Desired features to support by the library
  99. // (see ippdefs.h for ippCPUID_XX definition)
  100. //
  101. // NOTE: this function can re-initializes dispatcher and after the
  102. // call another library (letter) may work
  103. // CAUTION: At the moment of this function excecution no any other IPP
  104. // function has to be working
  105. //
  106. // The next pre-defined sets of features can be used:
  107. // 32-bit code:
  108. // #define PX_FM ( ippCPUID_MMX | ippCPUID_SSE )
  109. // #define W7_FM ( PX_FM | ippCPUID_SSE2 )
  110. // #define V8_FM ( W7_FM | ippCPUID_SSE3 | ippCPUID_SSSE3 )
  111. // #define S8_FM ( V8_FM | ippCPUID_MOVBE )
  112. // #define P8_FM ( V8_FM | ippCPUID_SSE41 | ippCPUID_SSE42 | ippCPUID_AES | ippCPUID_CLMUL | ippCPUID_SHA )
  113. // #define G9_FM ( P8_FM | ippCPUID_AVX | ippAVX_ENABLEDBYOS | ippCPUID_RDRAND | ippCPUID_F16C )
  114. // #define H9_FM ( G9_FM | ippCPUID_AVX2 | ippCPUID_MOVBE | ippCPUID_ADCOX | ippCPUID_RDSEED | ippCPUID_PREFETCHW )
  115. //
  116. // 64-bit code:
  117. // #define PX_FM ( ippCPUID_MMX | ippCPUID_SSE | ippCPUID_SSE2 )
  118. // #define M7_FM ( PX_FM | ippCPUID_SSE3 )
  119. // #define N8_FM ( S8_FM )
  120. // #define U8_FM ( V8_FM )
  121. // #define Y8_FM ( P8_FM )
  122. // #define E9_FM ( G9_FM )
  123. // #define L9_FM ( H9_FM )
  124. //
  125. */
  126. IPPAPI( IppStatus, ippSetCpuFeatures,( Ipp64u cpuFeatures ))
  127. /* =============================================================================
  128. ippVM
  129. ============================================================================= */
  130. /* /////////////////////////////////////////////////////////////////////////////
  131. // Name: ippvmGetLibVersion
  132. // Purpose: getting of the library version
  133. // Returns: the structure of information about version
  134. // of ippVM library
  135. // Parameters:
  136. //
  137. // Notes: not necessary to release the returned structure
  138. */
  139. IPPAPI( const IppLibraryVersion*, ippvmGetLibVersion, (void) )
  140. IPPAPI( IppStatus, ippsExp_32f_A21, (const Ipp32f a[],Ipp32f r[],Ipp32s n))
  141. IPPAPI( IppStatus, ippsExp_64f_A50, (const Ipp64f a[],Ipp64f r[],Ipp32s n))
  142. IPPAPI( IppStatus, ippsLn_32f_A21, (const Ipp32f a[],Ipp32f r[],Ipp32s n))
  143. IPPAPI( IppStatus, ippsLn_64f_A50, (const Ipp64f a[],Ipp64f r[],Ipp32s n))
  144. IPPAPI( IppStatus, ippsInvSqrt_32f_A21, (const Ipp32f a[],Ipp32f r[],Ipp32s n))
  145. IPPAPI( IppStatus, ippsInvSqrt_64f_A50, (const Ipp64f a[],Ipp64f r[],Ipp32s n))
  146. IPPAPI( IppStatus, ippsSqrt_32f_A21, (const Ipp32f a[],Ipp32f r[],Ipp32s n))
  147. IPPAPI( IppStatus, ippsSqrt_64f_A50, (const Ipp64f a[],Ipp64f r[],Ipp32s n))
  148. IPPAPI( IppStatus, ippsPowx_32f_A21, (const Ipp32f a[],const Ipp32f b,Ipp32f r[],Ipp32s n))
  149. IPPAPI( IppStatus, ippsPowx_64f_A50, (const Ipp64f a[],const Ipp64f b,Ipp64f r[],Ipp32s n))
  150. /* =============================================================================
  151. ippSP
  152. ============================================================================= */
  153. /* /////////////////////////////////////////////////////////////////////////////
  154. // Name: ippsGetLibVersion
  155. // Purpose: get the library version
  156. // Parameters:
  157. // Returns: pointer to structure describing version of the ipps library
  158. //
  159. // Notes: don't free the pointer
  160. */
  161. IPPAPI( const IppLibraryVersion*, ippsGetLibVersion, (void) )
  162. /* /////////////////////////////////////////////////////////////////////////////
  163. // Functions to allocate and free memory
  164. ///////////////////////////////////////////////////////////////////////////// */
  165. /* /////////////////////////////////////////////////////////////////////////////
  166. // Name: ippsMalloc
  167. // Purpose: 32-byte aligned memory allocation
  168. // Parameter:
  169. // len number of elements (according to their type)
  170. // Returns: pointer to allocated memory
  171. //
  172. // Notes: the memory allocated by ippsMalloc has to be free by ippsFree
  173. // function only.
  174. */
  175. IPPAPI( Ipp8u*, ippsMalloc_8u, (int len) )
  176. /* /////////////////////////////////////////////////////////////////////////////
  177. // Name: ippsFree
  178. // Purpose: free memory allocated by the ippsMalloc functions
  179. // Parameter:
  180. // ptr pointer to the memory allocated by the ippsMalloc functions
  181. //
  182. // Notes: use the function to free memory allocated by ippsMalloc_*
  183. */
  184. IPPAPI( void, ippsFree, (void* ptr) )
  185. /* /////////////////////////////////////////////////////////////////////////////
  186. // Name: ippsZero
  187. // Purpose: set elements of the vector to zero of corresponding type
  188. // Parameters:
  189. // pDst pointer to the destination vector
  190. // len length of the vectors
  191. // Return:
  192. // ippStsNullPtrErr pointer to the vector is NULL
  193. // ippStsSizeErr length of the vectors is less or equal zero
  194. // ippStsNoErr otherwise
  195. */
  196. IPPAPI(IppStatus, ippsZero_8u, ( Ipp8u* pDst, int len ))
  197. /* /////////////////////////////////////////////////////////////////////////////
  198. // Name: ippsSet
  199. // Purpose: set elements of the destination vector to the value
  200. // Parameters:
  201. // val value to set the elements of the vector
  202. // pDst pointer to the destination vector
  203. // len length of the vectors
  204. // Return:
  205. // ippStsNullPtrErr pointer to the vector is NULL
  206. // ippStsSizeErr length of the vector is less or equal zero
  207. // ippStsNoErr otherwise
  208. */
  209. IPPAPI(IppStatus, ippsSet_8u, ( Ipp8u val, Ipp8u* pDst, int len ))
  210. IPPAPI(IppStatus, ippsSet_16s, ( Ipp16s val, Ipp16s* pDst, int len ))
  211. IPPAPI(IppStatus, ippsSet_32s, ( Ipp32s val, Ipp32s* pDst, int len ))
  212. IPPAPI(IppStatus, ippsSet_32f, ( Ipp32f val, Ipp32f* pDst, int len ))
  213. IPPAPI(IppStatus, ippsSet_64f, ( Ipp64f val, Ipp64f* pDst, int len ))
  214. /* /////////////////////////////////////////////////////////////////////////////
  215. // Names: ippsMagnitude
  216. // Purpose: compute magnitude of every complex element of the source
  217. // Parameters:
  218. // pSrcDst pointer to the source/destination vector
  219. // pSrc pointer to the source vector
  220. // pDst pointer to the destination vector
  221. // len length of the vector(s), number of items
  222. // scaleFactor scale factor value
  223. // Return:
  224. // ippStsNullPtrErr pointer(s) to data vector is NULL
  225. // ippStsSizeErr length of a vector is less or equal 0
  226. // ippStsNoErr otherwise
  227. // Notes:
  228. // dst = sqrt( src.re^2 + src.im^2 )
  229. */
  230. IPPAPI(IppStatus,ippsMagnitude_32f,(const Ipp32f* pSrcRe,const Ipp32f* pSrcIm,
  231. Ipp32f* pDst,int len))
  232. IPPAPI(IppStatus,ippsMagnitude_64f,(const Ipp64f* pSrcRe,const Ipp64f* pSrcIm,
  233. Ipp64f* pDst,int len))
  234. /* /////////////////////////////////////////////////////////////////////////////
  235. // Name: ippsFlip
  236. // Purpose: dst[i] = src[len-i-1], i=0..len-1
  237. // Parameters:
  238. // pSrc pointer to the input vector
  239. // pDst pointer to the output vector
  240. // len length of the vectors, number of items
  241. // Return:
  242. // ippStsNullPtrErr pointer(s) to the data is NULL
  243. // ippStsSizeErr length of the vectors is less or equal zero
  244. // ippStsNoErr otherwise
  245. */
  246. IPPAPI(IppStatus, ippsFlip_16u_I,( Ipp16u* pSrcDst, int len ))
  247. IPPAPI(IppStatus, ippsFlip_32f_I,( Ipp32f* pSrcDst, int len ))
  248. IPPAPI(IppStatus, ippsFlip_64f_I,( Ipp64f* pSrcDst, int len ))
  249. IPPAPI(IppStatus, ippsFlip_8u_I,( Ipp8u* pSrcDst, int len ))
  250. /* /////////////////////////////////////////////////////////////////////////////
  251. // Names: ippsPolarToCart
  252. //
  253. // Purpose: Convert polar coordinate to cartesian. Output data are formed as
  254. // two real vectors.
  255. //
  256. // Parameters:
  257. // pDstMagn an input vector containing the magnitude components
  258. // pDstPhase an input vector containing the phase components(in radians)
  259. // pSrcRe an output complex vector to store the coordinates X
  260. // pSrcIm an output complex vector to store the coordinates Y
  261. // len a length of the arrays
  262. // Return:
  263. // ippStsNoErr Ok
  264. // ippStsNullPtrErr Some of pointers to input or output data are NULL
  265. // ippStsSizeErr The length of the arrays is less or equal zero
  266. //
  267. */
  268. IPPAPI(IppStatus, ippsPolarToCart_32f,(const Ipp32f* pSrcMagn,
  269. const Ipp32f* pSrcPhase, Ipp32f* pDstRe, Ipp32f* pDstIm, int len))
  270. IPPAPI(IppStatus, ippsPolarToCart_64f,(const Ipp64f* pSrcMagn,
  271. const Ipp64f* pSrcPhase, Ipp64f* pDstRe, Ipp64f* pDstIm, int len))
  272. /* /////////////////////////////////////////////////////////////////////////////
  273. // DFT Init Functions
  274. ///////////////////////////////////////////////////////////////////////////// */
  275. /* /////////////////////////////////////////////////////////////////////////////
  276. // Name: ippsDFTInit_C, ippsDFTInit_R
  277. // Purpose: initialize of DFT context
  278. // Arguments:
  279. // length Length of the DFT transform
  280. // flag Flag to choose the results normalization factors
  281. // hint Option to select the algorithmic implementation of the transform
  282. // function
  283. // pDFTSpec Double pointer to the DFT context structure
  284. // pMemInit Pointer to initialization buffer
  285. // Return:
  286. // ippStsNoErr No errors
  287. // ippStsNullPtrErr One of the specified pointers is NULL
  288. // ippStsOrderErr Invalid length value
  289. // ippStsFFTFlagErr Incorrect normalization flag value
  290. // ippStsSizeErr Indicates an error when length is less than or equal to 0
  291. */
  292. IPPAPI (IppStatus, ippsDFTInit_C_32fc,
  293. ( int length, int flag, IppHintAlgorithm hint,
  294. IppsDFTSpec_C_32fc* pDFTSpec, Ipp8u* pMemInit ))
  295. IPPAPI (IppStatus, ippsDFTInit_C_64fc,
  296. ( int length, int flag, IppHintAlgorithm hint,
  297. IppsDFTSpec_C_64fc* pDFTSpec, Ipp8u* pMemInit ))
  298. IPPAPI (IppStatus, ippsDFTInit_R_32f,
  299. ( int length, int flag, IppHintAlgorithm hint,
  300. IppsDFTSpec_R_32f* pDFTSpec, Ipp8u* pMemInit ))
  301. IPPAPI (IppStatus, ippsDFTInit_R_64f,
  302. ( int length, int flag, IppHintAlgorithm hint,
  303. IppsDFTSpec_R_64f* pDFTSpec, Ipp8u* pMemInit ))
  304. /* /////////////////////////////////////////////////////////////////////////////
  305. // DFT Context Functions
  306. ///////////////////////////////////////////////////////////////////////////// */
  307. /* /////////////////////////////////////////////////////////////////////////////
  308. // Name: ippsDFTGetSize_C, ippsDFTGetSize_R
  309. // Purpose: Computes the size of the DFT context structure and the size
  310. of the required work buffer (in bytes)
  311. // Arguments:
  312. // length Length of the DFT transform
  313. // flag Flag to choose the results normalization factors
  314. // hint Option to select the algorithmic implementation of the transform
  315. // function
  316. // pSizeSpec Pointer to the size value of DFT specification structure
  317. // pSizeInit Pointer to the size value of the buffer for DFT initialization function
  318. // pSizeBuf Pointer to the size value of the DFT external work buffer
  319. // Return:
  320. // ippStsNoErr No errors
  321. // ippStsNullPtrErr One of the specified pointers is NULL
  322. // ippStsOrderErr Invalid length value
  323. // ippStsFFTFlagErr Incorrect normalization flag value
  324. // ippStsSizeErr Indicates an error when length is less than or equal to 0
  325. */
  326. IPPAPI (IppStatus, ippsDFTGetSize_R_32f,
  327. ( int length, int flag, IppHintAlgorithm hint,
  328. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  329. IPPAPI (IppStatus, ippsDFTGetSize_R_64f,
  330. ( int length, int flag, IppHintAlgorithm hint,
  331. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  332. IPPAPI (IppStatus, ippsDFTGetSize_C_32fc,
  333. ( int length, int flag, IppHintAlgorithm hint,
  334. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  335. IPPAPI (IppStatus, ippsDFTGetSize_C_64fc,
  336. ( int length, int flag, IppHintAlgorithm hint,
  337. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  338. /* /////////////////////////////////////////////////////////////////////////////
  339. // DFT Complex Transforms
  340. ///////////////////////////////////////////////////////////////////////////// */
  341. /* /////////////////////////////////////////////////////////////////////////////
  342. // Name: ippsDFTFwd_CToC, ippsDFTInv_CToC
  343. // Purpose: Computes forward and inverse DFT of a complex signal
  344. // Arguments:
  345. // pDFTSpec Pointer to the DFT context
  346. // pSrc Pointer to the source complex signal
  347. // pDst Pointer to the destination complex signal
  348. // pSrcRe Pointer to the real part of source signal
  349. // pSrcIm Pointer to the imaginary part of source signal
  350. // pDstRe Pointer to the real part of destination signal
  351. // pDstIm Pointer to the imaginary part of destination signal
  352. // pBuffer Pointer to the work buffer
  353. // scaleFactor Scale factor for output result
  354. // Return:
  355. // ippStsNoErr No errors
  356. // ippStsNullPtrErr One of the specified pointers with the exception of
  357. // pBuffer is NULL
  358. // ippStsContextMatchErr Invalid context structure
  359. // ippStsMemAllocErr Memory allocation fails
  360. */
  361. IPPAPI (IppStatus, ippsDFTInv_CToC_32fc,
  362. ( const Ipp32fc* pSrc, Ipp32fc* pDst,
  363. const IppsDFTSpec_C_32fc* pDFTSpec, Ipp8u* pBuffer ))
  364. IPPAPI (IppStatus, ippsDFTInv_CToC_64fc,
  365. ( const Ipp64fc* pSrc, Ipp64fc* pDst,
  366. const IppsDFTSpec_C_64fc* pDFTSpec, Ipp8u* pBuffer ))
  367. IPPAPI (IppStatus, ippsDFTFwd_CToC_32fc,
  368. ( const Ipp32fc* pSrc, Ipp32fc* pDst,
  369. const IppsDFTSpec_C_32fc* pDFTSpec, Ipp8u* pBuffer ))
  370. IPPAPI (IppStatus, ippsDFTFwd_CToC_64fc,
  371. ( const Ipp64fc* pSrc, Ipp64fc* pDst,
  372. const IppsDFTSpec_C_64fc* pDFTSpec, Ipp8u* pBuffer ))
  373. /* /////////////////////////////////////////////////////////////////////////////
  374. // DFT Real Packed Transforms
  375. ///////////////////////////////////////////////////////////////////////////// */
  376. /* /////////////////////////////////////////////////////////////////////////////
  377. // Name: ippsDFTFwd_RToPerm, ippsDFTFwd_RToPack, ippsDFTFwd_RToCCS
  378. // ippsDFTInv_PermToR, ippsDFTInv_PackToR, ippsDFTInv_CCSToR
  379. // Purpose: Compute forward and inverse DFT of a real signal
  380. // using Perm, Pack or Ccs packed format
  381. // Arguments:
  382. // pFFTSpec Pointer to the DFT context
  383. // pSrc Pointer to the source signal
  384. // pDst Pointer to the destination signal
  385. // pSrcDst Pointer to the source/destination signal (in-place)
  386. // pBuffer Pointer to the work buffer
  387. // scaleFactor Scale factor for output result
  388. // Return:
  389. // ippStsNoErr No errors
  390. // ippStsNullPtrErr One of the specified pointers with the exception of
  391. // pBuffer is NULL
  392. // ippStsContextMatchErr Invalid context structure
  393. // ippStsMemAllocErr Memory allocation fails
  394. */
  395. IPPAPI (IppStatus, ippsDFTInv_PackToR_32f,
  396. ( const Ipp32f* pSrc, Ipp32f* pDst,
  397. const IppsDFTSpec_R_32f* pDFTSpec, Ipp8u* pBuffer ))
  398. IPPAPI (IppStatus, ippsDFTInv_PackToR_64f,
  399. ( const Ipp64f* pSrc, Ipp64f* pDst,
  400. const IppsDFTSpec_R_64f* pDFTSpec, Ipp8u* pBuffer ))
  401. IPPAPI (IppStatus, ippsDFTFwd_RToPack_32f,
  402. ( const Ipp32f* pSrc, Ipp32f* pDst,
  403. const IppsDFTSpec_R_32f* pDFTSpec, Ipp8u* pBuffer ))
  404. IPPAPI (IppStatus, ippsDFTFwd_RToPack_64f,
  405. ( const Ipp64f* pSrc, Ipp64f* pDst,
  406. const IppsDFTSpec_R_64f* pDFTSpec, Ipp8u* pBuffer ))
  407. /* /////////////////////////////////////////////////////////////////////////////
  408. // Dot Product Functions
  409. ///////////////////////////////////////////////////////////////////////////// */
  410. /* /////////////////////////////////////////////////////////////////////////////
  411. // Name: ippsDotProd
  412. // Purpose: compute Dot Product value
  413. // Arguments:
  414. // pSrc1 pointer to the source vector
  415. // pSrc2 pointer to the another source vector
  416. // len vector's length, number of items
  417. // pDp pointer to the result
  418. // scaleFactor scale factor value
  419. // Return:
  420. // ippStsNullPtrErr pointer(s) pSrc pDst is NULL
  421. // ippStsSizeErr length of the vectors is less or equal 0
  422. // ippStsNoErr otherwise
  423. // Notes:
  424. // the functions don't conjugate one of the source vectors
  425. */
  426. IPPAPI ( IppStatus, ippsDotProd_32f64f,
  427. ( const Ipp32f* pSrc1, const Ipp32f* pSrc2, int len, Ipp64f* pDp ))
  428. IPPAPI(IppStatus, ippsDotProd_64f, (const Ipp64f* pSrc1,
  429. const Ipp64f* pSrc2, int len, Ipp64f* pDp))
  430. /* ////////////////////////////////////////////////////////////////////////////
  431. // Names: ippsMinEvery, ippsMaxEvery
  432. // Purpose: calculation min/max value for every element of two vectors
  433. // Parameters:
  434. // pSrc pointer to input vector
  435. // pSrcDst pointer to input/output vector
  436. // len vector's length
  437. // Return:
  438. // ippStsNullPtrErr pointer(s) to the data is NULL
  439. // ippStsSizeErr vector`s length is less or equal zero
  440. // ippStsNoErr otherwise
  441. */
  442. IPPAPI(IppStatus, ippsMaxEvery_32f, ( const Ipp32f* pSrc1, const Ipp32f* pSrc2, Ipp32f* pDst, Ipp32u len ))
  443. IPPAPI(IppStatus, ippsMinEvery_32f, ( const Ipp32f* pSrc1, const Ipp32f* pSrc2, Ipp32f* pDst, Ipp32u len ))
  444. IPPAPI(IppStatus, ippsMinEvery_16u, ( const Ipp16u* pSrc1, const Ipp16u* pSrc2, Ipp16u* pDst, Ipp32u len ))
  445. IPPAPI(IppStatus, ippsMaxEvery_16u, ( const Ipp16u* pSrc1, const Ipp16u* pSrc2, Ipp16u* pDst, Ipp32u len ))
  446. IPPAPI(IppStatus, ippsMinEvery_8u, ( const Ipp8u* pSrc1, const Ipp8u* pSrc2, Ipp8u* pDst, Ipp32u len ))
  447. IPPAPI(IppStatus, ippsMaxEvery_8u, ( const Ipp8u* pSrc1, const Ipp8u* pSrc2, Ipp8u* pDst, Ipp32u len ))
  448. IPPAPI(IppStatus, ippsMinEvery_64f, ( const Ipp64f* pSrc1, const Ipp64f* pSrc2, Ipp64f* pDst, Ipp32u len ))
  449. IPPAPI(IppStatus, ippsMaxEvery_64f, ( const Ipp64f* pSrc1, const Ipp64f* pSrc2, Ipp64f* pDst, Ipp32u len ))
  450. /* ////////////////////////////////////////////////////////////////////////////
  451. // Names: ippsSortAscend, ippsSortDescend
  452. //
  453. // Purpose: Execute sorting of all elemens of the vector.
  454. // ippsSortAscend is sorted in increasing order.
  455. // ippsSortDescend is sorted in decreasing order.
  456. // Arguments:
  457. // pSrcDst pointer to the source/destination vector
  458. // len length of the vector
  459. // Return:
  460. // ippStsNullPtrErr pointer to the data is NULL
  461. // ippStsSizeErr length of the vector is less or equal zero
  462. // ippStsNoErr otherwise
  463. */
  464. IPPAPI(IppStatus, ippsSortAscend_8u_I, (Ipp8u* pSrcDst, int len))
  465. IPPAPI(IppStatus, ippsSortAscend_16s_I, (Ipp16s* pSrcDst, int len))
  466. IPPAPI(IppStatus, ippsSortAscend_16u_I, (Ipp16u* pSrcDst, int len))
  467. IPPAPI(IppStatus, ippsSortAscend_32s_I, (Ipp32s* pSrcDst, int len))
  468. IPPAPI(IppStatus, ippsSortAscend_32f_I, (Ipp32f* pSrcDst, int len))
  469. IPPAPI(IppStatus, ippsSortAscend_64f_I, (Ipp64f* pSrcDst, int len))
  470. IPPAPI(IppStatus, ippsSortDescend_8u_I, (Ipp8u* pSrcDst, int len))
  471. IPPAPI(IppStatus, ippsSortDescend_16s_I, (Ipp16s* pSrcDst, int len))
  472. IPPAPI(IppStatus, ippsSortDescend_16u_I, (Ipp16u* pSrcDst, int len))
  473. IPPAPI(IppStatus, ippsSortDescend_32s_I, (Ipp32s* pSrcDst, int len))
  474. IPPAPI(IppStatus, ippsSortDescend_32f_I, (Ipp32f* pSrcDst, int len))
  475. IPPAPI(IppStatus, ippsSortDescend_64f_I, (Ipp64f* pSrcDst, int len))
  476. IPPAPI(IppStatus,ippsSortIndexAscend_8u_I, (Ipp8u* pSrcDst, int* pDstIdx, int len ))
  477. IPPAPI(IppStatus,ippsSortIndexAscend_16s_I,(Ipp16s* pSrcDst, int* pDstIdx, int len ))
  478. IPPAPI(IppStatus,ippsSortIndexAscend_16u_I,(Ipp16u* pSrcDst, int* pDstIdx, int len ))
  479. IPPAPI(IppStatus,ippsSortIndexAscend_32s_I,(Ipp32s* pSrcDst, int* pDstIdx, int len ))
  480. IPPAPI(IppStatus,ippsSortIndexAscend_32f_I,(Ipp32f* pSrcDst, int* pDstIdx, int len ))
  481. IPPAPI(IppStatus,ippsSortIndexAscend_64f_I,(Ipp64f* pSrcDst, int* pDstIdx, int len ))
  482. IPPAPI(IppStatus,ippsSortIndexDescend_8u_I, (Ipp8u* pSrcDst, int* pDstIdx, int len ))
  483. IPPAPI(IppStatus,ippsSortIndexDescend_16s_I,(Ipp16s* pSrcDst, int* pDstIdx, int len ))
  484. IPPAPI(IppStatus,ippsSortIndexDescend_16u_I,(Ipp16u* pSrcDst, int* pDstIdx, int len ))
  485. IPPAPI(IppStatus,ippsSortIndexDescend_32s_I,(Ipp32s* pSrcDst, int* pDstIdx, int len ))
  486. IPPAPI(IppStatus,ippsSortIndexDescend_32f_I,(Ipp32f* pSrcDst, int* pDstIdx, int len ))
  487. IPPAPI(IppStatus,ippsSortIndexDescend_64f_I,(Ipp64f* pSrcDst, int* pDstIdx, int len ))
  488. /* =============================================================================
  489. ippIP
  490. ============================================================================= */
  491. /* /////////////////////////////////////////////////////////////////////////////
  492. // Name: ippiGetLibVersion
  493. // Purpose: gets the version of the library
  494. // Returns: structure containing information about the current version of
  495. // the Intel IPP library for image processing
  496. // Parameters:
  497. //
  498. // Notes: there is no need to release the returned structure
  499. */
  500. IPPAPI( const IppLibraryVersion*, ippiGetLibVersion, (void) )
  501. /*****************************************************************************************************
  502. // Name: ippiFilterBorderGetSize, ippiFilterBorderInit, ippiFilterBorder
  503. // Purpose: Filters an image using a general integer rectangular kernel
  504. // Returns:
  505. // ippStsNoErr OK
  506. // ippStsNullPtrErr One of the pointers is NULL
  507. // ippStsSizeErr dstRoiSize or kernelSize has a field with zero or negative value
  508. // ippStsDivisorErr Divisor value is zero, function execution is interrupted
  509. //
  510. // Parameters:
  511. // pSrc Distance, in bytes, between the starting points of consecutive lines in the source image
  512. // srcStep Step in bytes through the source image buffer
  513. // pDst Pointer to the destination buffer
  514. // dstStep Distance, in bytes, between the starting points of consecutive lines in the destination image
  515. // dstRoiSize Size of the source and destination ROI in pixels
  516. // pKernel Pointer to the kernel values
  517. // kernelSize Size of the rectangular kernel in pixels.
  518. // divisor The integer value by which the computed result is divided.
  519. // kernelType Kernel type {ipp16s|ipp32f}
  520. // dataType Data type {ipp8u|ipp16u|ipp32f}
  521. // numChannels Number of channels, possible values are 1, 3 or 4
  522. // roundMode Rounding mode (ippRndZero, ippRndNear or ippRndFinancial)
  523. // pSpecSize Pointer to the size (in bytes) of the spec structure
  524. // pBufSize Pointer to the size (in bytes) of the external buffer
  525. // pSpec Pointer to pointer to the allocated and initialized context structure
  526. // borderType Type of the border
  527. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  528. // pBuffer Pointer to the work buffer. It can be equal to NULL if optimization algorithm doesn't demand a work buffer
  529. */
  530. IPPAPI( IppStatus, ippiFilterBorderGetSize, (IppiSize kernelSize, IppiSize dstRoiSize, IppDataType dataType, IppDataType kernelType, int numChannels,int* pSpecSize, int* pBufferSize ))
  531. IPPAPI( IppStatus, ippiFilterBorderInit_16s, ( const Ipp16s* pKernel, IppiSize kernelSize, int divisor, IppDataType dataType, int numChannels , IppRoundMode roundMode, IppiFilterBorderSpec* pSpec ))
  532. IPPAPI( IppStatus, ippiFilterBorderInit_32f, ( const Ipp32f* pKernel, IppiSize kernelSize, IppDataType dataType, int numChannels , IppRoundMode roundMode, IppiFilterBorderSpec* pSpec ))
  533. IPPAPI( IppStatus, ippiFilterBorder_8u_C1R, ( const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp8u borderValue[1], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  534. IPPAPI( IppStatus, ippiFilterBorder_8u_C3R, ( const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp8u borderValue[3], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  535. IPPAPI( IppStatus, ippiFilterBorder_8u_C4R, ( const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp8u borderValue[4], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  536. IPPAPI( IppStatus, ippiFilterBorder_16u_C1R, ( const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16u borderValue[1], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  537. IPPAPI( IppStatus, ippiFilterBorder_16u_C3R, ( const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16u borderValue[3], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  538. IPPAPI( IppStatus, ippiFilterBorder_16u_C4R, ( const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16u borderValue[4], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  539. IPPAPI( IppStatus, ippiFilterBorder_16s_C1R, ( const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16s borderValue[1], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  540. IPPAPI( IppStatus, ippiFilterBorder_16s_C3R, ( const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16s borderValue[3], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  541. IPPAPI( IppStatus, ippiFilterBorder_16s_C4R, ( const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp16s borderValue[4], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  542. IPPAPI( IppStatus, ippiFilterBorder_32f_C1R, ( const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp32f borderValue[1], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  543. IPPAPI( IppStatus, ippiFilterBorder_32f_C3R, ( const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp32f borderValue[3], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  544. IPPAPI( IppStatus, ippiFilterBorder_32f_C4R, ( const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiBorderType border, const Ipp32f borderValue[4], const IppiFilterBorderSpec* pSpec, Ipp8u* pBuffer ))
  545. /* /////////////////////////////////////////////////////////////////////////////
  546. // Names: ippiHistogramGetBufferSize
  547. // Purpose: Get the sizes (in bytes) of the spec and the buffer for ippiHistogram_.
  548. // Parameters:
  549. // dataType - Data type for source image. Possible values are ipp8u, ipp16u, ipp16s or ipp32f.
  550. // roiSize - Size, in pixels, of the source image.
  551. // nLevels - Number of levels values, separate for each channel.
  552. // numChannels - Number of image channels. Possible values are 1, 3, or 4.
  553. // uniform - Type of levels distribution: 0 - with random step, 1 - with uniform step.
  554. // pSpecSize - Pointer to the calculated spec size (in bytes).
  555. // pBufferSize - Pointer to the calculated buffer size (in bytes).
  556. // Return:
  557. // ippStsNoErr - OK.
  558. // ippStsNullPtrErr - Error when any of the specified pointers is NULL.
  559. // ippStsSizeErr - Error when the roiSize has a zero or negative value.
  560. // ippStsHistoNofLevelsErr - Error when the number of levels is less than 2.
  561. // ippStsNumChannelsErr - Error when the numChannels value differs from 1, 3, or 4.
  562. // ippStsDataTypeErr - Error when the dataType value differs from the ipp8u, ipp16u, ipp16s or ipp32f.
  563. */
  564. IPPAPI(IppStatus, ippiHistogramGetBufferSize, (IppDataType dataType, IppiSize roiSize, const int nLevels[], int numChannels, int uniform, int* pSpecSize, int* pBufferSize))
  565. /* /////////////////////////////////////////////////////////////////////////////
  566. // Names: ippiHistogramInit, ippiHistogramUniformInit
  567. // Purpose: Initializes the Spec for ippiHistogram.
  568. // Parameters:
  569. // dataType - Data type for source image. Possible values are ipp8u, ipp16u, ipp16s or ipp32f.
  570. // pLevels - Pointer to the array of level values. In case of multi-channel data, pLevels is an array of pointers to the level values array for each channel.
  571. // lowerLevel - The lower levels for uniform histogram, separate for each channel.
  572. // upperLevel - The upper levels for uniform histogram, separate for each channel.
  573. // nLevels - Number of levels values, separate for each channel.
  574. // numChannels - Number of image channels. Possible values are 1, 3, or 4.
  575. // pSpec - Pointer to the spec object.
  576. // Return:
  577. // ippStsNoErr - OK.
  578. // ippStsNullPtrErr - Error when any of the specified pointers is NULL.
  579. // ippStsNumChannelsErr - Error when the numChannels value differs from 1, 3, or 4.
  580. // ippStsHistoNofLevelsErr - Error when the number of levels is less than 2.
  581. // ippStsRangeErr - Error when consecutive pLevels values don't satisfy the condition: pLevel[i] < pLevel[i+1].
  582. // ippStsDataTypeErr - Error when the dataType value differs from the ipp8u, ipp16u, ipp16s or ipp32f.
  583. // ippStsSizeWrn - Warning ( in case of uniform histogram of integer data type) when rated level step is less than 1.
  584. */
  585. IPPAPI(IppStatus, ippiHistogramInit, (IppDataType dataType, const Ipp32f *pLevels[], int nLevels[], int numChannels, IppiHistogramSpec* pSpec))
  586. IPPAPI(IppStatus, ippiHistogramUniformInit, (IppDataType dataType, Ipp32f lowerLevel[], Ipp32f upperLevel[], int nLevels[], int numChannels, IppiHistogramSpec* pSpec))
  587. /* /////////////////////////////////////////////////////////////////////////////
  588. // Name: ippiHistogramGetLevels
  589. // Purpose: Returns levels arrays stored in the pSpec object.
  590. // Parameters:
  591. // pSpec - Pointer to the spec object.
  592. // pLevels - Pointer to the array of level values. In case of multi-channel data, pLevels is an array of pointers to the level values array for each channel.
  593. // Return:
  594. // ippStsNoErr - OK.
  595. // ippStsNullPtrErr - Error when any of the specified pointers is NULL.
  596. // ippStsBadArgErr - Error when pSpec object doesn`t initialized.
  597. */
  598. IPPAPI(IppStatus, ippiHistogramGetLevels, (const IppiHistogramSpec* pSpec, Ipp32f *pLevels[]))
  599. /* /////////////////////////////////////////////////////////////////////////////
  600. // Name: ippiHistogram
  601. // Purpose: Computes the intensity histogram of an image.
  602. // Parameters:
  603. // pSrc - Pointer to the source image ROI.
  604. // srcStep - Distance, in bytes, between the starting points of consecutive lines in the source image.
  605. // roiSize - Size, in pixels, of the source image.
  606. // pHist - Pointer to the computed histogram. In case of multi-channel data, pHist is an array of pointers to the histogram for each channel.
  607. // pSpec - Pointer to the spec.
  608. // pBuffer - Pointer to the buffer for internal calculations.
  609. // Returns:
  610. // ippStsNoErr - OK.
  611. // ippStsNullPtrErr - Error when any of the specified pointers is NULL.
  612. // ippStsSizeErr - Error when the roiSize has a zero or negative value.
  613. // ippStsStepErr - Error when the srcStep is less than roiSize.width*sizeof(*pSrc)*nChannels.
  614. // ippStsBadArgErr - Error when pSpec object doesn`t initialized.
  615. */
  616. IPPAPI(IppStatus, ippiHistogram_8u_C1R , (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, Ipp32u* pHist , const IppiHistogramSpec* pSpec, Ipp8u* pBuffer))
  617. /* /////////////////////////////////////////////////////////////////////////////
  618. // Name: ippiRemap
  619. // Purpose: Transforms the source image by remapping its pixels
  620. // dst[i,j] = src[xMap[i,j], yMap[i,j]]
  621. // Parameters:
  622. // pSrc Pointer to the source image (point to pixel (0,0)). An array
  623. // of pointers to each plane of the source image for planar data
  624. // srcSize Size of the source image
  625. // srcStep Step through the source image
  626. // srcROI Region if interest in the source image
  627. // pxMap Pointer to image with x coordinates of map
  628. // xMapStep The step in xMap image
  629. // pyMap The pointer to image with y coordinates of map
  630. // yMapStep The step in yMap image
  631. // pDst Pointer to the destination image. An array of pointers
  632. // to each plane of the destination image for planar data
  633. // dstStep Step through the destination image
  634. // dstRoiSize Size of the destination ROI
  635. // interpolation The type of interpolation to perform for image resampling
  636. // The following types are currently supported:
  637. // IPPI_INTER_NN Nearest neighbor interpolation
  638. // IPPI_INTER_LINEAR Linear interpolation
  639. // IPPI_INTER_CUBIC Cubic interpolation
  640. // IPPI_INTER_CUBIC2P_CATMULLROM Catmull-Rom cubic filter
  641. // IPPI_INTER_LANCZOS Interpolation by Lanczos3-windowed sinc function
  642. // The special feature in addition to one of general methods:
  643. // IPPI_SMOOTH_EDGE Edges smoothing
  644. // Returns:
  645. // ippStsNoErr OK
  646. // ippStsNullPtrErr One of the pointers is NULL
  647. // ippStsSizeErr srcROI or dstRoiSize has a field with zero or negative value
  648. // ippStsStepErr One of the step values is zero or negative
  649. // ippStsInterpolateErr interpolation has an illegal value
  650. */
  651. IPPAPI(IppStatus, ippiRemap_8u_C1R, (const Ipp8u* pSrc, IppiSize srcSize,
  652. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  653. const Ipp32f* pyMap, int yMapStep, Ipp8u* pDst, int dstStep,
  654. IppiSize dstRoiSize, int interpolation))
  655. IPPAPI(IppStatus, ippiRemap_8u_C3R, (const Ipp8u* pSrc, IppiSize srcSize,
  656. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  657. const Ipp32f* pyMap, int yMapStep, Ipp8u* pDst, int dstStep,
  658. IppiSize dstRoiSize, int interpolation))
  659. IPPAPI(IppStatus, ippiRemap_8u_C4R, (const Ipp8u* pSrc, IppiSize srcSize,
  660. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  661. const Ipp32f* pyMap, int yMapStep, Ipp8u* pDst, int dstStep,
  662. IppiSize dstRoiSize, int interpolation))
  663. IPPAPI(IppStatus, ippiRemap_16u_C1R, (const Ipp16u* pSrc, IppiSize srcSize,
  664. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  665. const Ipp32f* pyMap, int yMapStep, Ipp16u* pDst, int dstStep,
  666. IppiSize dstRoiSize, int interpolation))
  667. IPPAPI(IppStatus, ippiRemap_16u_C3R, (const Ipp16u* pSrc, IppiSize srcSize,
  668. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  669. const Ipp32f* pyMap, int yMapStep, Ipp16u* pDst, int dstStep,
  670. IppiSize dstRoiSize, int interpolation))
  671. IPPAPI(IppStatus, ippiRemap_16u_C4R, (const Ipp16u* pSrc, IppiSize srcSize,
  672. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  673. const Ipp32f* pyMap, int yMapStep, Ipp16u* pDst, int dstStep,
  674. IppiSize dstRoiSize, int interpolation))
  675. IPPAPI(IppStatus, ippiRemap_16s_C1R, (const Ipp16s* pSrc, IppiSize srcSize,
  676. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  677. const Ipp32f* pyMap, int yMapStep, Ipp16s* pDst, int dstStep,
  678. IppiSize dstRoiSize, int interpolation))
  679. IPPAPI(IppStatus, ippiRemap_16s_C3R, (const Ipp16s* pSrc, IppiSize srcSize,
  680. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  681. const Ipp32f* pyMap, int yMapStep, Ipp16s* pDst, int dstStep,
  682. IppiSize dstRoiSize, int interpolation))
  683. IPPAPI(IppStatus, ippiRemap_16s_C4R, (const Ipp16s* pSrc, IppiSize srcSize,
  684. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  685. const Ipp32f* pyMap, int yMapStep, Ipp16s* pDst, int dstStep,
  686. IppiSize dstRoiSize, int interpolation))
  687. IPPAPI(IppStatus, ippiRemap_32f_C1R, (const Ipp32f* pSrc, IppiSize srcSize,
  688. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  689. const Ipp32f* pyMap, int yMapStep, Ipp32f* pDst, int dstStep,
  690. IppiSize dstRoiSize, int interpolation))
  691. IPPAPI(IppStatus, ippiRemap_32f_C3R, (const Ipp32f* pSrc, IppiSize srcSize,
  692. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  693. const Ipp32f* pyMap, int yMapStep, Ipp32f* pDst, int dstStep,
  694. IppiSize dstRoiSize, int interpolation))
  695. IPPAPI(IppStatus, ippiRemap_32f_C4R, (const Ipp32f* pSrc, IppiSize srcSize,
  696. int srcStep, IppiRect srcROI, const Ipp32f* pxMap, int xMapStep,
  697. const Ipp32f* pyMap, int yMapStep, Ipp32f* pDst, int dstStep,
  698. IppiSize dstRoiSize, int interpolation))
  699. /* /////////////////////////////////////////////////////////////////////////////
  700. // Warp Transform functions
  701. // ////////////////////////////////////////////////////////////////////////// */
  702. /* /////////////////////////////////////////////////////////////////////////////
  703. // Name: ippiWarpGetBufferSize
  704. // Purpose: Computes the size of external buffer for Warp transform
  705. //
  706. // Parameters:
  707. // pSpec Pointer to the Spec structure for warp transform
  708. // dstRoiSize Size of the output image (in pixels)
  709. // numChannels Number of channels, possible values are 1 or 3 or 4
  710. // pBufSize Pointer to the size (in bytes) of the external buffer
  711. //
  712. // Return Values:
  713. // ippStsNoErr Indicates no error
  714. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  715. // ippStsNoOperation Indicates a warning if width or height of output image is zero
  716. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  717. // ippStsNumChannelsErr Indicates an error if numChannels has illegal value
  718. // ippStsSizeErr Indicates an error condition in the following cases:
  719. // - if width or height of the source image is negative,
  720. // - if the calculated buffer size exceeds maximum 32 bit signed integer
  721. // positive value (the processed image ROIs are too large ).
  722. // ippStsSizeWrn Indicates a warning if the destination image size is more than
  723. // the destination image origin size
  724. */
  725. IPPAPI (IppStatus, ippiWarpGetBufferSize, (const IppiWarpSpec* pSpec, IppiSize dstRoiSize, int* pBufSize))
  726. /* /////////////////////////////////////////////////////////////////////////////
  727. // Warp Affine Transform functions
  728. // ////////////////////////////////////////////////////////////////////////// */
  729. /* /////////////////////////////////////////////////////////////////////////////
  730. // Name: ippiWarpAffineGetSize
  731. // Purpose: Computes the size of Spec structure and temporal buffer for Affine transform
  732. //
  733. // Parameters:
  734. // srcSize Size of the input image (in pixels)
  735. // dstSize Size of the output image (in pixels)
  736. // dataType Data type of the source and destination images. Possible values
  737. // are ipp8u, ipp16u, ipp16s, ipp32f and ipp64f.
  738. // coeffs The affine transform coefficients
  739. // interpolation Interpolation method. Supported values: ippNearest, ippLinear and ippCubic.
  740. // direction Transformation direction. Possible values are:
  741. // ippWarpForward - Forward transformation.
  742. // ippWarpBackward - Backward transformation.
  743. // border Type of the border
  744. // pSpecSize Pointer to the size (in bytes) of the Spec structure
  745. // pInitBufSize Pointer to the size (in bytes) of the temporal buffer
  746. //
  747. // Return Values:
  748. // ippStsNoErr Indicates no error
  749. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  750. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  751. // ippStsSizeErr Indicates an error in the following cases:
  752. // - if width or height of the source or destination image is negative,
  753. // - if one of the calculated sizes exceeds maximum 32 bit signed integer
  754. // positive value (the size of the one of the processed images is too large).
  755. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  756. // ippStsWarpDirectionErr Indicates an error when the direction value is illegal.
  757. // ippStsInterpolationErr Indicates an error if interpolation has an illegal value
  758. // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported.
  759. // ippStsCoeffErr Indicates an error condition, if affine transformation is singular.
  760. // ippStsBorderErr Indicates an error if border type has an illegal value
  761. //
  762. */
  763. IPPAPI (IppStatus, ippiWarpAffineGetSize, (IppiSize srcSize, IppiSize dstSize, IppDataType dataType, const double coeffs[2][3],
  764. IppiInterpolationType interpolation, IppiWarpDirection direction,
  765. IppiBorderType borderType, int* pSpecSize, int* pInitBufSize))
  766. /* /////////////////////////////////////////////////////////////////////////////
  767. // Name: ippiWarpAffineNearestInit
  768. // ippiWarpAffineLinearInit
  769. // ippiWarpAffineCubicInit
  770. //
  771. // Purpose: Initializes the Spec structure for the Warp affine transform
  772. // by different interpolation methods
  773. //
  774. // Parameters:
  775. // srcSize Size of the input image (in pixels)
  776. // dstSize Size of the output image (in pixels)
  777. // dataType Data type of the source and destination images. Possible values are:
  778. // ipp8u, ipp16u, ipp16s, ipp32f, ipp64f.
  779. // coeffs The affine transform coefficients
  780. // direction Transformation direction. Possible values are:
  781. // ippWarpForward - Forward transformation.
  782. // ippWarpBackward - Backward transformation.
  783. // numChannels Number of channels, possible values are 1 or 3 or 4
  784. // valueB The first parameter (B) for specifying Cubic filters
  785. // valueC The second parameter (C) for specifying Cubic filters
  786. // border Type of the border
  787. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  788. // smoothEdge The smooth edge flag. Supported values:
  789. // 0 - transform without edge smoothing
  790. // 1 - transform with edge smoothing
  791. // pSpec Pointer to the Spec structure for resize filter
  792. // pInitBuf Pointer to the temporal buffer for several initialization cases
  793. //
  794. // Return Values:
  795. // ippStsNoErr Indicates no error
  796. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  797. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  798. // ippStsSizeErr Indicates an error if width or height of the source or destination
  799. // image is negative
  800. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  801. // ippStsWarpDirectionErr Indicates an error when the direction value is illegal.
  802. // ippStsCoeffErr Indicates an error condition, if the affine transformation is singular.
  803. // ippStsNumChannelsErr Indicates an error if numChannels has illegal value
  804. // ippStsBorderErr Indicates an error if border type has an illegal value
  805. // ippStsWrongIntersectQuad Indicates a warning that no operation is performed, if the transformed
  806. // source image has no intersection with the destination image.
  807. // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported.
  808. //
  809. // Notes/References:
  810. // 1. The equation shows the family of cubic filters:
  811. // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1
  812. // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C); / 6 for 1 <= |x| < 2
  813. // 0 elsewhere
  814. // Some values of (B,C) correspond to known cubic splines: Catmull-Rom (B=0,C=0.5), B-Spline (B=1,C=0) and other.
  815. // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics"
  816. // http://www.mentallandscape.com/Papers_siggraph88.pdf
  817. //
  818. // 2. Supported border types are ippBorderRepl, ippBorderConst, ippBorderTransp and ippBorderInMem
  819. */
  820. IPPAPI (IppStatus, ippiWarpAffineNearestInit, (IppiSize srcSize, IppiSize dstSize, IppDataType dataType, const double coeffs[2][3],
  821. IppiWarpDirection direction, int numChannels, IppiBorderType borderType,
  822. const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec))
  823. IPPAPI (IppStatus, ippiWarpAffineLinearInit, (IppiSize srcSize, IppiSize dstSize, IppDataType dataType, const double coeffs[2][3],
  824. IppiWarpDirection direction, int numChannels, IppiBorderType borderType,
  825. const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec))
  826. IPPAPI (IppStatus, ippiWarpAffineCubicInit, (IppiSize srcSize, IppiSize dstSize, IppDataType dataType, const double coeffs[2][3],
  827. IppiWarpDirection direction, int numChannels, Ipp64f valueB, Ipp64f valueC,
  828. IppiBorderType borderType, const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec,
  829. Ipp8u* pInitBuf))
  830. /* /////////////////////////////////////////////////////////////////////////////
  831. // Name: ippiWarpAffineNearest
  832. // ippiWarpAffineLinear
  833. // ippiWarpAffineCubic
  834. //
  835. // Purpose: Performs affine transform of an image with using different interpolation methods
  836. //
  837. // Parameters:
  838. // pSrc Pointer to the source image
  839. // srcStep Distance (in bytes) between of consecutive lines in the source image
  840. // pDst Pointer to the destination image
  841. // dstStep Distance (in bytes) between of consecutive lines in the destination image
  842. // dstRoiOffset Offset of tiled image respectively destination image origin
  843. // dstRoiSize Size of the destination image (in pixels)
  844. // border Type of the border
  845. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  846. // pSpec Pointer to the Spec structure for resize filter
  847. // pBuffer Pointer to the work buffer
  848. //
  849. // Return Values:
  850. // ippStsNoErr Indicates no error
  851. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  852. // ippStsNoOperation Indicates a warning if width or height of output image is zero
  853. // ippStsBorderErr Indicates an error if border type has an illegal value
  854. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  855. // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported
  856. // ippStsSizeErr Indicates an error if width or height of the destination image
  857. // is negative
  858. // ippStsStepErr Indicates an error if the step value is not data type multiple
  859. // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the
  860. // destination image origin
  861. // ippStsSizeWrn Indicates a warning if the destination image size is more than
  862. // the destination image origin size
  863. // ippStsWrongIntersectQuad Indicates a warning that no operation is performed if the destination
  864. // ROI has no intersection with the transformed source image origin.
  865. //
  866. // Notes:
  867. // 1. Supported border types are ippBorderRepl, ippBorderConst, ippBorderTransp and ippBorderRepl
  868. */
  869. IPPAPI (IppStatus, ippiWarpAffineNearest_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  870. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  871. Ipp8u* pBuffer))
  872. IPPAPI (IppStatus, ippiWarpAffineNearest_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  873. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  874. Ipp8u* pBuffer))
  875. IPPAPI (IppStatus, ippiWarpAffineNearest_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  876. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  877. Ipp8u* pBuffer))
  878. IPPAPI (IppStatus, ippiWarpAffineNearest_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  879. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  880. Ipp8u* pBuffer))
  881. IPPAPI (IppStatus, ippiWarpAffineNearest_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  882. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  883. Ipp8u* pBuffer))
  884. IPPAPI (IppStatus, ippiWarpAffineNearest_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  885. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  886. Ipp8u* pBuffer))
  887. IPPAPI (IppStatus, ippiWarpAffineNearest_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  888. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  889. Ipp8u* pBuffer))
  890. IPPAPI (IppStatus, ippiWarpAffineNearest_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  891. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  892. Ipp8u* pBuffer))
  893. IPPAPI (IppStatus, ippiWarpAffineNearest_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  894. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  895. Ipp8u* pBuffer))
  896. IPPAPI (IppStatus, ippiWarpAffineNearest_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  897. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  898. Ipp8u* pBuffer))
  899. IPPAPI (IppStatus, ippiWarpAffineNearest_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  900. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  901. Ipp8u* pBuffer))
  902. IPPAPI (IppStatus, ippiWarpAffineNearest_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  903. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  904. Ipp8u* pBuffer))
  905. IPPAPI (IppStatus, ippiWarpAffineNearest_64f_C1R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  906. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  907. Ipp8u* pBuffer))
  908. IPPAPI (IppStatus, ippiWarpAffineNearest_64f_C3R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  909. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  910. Ipp8u* pBuffer))
  911. IPPAPI (IppStatus, ippiWarpAffineNearest_64f_C4R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  912. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  913. Ipp8u* pBuffer))
  914. IPPAPI (IppStatus, ippiWarpAffineLinear_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  915. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  916. Ipp8u* pBuffer))
  917. IPPAPI (IppStatus, ippiWarpAffineLinear_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  918. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  919. Ipp8u* pBuffer))
  920. IPPAPI (IppStatus, ippiWarpAffineLinear_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  921. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  922. Ipp8u* pBuffer))
  923. IPPAPI (IppStatus, ippiWarpAffineLinear_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  924. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  925. Ipp8u* pBuffer))
  926. IPPAPI (IppStatus, ippiWarpAffineLinear_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  927. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  928. Ipp8u* pBuffer))
  929. IPPAPI (IppStatus, ippiWarpAffineLinear_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  930. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  931. Ipp8u* pBuffer))
  932. IPPAPI (IppStatus, ippiWarpAffineLinear_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  933. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  934. Ipp8u* pBuffer))
  935. IPPAPI (IppStatus, ippiWarpAffineLinear_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  936. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  937. Ipp8u* pBuffer))
  938. IPPAPI (IppStatus, ippiWarpAffineLinear_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  939. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  940. Ipp8u* pBuffer))
  941. IPPAPI (IppStatus, ippiWarpAffineLinear_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  942. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  943. Ipp8u* pBuffer))
  944. IPPAPI (IppStatus, ippiWarpAffineLinear_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  945. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  946. Ipp8u* pBuffer))
  947. IPPAPI (IppStatus, ippiWarpAffineLinear_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  948. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  949. Ipp8u* pBuffer))
  950. IPPAPI (IppStatus, ippiWarpAffineLinear_64f_C1R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  951. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  952. Ipp8u* pBuffer))
  953. IPPAPI (IppStatus, ippiWarpAffineLinear_64f_C3R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  954. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  955. Ipp8u* pBuffer))
  956. IPPAPI (IppStatus, ippiWarpAffineLinear_64f_C4R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  957. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  958. Ipp8u* pBuffer))
  959. IPPAPI (IppStatus, ippiWarpAffineCubic_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  960. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  961. Ipp8u* pBuffer))
  962. IPPAPI (IppStatus, ippiWarpAffineCubic_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  963. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  964. Ipp8u* pBuffer))
  965. IPPAPI (IppStatus, ippiWarpAffineCubic_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  966. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  967. Ipp8u* pBuffer))
  968. IPPAPI (IppStatus, ippiWarpAffineCubic_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  969. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  970. Ipp8u* pBuffer))
  971. IPPAPI (IppStatus, ippiWarpAffineCubic_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  972. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  973. Ipp8u* pBuffer))
  974. IPPAPI (IppStatus, ippiWarpAffineCubic_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  975. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  976. Ipp8u* pBuffer))
  977. IPPAPI (IppStatus, ippiWarpAffineCubic_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  978. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  979. Ipp8u* pBuffer))
  980. IPPAPI (IppStatus, ippiWarpAffineCubic_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  981. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  982. Ipp8u* pBuffer))
  983. IPPAPI (IppStatus, ippiWarpAffineCubic_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  984. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  985. Ipp8u* pBuffer))
  986. IPPAPI (IppStatus, ippiWarpAffineCubic_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  987. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  988. Ipp8u* pBuffer))
  989. IPPAPI (IppStatus, ippiWarpAffineCubic_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  990. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  991. Ipp8u* pBuffer))
  992. IPPAPI (IppStatus, ippiWarpAffineCubic_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  993. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  994. Ipp8u* pBuffer))
  995. IPPAPI (IppStatus, ippiWarpAffineCubic_64f_C1R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  996. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  997. Ipp8u* pBuffer))
  998. IPPAPI (IppStatus, ippiWarpAffineCubic_64f_C3R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  999. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1000. Ipp8u* pBuffer))
  1001. IPPAPI (IppStatus, ippiWarpAffineCubic_64f_C4R, (const Ipp64f* pSrc, int srcStep, Ipp64f* pDst, int dstStep,
  1002. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1003. Ipp8u* pBuffer))
  1004. /* /////////////////////////////////////////////////////////////////////////////
  1005. // Warp Perspective Transform functions
  1006. // ////////////////////////////////////////////////////////////////////////// */
  1007. /* /////////////////////////////////////////////////////////////////////////////
  1008. // Name: ippiWarpPerspectiveGetSize
  1009. // Purpose: Computes the size of Spec structure and temporal buffer
  1010. // for Perspective transform
  1011. //
  1012. // Parameters:
  1013. // srcSize Size of the input image (in pixels)
  1014. // srcRoi Region of interest in the source image
  1015. // dstSize Size of the output image (in pixels)
  1016. // dataType Data type of the source and destination images. Possible values
  1017. // are ipp8u, ipp16u, ipp16s, ipp32f and ipp64f.
  1018. // coeffs The perspective transform coefficients
  1019. // interpolation Interpolation method. Supported values: ippNearest, ippLinear and ippCubic.
  1020. // direction Transformation direction. Possible values are:
  1021. // ippWarpForward - Forward transformation.
  1022. // ippWarpBackward - Backward transformation.
  1023. // border Type of the border
  1024. // pSpecSize Pointer to the size (in bytes) of the Spec structure
  1025. // pInitBufSize Pointer to the size (in bytes) of the temporal buffer
  1026. //
  1027. // Return Values:
  1028. // ippStsNoErr Indicates no error
  1029. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  1030. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  1031. // ippStsSizeErr Indicates an error in the following cases:
  1032. // - if width or height of the source or destination image is negative,
  1033. // - if one of the calculated sizes exceeds maximum 32 bit signed integer
  1034. // positive value (the size of the one of the processed images is too large).
  1035. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  1036. // ippStsWarpDirectionErr Indicates an error when the direction value is illegal.
  1037. // ippStsInterpolationErr Indicates an error if interpolation has an illegal value
  1038. // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported.
  1039. // ippStsCoeffErr Indicates an error condition, if perspective transformation is singular.
  1040. // ippStsBorderErr Indicates an error if border type has an illegal value
  1041. //
  1042. */
  1043. IPPAPI (IppStatus, ippiWarpPerspectiveGetSize, (IppiSize srcSize, IppiRect srcRoi, IppiSize dstSize, IppDataType dataType,
  1044. const double coeffs[3][3], IppiInterpolationType interpolation,
  1045. IppiWarpDirection direction, IppiBorderType borderType, int* pSpecSize,
  1046. int* pInitBufSize))
  1047. /* /////////////////////////////////////////////////////////////////////////////
  1048. // Name: ippiWarpPerspectiveNearestInit
  1049. // ippiWarpPerspectiveLinearInit
  1050. // ippiWarpPerspectiveCubicInit
  1051. //
  1052. // Purpose: Initializes the Spec structure for the Warp perspective transform
  1053. // by different interpolation methods
  1054. //
  1055. // Parameters:
  1056. // srcSize Size of the input image (in pixels)
  1057. // srcRoi Region of interest in the source image
  1058. // dstSize Size of the output image (in pixels)
  1059. // dataType Data type of the source and destination images. Possible values are:
  1060. // ipp8u, ipp16u, ipp16s, ipp32f, ipp64f.
  1061. // coeffs The perspective transform coefficients
  1062. // direction Transformation direction. Possible values are:
  1063. // ippWarpForward - Forward transformation.
  1064. // ippWarpBackward - Backward transformation.
  1065. // numChannels Number of channels, possible values are 1 or 3 or 4
  1066. // valueB The first parameter (B) for specifying Cubic filters
  1067. // valueC The second parameter (C) for specifying Cubic filters
  1068. // border Type of the border
  1069. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  1070. // smoothEdge The smooth edge flag. Supported values:
  1071. // 0 - transform without edge smoothing
  1072. // 1 - transform with edge smoothing
  1073. // pSpec Pointer to the Spec structure for resize filter
  1074. // pInitBuf Pointer to the temporal buffer for several initialization cases
  1075. //
  1076. // Return Values:
  1077. // ippStsNoErr Indicates no error
  1078. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  1079. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  1080. // ippStsSizeErr Indicates an error if width or height of the source or destination
  1081. // image is negative
  1082. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  1083. // ippStsWarpDirectionErr Indicates an error when the direction value is illegal.
  1084. // ippStsCoeffErr Indicates an error condition, if the perspective transformation is singular.
  1085. // ippStsNumChannelsErr Indicates an error if numChannels has illegal value
  1086. // ippStsBorderErr Indicates an error if border type has an illegal value
  1087. // ippStsWrongIntersectQuad Indicates a warning that no operation is performed, if the transformed
  1088. // source image has no intersection with the destination image.
  1089. // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported.
  1090. //
  1091. // Notes/References:
  1092. // 1. The equation shows the family of cubic filters:
  1093. // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1
  1094. // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C); / 6 for 1 <= |x| < 2
  1095. // 0 elsewhere
  1096. // Some values of (B,C) correspond to known cubic splines: Catmull-Rom (B=0,C=0.5), B-Spline (B=1,C=0) and other.
  1097. // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics"
  1098. // http://www.mentallandscape.com/Papers_siggraph88.pdf
  1099. //
  1100. // 2. Supported border types are ippBorderRepl, ippBorderConst, ippBorderTransp and ippBorderRepl
  1101. */
  1102. IPPAPI (IppStatus, ippiWarpPerspectiveNearestInit, (IppiSize srcSize, IppiRect srcRoi, IppiSize dstSize, IppDataType dataType,
  1103. const double coeffs[3][3], IppiWarpDirection direction, int numChannels,
  1104. IppiBorderType borderType, const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec))
  1105. IPPAPI (IppStatus, ippiWarpPerspectiveLinearInit, (IppiSize srcSize, IppiRect srcRoi, IppiSize dstSize, IppDataType dataType,
  1106. const double coeffs[3][3], IppiWarpDirection direction, int numChannels,
  1107. IppiBorderType borderType, const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec))
  1108. IPPAPI (IppStatus, ippiWarpPerspectiveCubicInit, (IppiSize srcSize, IppiRect srcRoi, IppiSize dstSize, IppDataType dataType, const double coeffs[3][3],
  1109. IppiWarpDirection direction, int numChannels, Ipp64f valueB, Ipp64f valueC,
  1110. IppiBorderType borderType, const Ipp64f *pBorderValue, int smoothEdge, IppiWarpSpec* pSpec,
  1111. Ipp8u* pInitBuf))
  1112. /* /////////////////////////////////////////////////////////////////////////////
  1113. // Name: ippiWarpPerspectiveNearest
  1114. // ippiWarpPerspectiveLinear
  1115. // ippiWarpPerspectiveCubic
  1116. //
  1117. // Purpose: Performs perspective transform of an image with using
  1118. // different interpolation methods
  1119. //
  1120. // Parameters:
  1121. // pSrc Pointer to the source image
  1122. // srcStep Distance (in bytes) between of consecutive lines in the source image
  1123. // pDst Pointer to the destination image
  1124. // dstStep Distance (in bytes) between of consecutive lines in the destination image
  1125. // dstRoiOffset Offset of tiled image respectively destination image origin
  1126. // dstRoiSize Size of the destination image (in pixels)
  1127. // border Type of the border
  1128. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  1129. // pSpec Pointer to the Spec structure for resize filter
  1130. // pBuffer Pointer to the work buffer
  1131. //
  1132. // Return Values:
  1133. // ippStsNoErr Indicates no error
  1134. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  1135. // ippStsNoOperation Indicates a warning if width or height of output image is zero
  1136. // ippStsBorderErr Indicates an error if border type has an illegal value
  1137. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  1138. // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported
  1139. // ippStsSizeErr Indicates an error if width or height of the destination image
  1140. // is negative
  1141. // ippStsStepErr Indicates an error if the step value is not data type multiple
  1142. // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the
  1143. // destination image origin
  1144. // ippStsSizeWrn Indicates a warning if the destination image size is more than
  1145. // the destination image origin size
  1146. // ippStsWrongIntersectQuad Indicates a warning that no operation is performed if the destination
  1147. // ROI has no intersection with the transformed source image origin.
  1148. //
  1149. // Notes:
  1150. // 1. Supported border types are ippBorderRepl, ippBorderConst, ippBorderTransp and ippBorderRepl
  1151. */
  1152. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1153. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1154. Ipp8u* pBuffer))
  1155. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1156. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1157. Ipp8u* pBuffer))
  1158. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1159. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1160. Ipp8u* pBuffer))
  1161. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1162. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1163. Ipp8u* pBuffer))
  1164. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1165. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1166. Ipp8u* pBuffer))
  1167. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1168. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1169. Ipp8u* pBuffer))
  1170. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1171. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1172. Ipp8u* pBuffer))
  1173. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1174. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1175. Ipp8u* pBuffer))
  1176. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1177. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1178. Ipp8u* pBuffer))
  1179. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1180. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1181. Ipp8u* pBuffer))
  1182. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1183. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1184. Ipp8u* pBuffer))
  1185. IPPAPI (IppStatus, ippiWarpPerspectiveNearest_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1186. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1187. Ipp8u* pBuffer))
  1188. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1189. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1190. Ipp8u* pBuffer))
  1191. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1192. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1193. Ipp8u* pBuffer))
  1194. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1195. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1196. Ipp8u* pBuffer))
  1197. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1198. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1199. Ipp8u* pBuffer))
  1200. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1201. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1202. Ipp8u* pBuffer))
  1203. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1204. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1205. Ipp8u* pBuffer))
  1206. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1207. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1208. Ipp8u* pBuffer))
  1209. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1210. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1211. Ipp8u* pBuffer))
  1212. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1213. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1214. Ipp8u* pBuffer))
  1215. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1216. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1217. Ipp8u* pBuffer))
  1218. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1219. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1220. Ipp8u* pBuffer))
  1221. IPPAPI (IppStatus, ippiWarpPerspectiveLinear_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1222. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1223. Ipp8u* pBuffer))
  1224. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1225. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1226. Ipp8u* pBuffer))
  1227. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1228. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1229. Ipp8u* pBuffer))
  1230. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1231. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1232. Ipp8u* pBuffer))
  1233. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1234. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1235. Ipp8u* pBuffer))
  1236. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1237. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1238. Ipp8u* pBuffer))
  1239. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  1240. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1241. Ipp8u* pBuffer))
  1242. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1243. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1244. Ipp8u* pBuffer))
  1245. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1246. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1247. Ipp8u* pBuffer))
  1248. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  1249. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1250. Ipp8u* pBuffer))
  1251. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1252. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1253. Ipp8u* pBuffer))
  1254. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1255. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1256. Ipp8u* pBuffer))
  1257. IPPAPI (IppStatus, ippiWarpPerspectiveCubic_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  1258. IppiPoint dstRoiOffset, IppiSize dstRoiSize, const IppiWarpSpec* pSpec,
  1259. Ipp8u* pBuffer))
  1260. /* /////////////////////////////////////////////////////////////////////////////
  1261. // Alpha Compositing Operations
  1262. ///////////////////////////////////////////////////////////////////////////// */
  1263. /*
  1264. // Contents:
  1265. // ippiAlphaPremul_8u_AC4R, ippiAlphaPremul_16u_AC4R
  1266. // ippiAlphaPremul_8u_AC4IR, ippiAlphaPremul_16u_AC4IR
  1267. // ippiAlphaPremul_8u_AP4R, ippiAlphaPremul_16u_AP4R
  1268. // ippiAlphaPremul_8u_AP4IR, ippiAlphaPremul_16u_AP4IR
  1269. // Pre-multiplies pixel values of an image by its alpha values.
  1270. // ippiAlphaPremulC_8u_AC4R, ippiAlphaPremulC_16u_AC4R
  1271. // ippiAlphaPremulC_8u_AC4IR, ippiAlphaPremulC_16u_AC4IR
  1272. // ippiAlphaPremulC_8u_AP4R, ippiAlphaPremulC_16u_AP4R
  1273. // ippiAlphaPremulC_8u_AP4IR, ippiAlphaPremulC_16u_AP4IR
  1274. // ippiAlphaPremulC_8u_C4R, ippiAlphaPremulC_16u_C4R
  1275. // ippiAlphaPremulC_8u_C4IR, ippiAlphaPremulC_16u_C4IR
  1276. // ippiAlphaPremulC_8u_C3R, ippiAlphaPremulC_16u_C3R
  1277. // ippiAlphaPremulC_8u_C3IR, ippiAlphaPremulC_16u_C3IR
  1278. // ippiAlphaPremulC_8u_C1R, ippiAlphaPremulC_16u_C1R
  1279. // ippiAlphaPremulC_8u_C1IR, ippiAlphaPremulC_16u_C1IR
  1280. // Pre-multiplies pixel values of an image by constant alpha values.
  1281. //
  1282. // ippiAlphaComp_8u_AC4R, ippiAlphaComp_16u_AC4R
  1283. // ippiAlphaComp_8u_AC1R, ippiAlphaComp_16u_AC1R
  1284. // Combines two images using alpha values of both images
  1285. //
  1286. // ippiAlphaCompC_8u_AC4R, ippiAlphaCompC_16u_AC4R
  1287. // ippiAlphaCompC_8u_AP4R, ippiAlphaCompC_16u_AP4R
  1288. // ippiAlphaCompC_8u_C4R, ippiAlphaCompC_16u_C4R
  1289. // ippiAlphaCompC_8u_C3R, ippiAlphaCompC_16u_C3R
  1290. // ippiAlphaCompC_8u_C1R, ippiAlphaCompC_16u_C1R
  1291. // Combines two images using constant alpha values
  1292. //
  1293. // Types of compositing operation (alphaType)
  1294. // OVER ippAlphaOver ippAlphaOverPremul
  1295. // IN ippAlphaIn ippAlphaInPremul
  1296. // OUT ippAlphaOut ippAlphaOutPremul
  1297. // ATOP ippAlphaATop ippAlphaATopPremul
  1298. // XOR ippAlphaXor ippAlphaXorPremul
  1299. // PLUS ippAlphaPlus ippAlphaPlusPremul
  1300. //
  1301. // Type result pixel result pixel (Premul) result alpha
  1302. // OVER aA*A+(1-aA)*aB*B A+(1-aA)*B aA+(1-aA)*aB
  1303. // IN aA*A*aB A*aB aA*aB
  1304. // OUT aA*A*(1-aB) A*(1-aB) aA*(1-aB)
  1305. // ATOP aA*A*aB+(1-aA)*aB*B A*aB+(1-aA)*B aA*aB+(1-aA)*aB
  1306. // XOR aA*A*(1-aB)+(1-aA)*aB*B A*(1-aB)+(1-aA)*B aA*(1-aB)+(1-aA)*aB
  1307. // PLUS aA*A+aB*B A+B aA+aB
  1308. // Here 1 corresponds significance VAL_MAX, multiplication is performed
  1309. // with scaling
  1310. // X * Y => (X * Y) / VAL_MAX
  1311. // and VAL_MAX is the maximum presentable pixel value:
  1312. // VAL_MAX == IPP_MAX_8U for 8u
  1313. // VAL_MAX == IPP_MAX_16U for 16u
  1314. */
  1315. /* /////////////////////////////////////////////////////////////////////////////
  1316. // Name: ippiAlphaPremul_8u_AC4R, ippiAlphaPremul_16u_AC4R
  1317. // ippiAlphaPremul_8u_AC4IR, ippiAlphaPremul_16u_AC4IR
  1318. // ippiAlphaPremul_8u_AP4R, ippiAlphaPremul_16u_AP4R
  1319. // ippiAlphaPremul_8u_AP4IR, ippiAlphaPremul_16u_AP4IR
  1320. //
  1321. // Purpose: Pre-multiplies pixel values of an image by its alpha values
  1322. // for 4-channel images
  1323. // For channels 1-3
  1324. // dst_pixel = (src_pixel * src_alpha) / VAL_MAX
  1325. // For alpha-channel (channel 4)
  1326. // dst_alpha = src_alpha
  1327. // Parameters:
  1328. // pSrc Pointer to the source image for pixel-order data,
  1329. // array of pointers to separate source color planes for planar data
  1330. // srcStep Step through the source image
  1331. // pDst Pointer to the destination image for pixel-order data,
  1332. // array of pointers to separate destination color planes for planar data
  1333. // dstStep Step through the destination image
  1334. // pSrcDst Pointer to the source/destination image, or array of pointers
  1335. // to separate source/destination color planes for in-place functions
  1336. // srcDstStep Step through the source/destination image for in-place functions
  1337. // roiSize Size of the source and destination ROI
  1338. // Returns:
  1339. // ippStsNoErr No errors
  1340. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL, or pSrcDst == NULL
  1341. // ippStsSizeErr The roiSize has a field with negative or zero value
  1342. */
  1343. IPPAPI (IppStatus, ippiAlphaPremul_8u_AC4R,
  1344. ( const Ipp8u* pSrc, int srcStep,
  1345. Ipp8u* pDst, int dstStep,
  1346. IppiSize roiSize ))
  1347. /* ////////////////////////////////////////////////////////////////////////////
  1348. // Names: ippiLUTPalette
  1349. // Purpose: intensity transformation of image using the palette lookup table pTable
  1350. // Parameters:
  1351. // pSrc pointer to the source image
  1352. // srcStep line offset in input data in bytes
  1353. // alphaValue constant alpha channel
  1354. // pDst pointer to the destination image
  1355. // dstStep line offset in output data in bytes
  1356. // roiSize size of source ROI in pixels
  1357. // pTable pointer to palette table of size 2^nBitSize or
  1358. // array of pointers to each channel
  1359. // nBitSize number of valid bits in the source image
  1360. // (range [1,8] for 8u source images and range [1,16] for 16u source images)
  1361. // Returns:
  1362. // ippStsNoErr no errors
  1363. // ippStsNullPtrErr pSrc == NULL or pDst == NULL or pTable == NULL
  1364. // ippStsSizeErr width or height of ROI is less or equal zero
  1365. // ippStsOutOfRangeErr nBitSize is out of range
  1366. // Notes:
  1367. */
  1368. IPPAPI(IppStatus, ippiLUTPalette_8u32u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32u* pDst, int dstStep,
  1369. IppiSize roiSize, const Ipp32u* pTable, int nBitSize))
  1370. IPPAPI(IppStatus, ippiLUTPalette_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  1371. IppiSize roiSize, const Ipp8u* pTable, int nBitSize))
  1372. /* /////////////////////////////////////////////////////////////////////////////
  1373. // Name: ippiCountInRange
  1374. //
  1375. // Purpose: Computes the number of pixels with intensity values within the given range
  1376. //
  1377. // Returns: IppStatus
  1378. // ippStsNoErr No errors
  1379. // ippStsNullPtrErr pSrc == NULL
  1380. // ippStsStepErr srcStep is less than or equal to zero
  1381. // ippStsSizeErr roiSize has a field with zero or negative value
  1382. // ippStsRangeErr lowerBound is greater than upperBound
  1383. //
  1384. // Parameters:
  1385. // pSrc Pointer to the source buffer
  1386. // roiSize Size of the source ROI
  1387. // srcStep Step through the source image buffer
  1388. // counts Number of pixels within the given intensity range
  1389. // lowerBound Lower limit of the range
  1390. // upperBound Upper limit of the range
  1391. */
  1392. IPPAPI(IppStatus, ippiCountInRange_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize,
  1393. int* counts, Ipp8u lowerBound, Ipp8u upperBound))
  1394. IPPAPI(IppStatus, ippiCountInRange_32f_C1R, (const Ipp32f* pSrc, int srcStep, IppiSize roiSize,
  1395. int* counts, Ipp32f lowerBound, Ipp32f upperBound))
  1396. /* ////////////////////////////////////////////////////////////////////////////////////
  1397. // Name: ippiAdd_32f_C1IR, ippiAdd_32f_C3IR, ippiAdd_32f_C4IR, ippiAdd_32f_AC4IR,
  1398. // ippiSub_32f_C1IR, ippiSub_32f_C3IR, ippiSub_32f_C4IR, ippiSub_32f_AC4IR,
  1399. // ippiMul_32f_C1IR, ippiMul_32f_C3IR, ippiMul_32f_C4IR, ippiMul_32f_AC4IR
  1400. //
  1401. // Purpose: Adds, subtracts, or multiplies pixel values of two source images
  1402. // and places the results in the first image.
  1403. //
  1404. // Returns:
  1405. // ippStsNoErr OK
  1406. // ippStsNullPtrErr One of the pointers is NULL
  1407. // ippStsSizeErr Width or height of images is less than or equal to zero
  1408. //
  1409. // Parameters:
  1410. // pSrc Pointer to the second source image
  1411. // srcStep Step through the second source image
  1412. // pSrcDst Pointer to the first source/destination image
  1413. // srcDstStep Step through the first source/destination image
  1414. // roiSize Size of the ROI
  1415. */
  1416. IPPAPI(IppStatus, ippiAdd_32f_C1IR, (const Ipp32f* pSrc, int srcStep, Ipp32f* pSrcDst,
  1417. int srcDstStep, IppiSize roiSize))
  1418. /* //////////////////////////////////////////////////////////////////////////////////////////////
  1419. // Name: ippiAddC_8u_C1IRSfs, ippiAddC_8u_C3IRSfs, ippiAddC_8u_C4IRSfs, ippiAddC_8u_AC4IRSfs,
  1420. // ippiAddC_16s_C1IRSfs, ippiAddC_16s_C3IRSfs, ippiAddC_16s_C4IRSfs, ippiAddC_16s_AC4IRSfs,
  1421. // ippiAddC_16u_C1IRSfs, ippiAddC_16u_C3IRSfs, ippiAddC_16u_C4IRSfs, ippiAddC_16u_AC4IRSfs,
  1422. // ippiSubC_8u_C1IRSfs, ippiSubC_8u_C3IRSfs, ippiSubC_8u_C4IRSfs, ippiSubC_8u_AC4IRSfs,
  1423. // ippiSubC_16s_C1IRSfs, ippiSubC_16s_C3IRSfs, ippiSubC_16s_C4IRSfs, ippiSubC_16s_AC4IRSfs,
  1424. // ippiSubC_16u_C1IRSfs, ippiSubC_16u_C3IRSfs, ippiSubC_16u_C4IRSfs, ippiSubC_16u_AC4IRSfs,
  1425. // ippiMulC_8u_C1IRSfs, ippiMulC_8u_C3IRSfs, ippiMulC_8u_C4IRSfs, ippiMulC_8u_AC4IRSfs,
  1426. // ippiMulC_16s_C1IRSfs, ippiMulC_16s_C3IRSfs, ippiMulC_16s_C4IRSfs, ippiMulC_16s_AC4IRSfs
  1427. // ippiMulC_16u_C1IRSfs, ippiMulC_16u_C3IRSfs, ippiMulC_16u_C4IRSfs, ippiMulC_16u_AC4IRSfs
  1428. //
  1429. // Purpose: Adds, subtracts, or multiplies pixel values of an image and a constant
  1430. // and places the scaled results in the same image.
  1431. //
  1432. // Returns:
  1433. // ippStsNoErr OK
  1434. // ippStsNullPtrErr Pointer is NULL
  1435. // ippStsSizeErr Width or height of an image is less than or equal to zero
  1436. //
  1437. // Parameters:
  1438. // value Constant value (constant vector for multi-channel images)
  1439. // pSrcDst Pointer to the image
  1440. // srcDstStep Step through the image
  1441. // roiSize Size of the ROI
  1442. // scaleFactor Scale factor
  1443. */
  1444. IPPAPI(IppStatus, ippiAddC_16s_C1IRSfs, (Ipp16s value, Ipp16s* pSrcDst, int srcDstStep,
  1445. IppiSize roiSize, int scaleFactor))
  1446. IPPAPI(IppStatus, ippiAddC_32f_C1IR, (Ipp32f value, Ipp32f* pSrcDst, int srcDstStep,
  1447. IppiSize roiSize))
  1448. IPPAPI(IppStatus, ippiAddC_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f value, Ipp32f* pDst,
  1449. int dstStep, IppiSize roiSize))
  1450. IPPAPI(IppStatus, ippiMulC_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f value, Ipp32f* pDst,
  1451. int dstStep, IppiSize roiSize))
  1452. /* ///////////////////////////////////////////////////////////////////////////
  1453. // Filters with Fixed Kernel
  1454. /////////////////////////////////////////////////////////////////////////// */
  1455. /* ////////////////////////////////////////////////////////////////////////////
  1456. // Kernels:
  1457. //
  1458. // 1 1 1
  1459. // PrewittHoriz 0 0 0
  1460. // -1 -1 -1
  1461. //
  1462. //
  1463. // -1 0 1
  1464. // PrewittVert -1 0 1
  1465. // -1 0 1
  1466. //
  1467. //
  1468. // 1 2 1
  1469. // SobelHoriz 0 0 0
  1470. // -1 -2 -1
  1471. //
  1472. //
  1473. // -1 0 1
  1474. // SobelVert -2 0 2
  1475. // -1 0 1
  1476. //
  1477. //
  1478. // 0 0 0
  1479. // RobetsDown 0 1 0
  1480. // 0 0 -1
  1481. //
  1482. //
  1483. // 0 0 0
  1484. // RobertsUp 0 1 0
  1485. // -1 0 0
  1486. //
  1487. //
  1488. // -1 -1 1
  1489. // Sharpen -1 16 1 X 1/8
  1490. // -1 -1 1
  1491. //
  1492. //
  1493. // 3 0 -3
  1494. // ScharrVert 10 0 -10
  1495. // 3 0 -3
  1496. //
  1497. //
  1498. // 3 10 3
  1499. // ScharrHoriz 0 0 0
  1500. // -3 -10 -3
  1501. //
  1502. //
  1503. // -1 -1 1
  1504. // Laplace (3x3) -1 8 1
  1505. // -1 -1 1
  1506. //
  1507. //
  1508. // 1 2 1
  1509. // Gauss (3x3) 2 4 2 X 1/16
  1510. // 1 2 1
  1511. //
  1512. //
  1513. // 1 1 1
  1514. // Lowpass (3x3) 1 1 1 X 1/9
  1515. // 1 1 1
  1516. //
  1517. //
  1518. // -1 -1 -1
  1519. // Hipass (3x3 ) -1 8 -1
  1520. // -1 -1 -1
  1521. //
  1522. //
  1523. // -1 0 1
  1524. // SobelVert (3x3) -2 0 2
  1525. // -1 0 1
  1526. //
  1527. //
  1528. // 1 2 1
  1529. // SobelHoriz (3x3) 0 0 0
  1530. // -1 -2 -1
  1531. //
  1532. //
  1533. // 1 -2 1
  1534. // SobelVertSecond (3x3) 2 -4 2
  1535. // 1 -2 1
  1536. //
  1537. //
  1538. // 1 2 1
  1539. // SobelHorizSecond (3x3) -2 -4 -2
  1540. // 1 2 1
  1541. //
  1542. //
  1543. // -1 0 1
  1544. // SobelCross (3x3) 0 0 0
  1545. // 1 0 -1
  1546. //
  1547. //
  1548. // -1 -3 -4 -3 -1
  1549. // -3 0 6 0 -3
  1550. // Laplace (5x5) -4 6 20 6 -4
  1551. // -3 0 6 0 -3
  1552. // -1 -3 -4 -3 -1
  1553. //
  1554. // 2 7 12 7 2
  1555. // 7 31 52 31 7
  1556. // Gauss (5x5) 12 52 127 52 12 X 1/571
  1557. // 7 31 52 31 7
  1558. // 2 7 12 7 2
  1559. //
  1560. // 1 1 1 1 1
  1561. // 1 1 1 1 1
  1562. // Lowpass (5x5) 1 1 1 1 1 X 1/25
  1563. // 1 1 1 1 1
  1564. // 1 1 1 1 1
  1565. //
  1566. //
  1567. // -1 -1 -1 -1 -1
  1568. // -1 -1 -1 -1 -1
  1569. // Hipass (5x5) -1 -1 24 -1 -1
  1570. // -1 -1 -1 -1 -1
  1571. // -1 -1 -1 -1 -1
  1572. //
  1573. // -1 -2 0 2 1
  1574. // -4 -8 0 8 4
  1575. // SobelVert (5x5) -6 -12 0 12 6
  1576. // -4 -8 0 8 4
  1577. // -1 -2 0 2 1
  1578. //
  1579. // 1 4 6 4 1
  1580. // 2 8 12 8 2
  1581. // SobelHoriz (5x5) 0 0 0 0 0
  1582. // -2 -8 -12 -8 -4
  1583. // -1 -4 -6 -4 -1
  1584. //
  1585. // 1 0 -2 0 1
  1586. // 4 0 -8 0 4
  1587. // SobelVertSecond (5x5) 6 0 -12 0 6
  1588. // 4 0 -8 0 4
  1589. // 1 0 -2 0 1
  1590. //
  1591. // 1 4 6 4 1
  1592. // 0 0 0 0 0
  1593. // SobelHorizSecond (5x5) -2 -8 -12 -8 -2
  1594. // 0 0 0 0 0
  1595. // 1 4 6 4 1
  1596. //
  1597. // -1 -2 0 2 1
  1598. // -2 -4 0 4 2
  1599. // SobelCross (5x5) 0 0 0 0 0
  1600. // 2 4 0 -4 -2
  1601. // 1 2 0 -2 -1
  1602. //
  1603. */
  1604. /* /////////////////////////////////////////////////////////////////////////////
  1605. // Name: ippiFilterSobelHorizBorderGetBufferSize
  1606. // ippiFilterSobelVertBorderGetBufferSize
  1607. // ippiFilterScharrHorizMaskBorderGetBufferSize
  1608. // ippiFilterScharrVertMaskBorderGetBufferSize
  1609. // ippiFilterPrewittHorizBorderGetBufferSize
  1610. // ippiFilterPrewittVertBorderGetBufferSize
  1611. // ippiFilterRobertsDownBorderGetBufferSize
  1612. // ippiFilterRobertsUpBorderGetBufferSize
  1613. // ippiFilterSobelHorizSecondBorderGetBufferSize
  1614. // ippiFilterSobelVertSecondBorderGetBufferSize
  1615. // ippiFilterSobelNegVertBorderGetBufferSize
  1616. //
  1617. // Purpose: Computes the size of the external buffer for fixed filter with border
  1618. //
  1619. // Parameters:
  1620. // roiSize Size of destination ROI in pixels.
  1621. // mask Predefined mask of IppiMaskSize type.
  1622. // srcDataType Data type of the source image.
  1623. // dstDataType Data type of the destination image.
  1624. // numChannels Number of channels in the images.
  1625. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  1626. //
  1627. // Return Values:
  1628. // ippStsNoErr Indicates no error.
  1629. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  1630. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  1631. // ippStsMaskSizeErr Indicates an error condition if mask has a wrong value.
  1632. // ippStsDataTypeErr Indicates an error when srcDataType or dstDataType has an illegal value.
  1633. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  1634. */
  1635. IPPAPI(IppStatus, ippiFilterSobelHorizBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1636. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1637. IPPAPI(IppStatus, ippiFilterSobelVertBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1638. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1639. IPPAPI(IppStatus, ippiFilterScharrHorizMaskBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1640. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1641. IPPAPI(IppStatus, ippiFilterScharrVertMaskBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1642. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1643. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1644. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1645. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1646. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1647. IPPAPI(IppStatus, ippiFilterSobelNegVertBorderGetBufferSize,(IppiSize dstRoiSize, IppiMaskSize mask,
  1648. IppDataType srcDataType, IppDataType dstDataType, int numChannels, int* pBufferSize))
  1649. /* /////////////////////////////////////////////////////////////////////////////
  1650. // Name: ippiFilterSobelVertBorder_8u16s_C1R
  1651. // ippiFilterSobelHorizBorder_8u16s_C1R
  1652. // ippiFilterScharrVertMaskBorder_8u16s_C1R
  1653. // ippiFilterScharrHorizMaskBorder_8u16s_C1R
  1654. // ippiFilterPrewittVertBorder_8u16s_C1R
  1655. // ippiFilterPrewittHorizBorder_8u16s_C1R
  1656. // ippiFilterRobertsDownBorder_8u16s_C1R
  1657. // ippiFilterRobertsUpBorder_8u16s_C1R
  1658. // ippiFilterSobelVertSecondBorder_8u16s_C1R
  1659. // ippiFilterSobelHorizSecondBorder_8u16s_C1R
  1660. // ippiFilterSobelNegVertBorder_8u16s_C1R
  1661. // ippiFilterSobelVertBorder_16s_C1R
  1662. // ippiFilterSobelHorizBorder_16s_C1R
  1663. // ippiFilterScharrVertMaskBorder_16s_C1R
  1664. // ippiFilterScharrHorizMaskBorder_16s_C1R
  1665. // ippiFilterPrewittVertBorder_16s_C1R
  1666. // ippiFilterPrewittHorizBorder_16s_C1R
  1667. // ippiFilterRobertsDownBorder_16s_C1R
  1668. // ippiFilterRobertsUpBorder_16s_C1R
  1669. // ippiFilterSobelVertBorder_32f_C1R
  1670. // ippiFilterSobelHorizBorder_32f_C1R
  1671. // ippiFilterScharrVertMaskBorder_32f_C1R
  1672. // ippiFilterScharrHorizMaskBorder_32f_C1R
  1673. // ippiFilterPrewittVertBorder_32f_C1R
  1674. // ippiFilterPrewittHorizBorder_32f_C1R
  1675. // ippiFilterRobertsDownBorder_32f_C1R
  1676. // ippiFilterRobertsUpBorder_32f_C1R
  1677. // ippiFilterSobelVertSecondBorder_32f_C1R
  1678. // ippiFilterSobelHorizSecondBorder_32f_C1R
  1679. // ippiFilterSobelNegVertBorder_32f_C1R
  1680. // ippiFilterLaplaceBorder_8u_C1R
  1681. // ippiFilterLaplaceBorder_8u_C3R
  1682. // ippiFilterLaplaceBorder_8u_C4R
  1683. // ippiFilterLaplaceBorder_8u_AC4R
  1684. // ippiFilterLaplaceBorder_16s_C1R
  1685. // ippiFilterLaplaceBorder_16s_C3R
  1686. // ippiFilterLaplaceBorder_16s_C4R
  1687. // ippiFilterLaplaceBorder_16s_AC4R
  1688. // ippiFilterLaplaceBorder_32f_C1R
  1689. // ippiFilterLaplaceBorder_32f_C3R
  1690. // ippiFilterLaplaceBorder_32f_C4R
  1691. // ippiFilterLaplaceBorder_32f_AC4R
  1692. // ippiFilterHipassBorder_8u_C1R
  1693. // ippiFilterHipassBorder_8u_C3R
  1694. // ippiFilterHipassBorder_8u_C4R
  1695. // ippiFilterHipassBorder_8u_AC4R
  1696. // ippiFilterHipassBorder_16s_C1R
  1697. // ippiFilterHipassBorder_16s_C3R
  1698. // ippiFilterHipassBorder_16s_C4R
  1699. // ippiFilterHipassBorder_16s_AC4R
  1700. // ippiFilterHipassBorder_32f_C1R
  1701. // ippiFilterHipassBorder_32f_C3R
  1702. // ippiFilterHipassBorder_32f_C4R
  1703. // ippiFilterHipassBorder_32f_AC4R
  1704. // ippiFilterSharpenBorder_8u_C1R
  1705. // ippiFilterSharpenBorder_8u_C3R
  1706. // ippiFilterSharpenBorder_8u_C4R
  1707. // ippiFilterSharpenBorder_8u_AC4R
  1708. // ippiFilterSharpenBorder_16s_C1R
  1709. // ippiFilterSharpenBorder_16s_C3R
  1710. // ippiFilterSharpenBorder_16s_C4R
  1711. // ippiFilterSharpenBorder_16s_AC4R
  1712. // ippiFilterSharpenBorder_32f_C1R
  1713. // ippiFilterSharpenBorder_32f_C3R
  1714. // ippiFilterSharpenBorder_32f_C4R
  1715. // ippiFilterSharpenBorder_32f_AC4R
  1716. //
  1717. // Purpose: Perform linear filtering of an image using one of
  1718. // predefined convolution kernels.
  1719. //
  1720. // Parameters:
  1721. // pSrc Pointer to the source image ROI.
  1722. // srcStep Distance in bytes between starting points of consecutive lines in the sorce image.
  1723. // pDst Pointer to the destination image ROI.
  1724. // dstStep Distance in bytes between starting points of consecutive lines in the destination image.
  1725. // dstRoiSize Size of destination ROI in pixels.
  1726. // mask Predefined mask of IppiMaskSize type.
  1727. // borderType Type of border.
  1728. // borderValue Constant value to assign to pixels of the constant border. This parameter is applicable
  1729. // only to the ippBorderConst border type.
  1730. // pBorderValue The pointer to constant values to assign to pixels of the constant border. This parameter is applicable
  1731. // only to the ippBorderConst border type.
  1732. // pBuffer Pointer to the work buffer.
  1733. //
  1734. // Return Values:
  1735. // ippStsNoErr Indicates no error.
  1736. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  1737. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  1738. // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4
  1739. // for floating-point images, or by 2 for short-integer images.
  1740. // ippStsBorderErr Indicates an error when borderType has illegal value.
  1741. */
  1742. IPPAPI(IppStatus, ippiFilterSobelVertBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1743. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1744. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1745. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1746. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1747. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1748. IPPAPI(IppStatus, ippiFilterScharrVertMaskBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1749. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1750. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1751. IPPAPI(IppStatus, ippiFilterScharrHorizMaskBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1752. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1753. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1754. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1755. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1756. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1757. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1758. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1759. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1760. IPPAPI(IppStatus, ippiFilterSobelNegVertBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  1761. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1762. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  1763. IPPAPI(IppStatus, ippiFilterSobelVertBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1764. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1765. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1766. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1767. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1768. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1769. IPPAPI(IppStatus, ippiFilterScharrVertMaskBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1770. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1771. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1772. IPPAPI(IppStatus, ippiFilterScharrHorizMaskBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1773. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1774. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1775. IPPAPI(IppStatus, ippiFilterSobelVertSecondBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1776. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1777. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1778. IPPAPI(IppStatus, ippiFilterSobelHorizSecondBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1779. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1780. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1781. IPPAPI(IppStatus, ippiFilterSobelNegVertBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  1782. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1783. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  1784. IPPAPI(IppStatus, ippiFilterSobelVertBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  1785. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1786. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  1787. IPPAPI(IppStatus, ippiFilterSobelHorizBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  1788. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1789. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  1790. IPPAPI(IppStatus, ippiFilterScharrVertMaskBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  1791. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1792. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  1793. IPPAPI(IppStatus, ippiFilterScharrHorizMaskBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  1794. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiMaskSize mask,
  1795. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  1796. /* /////////////////////////////////////////////////////////////////////////////
  1797. // Statistic functions
  1798. ///////////////////////////////////////////////////////////////////////////// */
  1799. /* /////////////////////////////////////////////////////////////////////////////
  1800. // Name: ippiMomentGetStateSize_64s
  1801. // ippiMomentGetStateSize_64f
  1802. //
  1803. // Purpose: Computes the size of the external buffer for the state
  1804. // structure ippiMomentsState_64s in bytes
  1805. //
  1806. // Returns:
  1807. // ippStsNoErr OK
  1808. // ippStsNullPtrErr pSize==NULL
  1809. // Parameters:
  1810. // hint Option to specify the computation algorithm
  1811. // pSize Pointer to the value of the buffer size
  1812. // of the structure ippiMomentState_64s.
  1813. */
  1814. IPPAPI(IppStatus, ippiMomentGetStateSize_64f, (IppHintAlgorithm hint, int * pSize))
  1815. /* ////////////////////////////////////////////////////////////////////////////////////
  1816. // Name: ippiMomentInit64s
  1817. // ippiMomentInit64f
  1818. //
  1819. // Purpose: Initializes ippiMomentState_64s structure (without memory allocation)
  1820. //
  1821. // Returns:
  1822. // ippStsNoErr No errors
  1823. //
  1824. // Parameters:
  1825. // pState Pointer to the MomentState structure
  1826. // hint Option to specify the computation algorithm
  1827. */
  1828. IPPAPI (IppStatus, ippiMomentInit_64f, (IppiMomentState_64f* pState, IppHintAlgorithm hint))
  1829. /* /////////////////////////////////////////////////////////////////////////////
  1830. // Name: ippiMoments
  1831. //
  1832. // Purpose: Computes statistical moments of an image
  1833. //
  1834. // Returns:
  1835. // ippStsContextMatchErr pState->idCtx != idCtxMoment
  1836. // ippStsNullPtrErr (pSrc == NULL) or (pState == NULL)
  1837. // ippStsStepErr pSrcStep <0
  1838. // ippStsSizeErr (roiSize.width <1) or (roiSize.height <1)
  1839. // ippStsNoErr No errors
  1840. //
  1841. // Parameters:
  1842. // pSrc Pointer to the source image
  1843. // srcStep Step in bytes through the source image
  1844. // roiSize Size of the source ROI
  1845. // pState Pointer to the MomentState structure
  1846. //
  1847. // Notes:
  1848. // These functions compute moments of order 0 to 3 only
  1849. //
  1850. */
  1851. IPPAPI(IppStatus,ippiMoments64f_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1852. IPPAPI(IppStatus,ippiMoments64f_8u_C3R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1853. IPPAPI(IppStatus,ippiMoments64f_8u_AC4R,(const Ipp8u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1854. IPPAPI(IppStatus,ippiMoments64f_32f_C1R, (const Ipp32f* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1855. IPPAPI(IppStatus,ippiMoments64f_32f_C3R, (const Ipp32f* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1856. IPPAPI(IppStatus,ippiMoments64f_32f_AC4R,(const Ipp32f* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1857. IPPAPI(IppStatus,ippiMoments64f_16u_C1R, (const Ipp16u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1858. IPPAPI(IppStatus,ippiMoments64f_16u_C3R, (const Ipp16u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1859. IPPAPI(IppStatus,ippiMoments64f_16u_AC4R,(const Ipp16u* pSrc, int srcStep, IppiSize roiSize, IppiMomentState_64f* pCtx))
  1860. /* /////////////////////////////////////////////////////////////////////////////
  1861. // Name: ippiGetSpatialMoment()
  1862. // ippiGetCentralMoment()
  1863. //
  1864. // Purpose: Retrieves the value of the image spatial/central moment.
  1865. //
  1866. // Returns:
  1867. // ippStsNullPtrErr (pState == NULL) or (pValue == NULL)
  1868. // ippStsContextMatchErr pState->idCtx != idCtxMoment
  1869. // ippStsSizeErr (mOrd+nOrd) >3 or
  1870. // (nChannel<0) or (nChannel>=pState->nChannelInUse)
  1871. // ippStsNoErr No errors
  1872. //
  1873. // Parameters:
  1874. // pState Pointer to the MomentState structure
  1875. // mOrd m- Order (X direction)
  1876. // nOrd n- Order (Y direction)
  1877. // nChannel Channel number
  1878. // roiOffset Offset of the ROI origin (ippiGetSpatialMoment ONLY!)
  1879. // pValue Pointer to the retrieved moment value
  1880. // scaleFactor Factor to scale the moment value (for integer data)
  1881. //
  1882. // NOTE:
  1883. // ippiGetSpatialMoment uses Absolute Coordinates (left-top image has 0,0).
  1884. //
  1885. */
  1886. IPPAPI(IppStatus,ippiGetSpatialMoment_64f,(const IppiMomentState_64f* pState,
  1887. int mOrd, int nOrd, int nChannel,
  1888. IppiPoint roiOffset, Ipp64f* pValue))
  1889. IPPAPI(IppStatus,ippiGetCentralMoment_64f,(const IppiMomentState_64f* pState,
  1890. int mOrd, int nOrd, int nChannel,
  1891. Ipp64f* pValue))
  1892. /* /////////////////////////////////////////////////////////////////////////////
  1893. // Name: ippiGetNormalizedSpatialMoment()
  1894. // ippiGetNormalizedCentralMoment()
  1895. //
  1896. // Purpose: Retrieves the normalized value of the image spatial/central moment.
  1897. //
  1898. // Returns:
  1899. // ippStsNullPtrErr (pState == NULL) or (pValue == NULL)
  1900. // ippStsContextMatchErr pState->idCtx != idCtxMoment
  1901. // ippStsSizeErr (mOrd+nOrd) >3 or
  1902. // (nChannel<0) or (nChannel>=pState->nChannelInUse)
  1903. // ippStsMoment00ZeroErr mm[0][0] < IPP_EPS52
  1904. // ippStsNoErr No errors
  1905. //
  1906. // Parameters:
  1907. // pState Pointer to the MomentState structure
  1908. // mOrd m- Order (X direction)
  1909. // nOrd n- Order (Y direction)
  1910. // nChannel Channel number
  1911. // roiOffset Offset of the ROI origin (ippiGetSpatialMoment ONLY!)
  1912. // pValue Pointer to the normalized moment value
  1913. // scaleFactor Factor to scale the moment value (for integer data)
  1914. //
  1915. */
  1916. IPPAPI(IppStatus,ippiGetNormalizedSpatialMoment_64f,(const IppiMomentState_64f* pState,
  1917. int mOrd, int nOrd, int nChannel,
  1918. IppiPoint roiOffset, Ipp64f* pValue))
  1919. IPPAPI(IppStatus,ippiGetNormalizedCentralMoment_64f,(const IppiMomentState_64f* pState,
  1920. int mOrd, int nOrd, int nChannel,
  1921. Ipp64f* pValue))
  1922. /* /////////////////////////////////////////////////////////////////////////////
  1923. // Name: ippiGetHuMoments()
  1924. //
  1925. // Purpose: Retrieves image Hu moment invariants.
  1926. //
  1927. // Returns:
  1928. // ippStsNullPtrErr (pState == NULL) or (pHu == NULL)
  1929. // ippStsContextMatchErr pState->idCtx != idCtxMoment
  1930. // ippStsSizeErr (nChannel<0) or (nChannel>=pState->nChannelInUse)
  1931. // ippStsMoment00ZeroErr mm[0][0] < IPP_EPS52
  1932. // ippStsNoErr No errors
  1933. //
  1934. // Parameters:
  1935. // pState Pointer to the MomentState structure
  1936. // nChannel Channel number
  1937. // pHm Pointer to the array of the Hu moment invariants
  1938. // scaleFactor Factor to scale the moment value (for integer data)
  1939. //
  1940. // Notes:
  1941. // We consider Hu moments up to the 7-th order only
  1942. */
  1943. IPPAPI(IppStatus,ippiGetHuMoments_64f,(const IppiMomentState_64f* pState,
  1944. int nChannel, IppiHuMoment_64f pHm))
  1945. /* /////////////////////////////////////////////////////////////////////////////
  1946. //
  1947. // Name: ippiTranspose
  1948. //
  1949. // Purpose: Transposing an image
  1950. //
  1951. // Returns: IppStatus
  1952. // ippStsNoErr No errors
  1953. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  1954. // ippStsSizeErr roiSize has a field with zero or negative value,
  1955. // and roiSize.width != roiSize.height (in-place flavors)
  1956. //
  1957. // Parameters:
  1958. // pSrc Pointer to the source image
  1959. // srcStep Step through the source image
  1960. // pDst Pointer to the destination image
  1961. // dstStep Step through the destination image
  1962. // pSrcDst Pointer to the source/destination image (in-place flavors)
  1963. // srcDstStep Step through the source/destination image (in-place flavors)
  1964. // roiSize Size of the ROI
  1965. //
  1966. // Notes: Parameters roiSize.width and roiSize.height are defined for the source image.
  1967. //
  1968. */
  1969. IPPAPI ( IppStatus, ippiTranspose_8u_C1R,
  1970. ( const Ipp8u* pSrc, int srcStep,
  1971. Ipp8u* pDst, int dstStep,
  1972. IppiSize roiSize ))
  1973. IPPAPI ( IppStatus, ippiTranspose_8u_C3R,
  1974. ( const Ipp8u* pSrc, int srcStep,
  1975. Ipp8u* pDst, int dstStep,
  1976. IppiSize roiSize ))
  1977. IPPAPI ( IppStatus, ippiTranspose_8u_C4R,
  1978. ( const Ipp8u* pSrc, int srcStep,
  1979. Ipp8u* pDst, int dstStep,
  1980. IppiSize roiSize ))
  1981. IPPAPI ( IppStatus, ippiTranspose_8u_C1IR,
  1982. ( Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  1983. IPPAPI ( IppStatus, ippiTranspose_8u_C3IR,
  1984. ( Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  1985. IPPAPI ( IppStatus, ippiTranspose_8u_C4IR,
  1986. ( Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  1987. IPPAPI ( IppStatus, ippiTranspose_16u_C1R,
  1988. ( const Ipp16u* pSrc, int srcStep,
  1989. Ipp16u* pDst, int dstStep,
  1990. IppiSize roiSize ))
  1991. IPPAPI ( IppStatus, ippiTranspose_16u_C3R,
  1992. ( const Ipp16u* pSrc, int srcStep,
  1993. Ipp16u* pDst, int dstStep,
  1994. IppiSize roiSize ))
  1995. IPPAPI ( IppStatus, ippiTranspose_16u_C4R,
  1996. ( const Ipp16u* pSrc, int srcStep,
  1997. Ipp16u* pDst, int dstStep,
  1998. IppiSize roiSize ))
  1999. IPPAPI ( IppStatus, ippiTranspose_16u_C1IR,
  2000. ( Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2001. IPPAPI ( IppStatus, ippiTranspose_16u_C3IR,
  2002. ( Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2003. IPPAPI ( IppStatus, ippiTranspose_16u_C4IR,
  2004. ( Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2005. IPPAPI ( IppStatus, ippiTranspose_32s_C1R,
  2006. ( const Ipp32s* pSrc, int srcStep,
  2007. Ipp32s* pDst, int dstStep,
  2008. IppiSize roiSize ))
  2009. IPPAPI ( IppStatus, ippiTranspose_32s_C3R,
  2010. ( const Ipp32s* pSrc, int srcStep,
  2011. Ipp32s* pDst, int dstStep,
  2012. IppiSize roiSize ))
  2013. IPPAPI ( IppStatus, ippiTranspose_32s_C4R,
  2014. ( const Ipp32s* pSrc, int srcStep,
  2015. Ipp32s* pDst, int dstStep,
  2016. IppiSize roiSize ))
  2017. IPPAPI ( IppStatus, ippiTranspose_32s_C1IR,
  2018. ( Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2019. IPPAPI ( IppStatus, ippiTranspose_32s_C3IR,
  2020. ( Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2021. IPPAPI ( IppStatus, ippiTranspose_32s_C4IR,
  2022. ( Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2023. IPPAPI ( IppStatus, ippiTranspose_16s_C1R,
  2024. ( const Ipp16s* pSrc, int srcStep,
  2025. Ipp16s* pDst, int dstStep,
  2026. IppiSize roiSize ))
  2027. IPPAPI ( IppStatus, ippiTranspose_16s_C3R,
  2028. ( const Ipp16s* pSrc, int srcStep,
  2029. Ipp16s* pDst, int dstStep,
  2030. IppiSize roiSize ))
  2031. IPPAPI ( IppStatus, ippiTranspose_16s_C4R,
  2032. ( const Ipp16s* pSrc, int srcStep,
  2033. Ipp16s* pDst, int dstStep,
  2034. IppiSize roiSize ))
  2035. IPPAPI ( IppStatus, ippiTranspose_16s_C1IR,
  2036. ( Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2037. IPPAPI ( IppStatus, ippiTranspose_16s_C3IR,
  2038. ( Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2039. IPPAPI ( IppStatus, ippiTranspose_16s_C4IR,
  2040. ( Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2041. IPPAPI ( IppStatus, ippiTranspose_32f_C1R,
  2042. ( const Ipp32f* pSrc, int srcStep,
  2043. Ipp32f* pDst, int dstStep,
  2044. IppiSize roiSize ))
  2045. IPPAPI ( IppStatus, ippiTranspose_32f_C3R,
  2046. ( const Ipp32f* pSrc, int srcStep,
  2047. Ipp32f* pDst, int dstStep,
  2048. IppiSize roiSize ))
  2049. IPPAPI ( IppStatus, ippiTranspose_32f_C4R,
  2050. ( const Ipp32f* pSrc, int srcStep,
  2051. Ipp32f* pDst, int dstStep,
  2052. IppiSize roiSize ))
  2053. IPPAPI ( IppStatus, ippiTranspose_32f_C1IR,
  2054. ( Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2055. IPPAPI ( IppStatus, ippiTranspose_32f_C3IR,
  2056. ( Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2057. IPPAPI ( IppStatus, ippiTranspose_32f_C4IR,
  2058. ( Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize ))
  2059. /* ////////////////////////////////////////////////////////////////////////////
  2060. // Name: ippiConvert
  2061. //
  2062. // Purpose: Converts pixel values of an image from one bit depth to another
  2063. //
  2064. // Returns:
  2065. // ippStsNullPtrErr One of the pointers is NULL
  2066. // ippStsSizeErr roiSize has a field with zero or negative value
  2067. // ippStsStepErr srcStep or dstStep has zero or negative value
  2068. // ippStsNoErr OK
  2069. //
  2070. // Parameters:
  2071. // pSrc Pointer to the source image
  2072. // srcStep Step through the source image
  2073. // pDst Pointer to the destination image
  2074. // dstStep Step in bytes through the destination image
  2075. // roiSize Size of the ROI
  2076. // roundMode Rounding mode, ippRndZero or ippRndNear
  2077. */
  2078. IPPAPI ( IppStatus, ippiConvert_8u8s_C1RSfs, (const Ipp8u* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2079. IPPAPI ( IppStatus, ippiConvert_8u16u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  2080. IPPAPI ( IppStatus, ippiConvert_8u16s_C1R, (const Ipp8u* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  2081. IPPAPI ( IppStatus, ippiConvert_8u32s_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  2082. IPPAPI ( IppStatus, ippiConvert_8u32f_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  2083. IPPAPI ( IppStatus, ippiConvert_8s8u_C1Rs, (const Ipp8s* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roi))
  2084. IPPAPI ( IppStatus, ippiConvert_8s16s_C1R, (const Ipp8s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roi))
  2085. IPPAPI ( IppStatus, ippiConvert_8s16u_C1Rs, (const Ipp8s* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roi))
  2086. IPPAPI ( IppStatus, ippiConvert_8s32s_C1R, (const Ipp8s* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  2087. IPPAPI ( IppStatus, ippiConvert_8s32f_C1R, (const Ipp8s* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  2088. IPPAPI ( IppStatus, ippiConvert_16u8u_C1R, ( const Ipp16u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  2089. IPPAPI ( IppStatus, ippiConvert_16u8s_C1RSfs, (const Ipp16u* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2090. IPPAPI ( IppStatus, ippiConvert_16u16s_C1RSfs, (const Ipp16u* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2091. IPPAPI ( IppStatus, ippiConvert_16u32s_C1R, (const Ipp16u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  2092. IPPAPI ( IppStatus, ippiConvert_16u32f_C1R, (const Ipp16u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  2093. IPPAPI ( IppStatus, ippiConvert_16s8s_C1RSfs, (const Ipp16s* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2094. IPPAPI ( IppStatus, ippiConvert_16s8u_C1R, ( const Ipp16s* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  2095. IPPAPI ( IppStatus, ippiConvert_16s16u_C1Rs, (const Ipp16s* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roi))
  2096. IPPAPI ( IppStatus, ippiConvert_16s32s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  2097. IPPAPI ( IppStatus, ippiConvert_16s32f_C1R, (const Ipp16s* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  2098. IPPAPI ( IppStatus, ippiConvert_32s8u_C1R, ( const Ipp32s* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  2099. IPPAPI ( IppStatus, ippiConvert_32s8s_C1R, ( const Ipp32s* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roiSize ))
  2100. IPPAPI ( IppStatus, ippiConvert_32s16u_C1RSfs, (const Ipp32s* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2101. IPPAPI ( IppStatus, ippiConvert_32s16s_C1RSfs, (const Ipp32s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roi,IppRoundMode rndMode, int scaleFactor))
  2102. IPPAPI ( IppStatus, ippiConvert_32s32f_C1R, (const Ipp32s* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roi))
  2103. IPPAPI ( IppStatus, ippiConvert_32f8u_C1R, ( const Ipp32f* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize, IppRoundMode roundMode ))
  2104. IPPAPI ( IppStatus, ippiConvert_32f8u_C1RSfs, (const Ipp32f* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roi, IppRoundMode round, int scaleFactor))
  2105. IPPAPI ( IppStatus, ippiConvert_32f8s_C1R, ( const Ipp32f* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roiSize, IppRoundMode roundMode ))
  2106. IPPAPI ( IppStatus, ippiConvert_32f8s_C1RSfs, (const Ipp32f* pSrc, int srcStep, Ipp8s* pDst, int dstStep, IppiSize roi, IppRoundMode round, int scaleFactor))
  2107. IPPAPI ( IppStatus, ippiConvert_32f16u_C1R, ( const Ipp32f* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize, IppRoundMode roundMode ))
  2108. IPPAPI ( IppStatus, ippiConvert_32f16u_C1RSfs, (const Ipp32f* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roi, IppRoundMode round, int scaleFactor))
  2109. IPPAPI ( IppStatus, ippiConvert_32f16s_C1R, ( const Ipp32f* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize, IppRoundMode roundMode ))
  2110. IPPAPI ( IppStatus, ippiConvert_32f32s_C1RSfs, (const Ipp32f* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roi, IppRoundMode round, int scaleFactor))
  2111. /* /////////////////////////////////////////////////////////////////////////////
  2112. //
  2113. // Name: ippiMirror
  2114. //
  2115. // Purpose: Mirrors an image about a horizontal
  2116. // or vertical axis, or both
  2117. //
  2118. // Context:
  2119. //
  2120. // Returns: IppStatus
  2121. // ippStsNoErr No errors
  2122. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  2123. // ippStsSizeErr, roiSize has a field with zero or negative value
  2124. // ippStsMirrorFlipErr (flip != ippAxsHorizontal) &&
  2125. // (flip != ippAxsVertical) &&
  2126. // (flip != ippAxsBoth)
  2127. //
  2128. // Parameters:
  2129. // pSrc Pointer to the source image
  2130. // srcStep Step through the source image
  2131. // pDst Pointer to the destination image
  2132. // dstStep Step through the destination image
  2133. // pSrcDst Pointer to the source/destination image (in-place flavors)
  2134. // srcDstStep Step through the source/destination image (in-place flavors)
  2135. // roiSize Size of the ROI
  2136. // flip Specifies the axis to mirror the image about:
  2137. // ippAxsHorizontal horizontal axis,
  2138. // ippAxsVertical vertical axis,
  2139. // ippAxsBoth both horizontal and vertical axes
  2140. //
  2141. // Notes:
  2142. //
  2143. */
  2144. IPPAPI(IppStatus, ippiMirror_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  2145. IppiSize roiSize, IppiAxis flip))
  2146. IPPAPI(IppStatus, ippiMirror_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  2147. IppiSize roiSize, IppiAxis flip))
  2148. IPPAPI(IppStatus, ippiMirror_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  2149. IppiSize roiSize, IppiAxis flip))
  2150. IPPAPI(IppStatus, ippiMirror_8u_C1IR, (Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2151. IPPAPI(IppStatus, ippiMirror_8u_C3IR, (Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2152. IPPAPI(IppStatus, ippiMirror_8u_C4IR, (Ipp8u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2153. IPPAPI(IppStatus, ippiMirror_16u_C1R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  2154. IppiSize roiSize, IppiAxis flip))
  2155. IPPAPI(IppStatus, ippiMirror_16u_C3R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  2156. IppiSize roiSize, IppiAxis flip))
  2157. IPPAPI(IppStatus, ippiMirror_16u_C4R, (const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  2158. IppiSize roiSize, IppiAxis flip))
  2159. IPPAPI(IppStatus, ippiMirror_16u_C1IR, (Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2160. IPPAPI(IppStatus, ippiMirror_16u_C3IR, (Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2161. IPPAPI (IppStatus, ippiMirror_16u_C4IR, (Ipp16u* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2162. IPPAPI(IppStatus, ippiMirror_32s_C1R, (const Ipp32s* pSrc, int srcStep, Ipp32s* pDst, int dstStep,
  2163. IppiSize roiSize, IppiAxis flip))
  2164. IPPAPI(IppStatus, ippiMirror_32s_C3R, (const Ipp32s* pSrc, int srcStep, Ipp32s* pDst, int dstStep,
  2165. IppiSize roiSize, IppiAxis flip))
  2166. IPPAPI(IppStatus, ippiMirror_32s_C4R, (const Ipp32s* pSrc, int srcStep, Ipp32s* pDst, int dstStep,
  2167. IppiSize roiSize, IppiAxis flip ) )
  2168. IPPAPI(IppStatus, ippiMirror_32s_C1IR, (Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2169. IPPAPI(IppStatus, ippiMirror_32s_C3IR, (Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2170. IPPAPI(IppStatus, ippiMirror_32s_C4IR, (Ipp32s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2171. IPPAPI(IppStatus, ippiMirror_16s_C1R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  2172. IppiSize roiSize, IppiAxis flip))
  2173. IPPAPI(IppStatus, ippiMirror_16s_C3R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  2174. IppiSize roiSize, IppiAxis flip))
  2175. IPPAPI(IppStatus, ippiMirror_16s_C4R, (const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,
  2176. IppiSize roiSize, IppiAxis flip))
  2177. IPPAPI(IppStatus, ippiMirror_16s_C1IR, (Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2178. IPPAPI(IppStatus, ippiMirror_16s_C3IR, (Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2179. IPPAPI (IppStatus, ippiMirror_16s_C4IR, (Ipp16s* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2180. IPPAPI(IppStatus, ippiMirror_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  2181. IppiSize roiSize, IppiAxis flip))
  2182. IPPAPI(IppStatus, ippiMirror_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  2183. IppiSize roiSize, IppiAxis flip))
  2184. IPPAPI(IppStatus, ippiMirror_32f_C4R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  2185. IppiSize roiSize, IppiAxis flip ) )
  2186. IPPAPI(IppStatus, ippiMirror_32f_C1IR, (Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2187. IPPAPI(IppStatus, ippiMirror_32f_C3IR, (Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2188. IPPAPI(IppStatus, ippiMirror_32f_C4IR, (Ipp32f* pSrcDst, int srcDstStep, IppiSize roiSize, IppiAxis flip))
  2189. /* ///////////////////////////////////////////////////////////////////////////////////////
  2190. // Arithmetic Functions
  2191. ///////////////////////////////////////////////////////////////////////////// */
  2192. /* ///////////////////////////////////////////////////////////////////////////////////////
  2193. // Name: ippiAdd_8u_C1RSfs, ippiAdd_8u_C3RSfs, ippiAdd_8u_C4RSfs, ippiAdd_8u_AC4RSfs,
  2194. // ippiAdd_16s_C1RSfs, ippiAdd_16s_C3RSfs, ippiAdd_16s_C4RSfs, ippiAdd_16s_AC4RSfs,
  2195. // ippiAdd_16u_C1RSfs, ippiAdd_16u_C3RSfs, ippiAdd_16u_C4RSfs, ippiAdd_16u_AC4RSfs,
  2196. // ippiSub_8u_C1RSfs, ippiSub_8u_C3RSfs, ippiSub_8u_C4RSfs, ippiSub_8u_AC4RSfs,
  2197. // ippiSub_16s_C1RSfs, ippiSub_16s_C3RSfs, ippiSub_16s_C4RSfs, ippiSub_16s_AC4RSfs,
  2198. // ippiSub_16u_C1RSfs, ippiSub_16u_C3RSfs, ippiSub_16u_C4RSfs, ippiSub_16u_AC4RSfs,
  2199. // ippiMul_8u_C1RSfs, ippiMul_8u_C3RSfs, ippiMul_8u_C4RSfs, ippiMul_8u_AC4RSfs,
  2200. // ippiMul_16s_C1RSfs, ippiMul_16s_C3RSfs, ippiMul_16s_C4RSfs, ippiMul_16s_AC4RSfs
  2201. // ippiMul_16u_C1RSfs, ippiMul_16u_C3RSfs, ippiMul_16u_C4RSfs, ippiMul_16u_AC4RSfs
  2202. //
  2203. // Purpose: Adds, subtracts, or multiplies pixel values of two
  2204. // source images and places the scaled result in the destination image.
  2205. //
  2206. // Returns:
  2207. // ippStsNoErr OK
  2208. // ippStsNullPtrErr One of the pointers is NULL
  2209. // ippStsSizeErr Width or height of images is less than or equal to zero
  2210. //
  2211. // Parameters:
  2212. // pSrc1, pSrc2 Pointers to the source images
  2213. // src1Step, src2Step Steps through the source images
  2214. // pDst Pointer to the destination image
  2215. // dstStep Step through the destination image
  2216. // roiSize Size of the ROI
  2217. // scaleFactor Scale factor
  2218. */
  2219. IPPAPI(IppStatus, ippiAdd_8u_C1RSfs, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2,
  2220. int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  2221. int scaleFactor))
  2222. IPPAPI(IppStatus, ippiAdd_16u_C1RSfs, (const Ipp16u* pSrc1, int src1Step, const Ipp16u* pSrc2,
  2223. int src2Step, Ipp16u* pDst, int dstStep, IppiSize roiSize,
  2224. int scaleFactor))
  2225. IPPAPI(IppStatus, ippiAdd_16s_C1RSfs, (const Ipp16s* pSrc1, int src1Step, const Ipp16s* pSrc2,
  2226. int src2Step, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  2227. int scaleFactor))
  2228. IPPAPI(IppStatus, ippiSub_8u_C1RSfs, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2,
  2229. int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  2230. int scaleFactor))
  2231. IPPAPI(IppStatus, ippiSub_16u_C1RSfs, (const Ipp16u* pSrc1, int src1Step, const Ipp16u* pSrc2,
  2232. int src2Step, Ipp16u* pDst, int dstStep, IppiSize roiSize,
  2233. int scaleFactor))
  2234. IPPAPI(IppStatus, ippiSub_16s_C1RSfs, (const Ipp16s* pSrc1, int src1Step, const Ipp16s* pSrc2,
  2235. int src2Step, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  2236. int scaleFactor))
  2237. IPPAPI(IppStatus, ippiMul_16s_C1RSfs, (const Ipp16s* pSrc1, int src1Step, const Ipp16s* pSrc2,
  2238. int src2Step, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  2239. int scaleFactor))
  2240. IPPAPI(IppStatus, ippiMul_16u_C1RSfs, (const Ipp16u* pSrc1, int src1Step, const Ipp16u* pSrc2,
  2241. int src2Step, Ipp16u* pDst, int dstStep, IppiSize roiSize,
  2242. int scaleFactor))
  2243. IPPAPI(IppStatus, ippiMul_8u_C1RSfs, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2,
  2244. int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  2245. int scaleFactor))
  2246. /* ////////////////////////////////////////////////////////////////////////////
  2247. // Name: ippiAdd_32f_C1R, ippiAdd_32f_C3R, ippiAdd_32f_C4R, ippiAdd_32f_AC4R,
  2248. // ippiSub_32f_C1R, ippiSub_32f_C3R, ippiSub_32f_C4R, ippiSub_32f_AC4R,
  2249. // ippiMul_32f_C1R, ippiMul_32f_C3R, ippiMul_32f_C4R, ippiMul_32f_AC4R
  2250. //
  2251. // Purpose: Adds, subtracts, or multiplies pixel values of two
  2252. // source images and places the results in a destination image.
  2253. //
  2254. // Returns:
  2255. // ippStsNoErr OK
  2256. // ippStsNullPtrErr One of the pointers is NULL
  2257. // ippStsSizeErr Width or height of images is less than or equal to zero
  2258. //
  2259. // Parameters:
  2260. // pSrc1, pSrc2 Pointers to the source images
  2261. // src1Step, src2Step Steps through the source images
  2262. // pDst Pointer to the destination image
  2263. // dstStep Step through the destination image
  2264. // roiSize Size of the ROI
  2265. */
  2266. IPPAPI(IppStatus, ippiAdd_32f_C1R, (const Ipp32f* pSrc1, int src1Step, const Ipp32f* pSrc2,
  2267. int src2Step, Ipp32f* pDst, int dstStep, IppiSize roiSize))
  2268. IPPAPI(IppStatus, ippiSub_32f_C1R, (const Ipp32f* pSrc1, int src1Step, const Ipp32f* pSrc2,
  2269. int src2Step, Ipp32f* pDst, int dstStep, IppiSize roiSize))
  2270. IPPAPI(IppStatus, ippiMul_32f_C1R, (const Ipp32f* pSrc1, int src1Step, const Ipp32f* pSrc2,
  2271. int src2Step, Ipp32f* pDst, int dstStep, IppiSize roiSize))
  2272. /* /////////////////////////////////////////////////////////////////////////////
  2273. // Name: ippiMax
  2274. // Purpose: computes the maximum of image pixel values
  2275. // Returns: IppStatus
  2276. // ippStsNoErr OK
  2277. // ippStsNullPtrErr One of the pointers is NULL
  2278. // ippStsSizeErr roiSize has a field with zero or negative value
  2279. // Parameters:
  2280. // pSrc Pointer to the source image.
  2281. // srcStep Step in bytes through the source image
  2282. // roiSize Size of the source image ROI.
  2283. // pMax Pointer to the result (C1)
  2284. // max Array containing the results (C3, AC4, C4)
  2285. */
  2286. IPPAPI(IppStatus, ippiMax_16s_C1R, (const Ipp16s* pSrc, int srcStep, IppiSize roiSize, Ipp16s* pMax))
  2287. IPPAPI(IppStatus, ippiMax_16u_C1R, (const Ipp16u* pSrc, int srcStep, IppiSize roiSize, Ipp16u* pMax))
  2288. IPPAPI(IppStatus, ippiMax_32f_C1R, (const Ipp32f* pSrc, int srcStep, IppiSize roiSize, Ipp32f* pMax))
  2289. IPPAPI(IppStatus, ippiMax_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, Ipp8u* pMax))
  2290. /* /////////////////////////////////////////////////////////////////////////////
  2291. // Name: ippiMin
  2292. // Purpose: computes the minimum of image pixel values
  2293. // Returns: IppStatus
  2294. // ippStsNoErr OK
  2295. // ippStsNullPtrErr One of the pointers is NULL
  2296. // ippStsSizeErr roiSize has a field with zero or negative value
  2297. // Parameters:
  2298. // pSrc Pointer to the source image.
  2299. // srcStep Step through the source image
  2300. // roiSize Size of the source image ROI.
  2301. // pMin Pointer to the result (C1)
  2302. // min Array containing results (C3, AC4, C4)
  2303. */
  2304. IPPAPI(IppStatus, ippiMin_16s_C1R, (const Ipp16s* pSrc, int srcStep, IppiSize roiSize, Ipp16s* pMin))
  2305. IPPAPI(IppStatus, ippiMin_16u_C1R, (const Ipp16u* pSrc, int srcStep, IppiSize roiSize, Ipp16u* pMin))
  2306. IPPAPI(IppStatus, ippiMin_32f_C1R, (const Ipp32f* pSrc, int srcStep, IppiSize roiSize, Ipp32f* pMin))
  2307. IPPAPI(IppStatus, ippiMin_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize, Ipp8u* pMin))
  2308. /* /////////////////////////////////////////////////////////////////////////////////////////////////
  2309. // Logical Operations and Shift Functions
  2310. ///////////////////////////////////////////////////////////////////////////////////////////////// */
  2311. /*
  2312. // Names: ippiAnd, ippiAndC, ippiOr, ippiOrC, ippiXor, ippiXorC, ippiNot,
  2313. // Purpose: Performs corresponding bitwise logical operation between pixels of two image
  2314. // (AndC/OrC/XorC - between pixel of the source image and a constant)
  2315. //
  2316. // Names: ippiLShiftC, ippiRShiftC
  2317. // Purpose: Shifts bits in each pixel value to the left and right
  2318. // Parameters:
  2319. // value 1) The constant value to be ANDed/ORed/XORed with each pixel of the source,
  2320. // constant vector for multi-channel images;
  2321. // 2) The number of bits to shift, constant vector for multi-channel images.
  2322. // pSrc Pointer to the source image
  2323. // srcStep Step through the source image
  2324. // pSrcDst Pointer to the source/destination image (in-place flavors)
  2325. // srcDstStep Step through the source/destination image (in-place flavors)
  2326. // pSrc1 Pointer to first source image
  2327. // src1Step Step through first source image
  2328. // pSrc2 Pointer to second source image
  2329. // src2Step Step through second source image
  2330. // pDst Pointer to the destination image
  2331. // dstStep Step in destination image
  2332. // roiSize Size of the ROI
  2333. //
  2334. // Returns:
  2335. // ippStsNullPtrErr One of the pointers is NULL
  2336. // ippStsStepErr One of the step values is less than or equal to zero
  2337. // ippStsSizeErr roiSize has a field with zero or negative value
  2338. // ippStsShiftErr Shift's value is less than zero
  2339. // ippStsNoErr No errors
  2340. */
  2341. IPPAPI(IppStatus, ippiAnd_8u_C1R, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2, int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize))
  2342. IPPAPI(IppStatus, ippiOr_8u_C1R, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2, int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize))
  2343. IPPAPI(IppStatus, ippiXor_8u_C1R, (const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2, int src2Step, Ipp8u* pDst, int dstStep, IppiSize roiSize))
  2344. IPPAPI(IppStatus, ippiNot_8u_C1R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize))
  2345. /* /////////////////////////////////////////////////////////////////////////////////////////////////
  2346. // Compare Operations
  2347. ///////////////////////////////////////////////////////////////////////////////////////////////// */
  2348. /* /////////////////////////////////////////////////////////////////////////////
  2349. // Name: ippiCompare
  2350. // ippiCompareC
  2351. // Purpose: Compares pixel values of two images, or pixel values of an image to a constant
  2352. // value using the following compare conditions: <, <=, ==, >, >= ;
  2353. // Names: ippiCompareEqualEps
  2354. // ippiCompareEqualEpsC
  2355. // Purpose: Compares 32f images for being equal, or equal to a given value within given tolerance
  2356. // Context:
  2357. //
  2358. // Returns: IppStatus
  2359. // ippStsNoErr No errors
  2360. // ippStsNullPtrErr One of the pointers is NULL
  2361. // ippStsStepErr One of the step values is less than or equal to zero
  2362. // ippStsSizeErr roiSize has a field with zero or negative value
  2363. // ippStsEpsValErr eps is negative
  2364. //
  2365. // Parameters:
  2366. // pSrc1 Pointer to the first source image;
  2367. // src1Step Step through the first source image;
  2368. // pSrc2 Pointer to the second source image data;
  2369. // src2Step Step through the second source image;
  2370. // pDst Pointer to destination image data;
  2371. // dstStep Step in destination image;
  2372. // roiSize Size of the ROI;
  2373. // ippCmpOp Compare operation to be used
  2374. // value Value (array of values for multi-channel image) to compare
  2375. // each pixel to
  2376. // eps The tolerance value
  2377. //
  2378. // Notes:
  2379. */
  2380. IPPAPI (IppStatus, ippiCompare_8u_C1R, ( const Ipp8u* pSrc1, int src1Step,
  2381. const Ipp8u* pSrc2, int src2Step,
  2382. Ipp8u* pDst, int dstStep,
  2383. IppiSize roiSize, IppCmpOp ippCmpOp))
  2384. IPPAPI (IppStatus, ippiCompare_16u_C1R, ( const Ipp16u* pSrc1, int src1Step,
  2385. const Ipp16u* pSrc2, int src2Step,
  2386. Ipp8u* pDst, int dstStep,
  2387. IppiSize roiSize, IppCmpOp ippCmpOp))
  2388. IPPAPI (IppStatus, ippiCompare_16s_C1R, ( const Ipp16s* pSrc1, int src1Step,
  2389. const Ipp16s* pSrc2, int src2Step,
  2390. Ipp8u* pDst, int dstStep,
  2391. IppiSize roiSize, IppCmpOp ippCmpOp))
  2392. IPPAPI (IppStatus, ippiCompare_32f_C1R, ( const Ipp32f* pSrc1, int src1Step,
  2393. const Ipp32f* pSrc2, int src2Step,
  2394. Ipp8u* pDst, int dstStep,
  2395. IppiSize roiSize, IppCmpOp ippCmpOp))
  2396. /* /////////////////////////////////////////////////////////////////////////////
  2397. // Dot product of two images
  2398. ///////////////////////////////////////////////////////////////////////////// */
  2399. /* /////////////////////////////////////////////////////////////////////////////
  2400. // Name: ippiDotProd
  2401. // Purpose: Computes the dot product of two images
  2402. // Context:
  2403. // Returns: IppStatus
  2404. // ippStsNoErr OK
  2405. // ippStsNullPtrErr One of the pointers is NULL
  2406. // ippStsStepErr One of the step values is equal to zero
  2407. // Parameters:
  2408. // pSrc1 Pointer to the first source image.
  2409. // src1Step Step in bytes through the first source image
  2410. // pSrc2 Pointer to the second source image.
  2411. // src2Step Step in bytes through the source image
  2412. // roiSize Size of the source image ROI.
  2413. // pDp Pointer to the result (one-channel data) or array (multi-channel data) containing computed dot products of channel values of pixels in the source images.
  2414. // hint Option to select the algorithmic implementation of the function
  2415. // Notes:
  2416. */
  2417. IPPAPI(IppStatus, ippiDotProd_8u64f_C1R,(const Ipp8u* pSrc1, int src1Step, const Ipp8u* pSrc2, int src2Step, IppiSize roiSize, Ipp64f *pDp))
  2418. IPPAPI(IppStatus, ippiDotProd_16u64f_C1R,(const Ipp16u* pSrc1, int src1Step, const Ipp16u* pSrc2, int src2Step, IppiSize roiSize, Ipp64f *pDp))
  2419. IPPAPI(IppStatus, ippiDotProd_16s64f_C1R,(const Ipp16s* pSrc1, int src1Step, const Ipp16s* pSrc2, int src2Step, IppiSize roiSize, Ipp64f *pDp))
  2420. IPPAPI(IppStatus, ippiDotProd_32s64f_C1R,(const Ipp32s* pSrc1, int src1Step, const Ipp32s* pSrc2, int src2Step, IppiSize roiSize, Ipp64f *pDp))
  2421. /* /////////////////////////////////////////////////////////////////////////////
  2422. // Name: ippiSum
  2423. // Purpose: computes the sum of image pixel values
  2424. // Context:
  2425. // Returns: IppStatus
  2426. // ippStsNoErr OK
  2427. // ippStsNullPtrErr One of the pointers is NULL
  2428. // ippStsSizeErr roiSize has a field with zero or negative value
  2429. // Parameters:
  2430. // pSrc Pointer to the source image.
  2431. // srcStep Step in bytes through the source image
  2432. // roiSize Size of the source image ROI.
  2433. // pSum Pointer to the result (one-channel data)
  2434. // sum Array containing the results (multi-channel data)
  2435. // hint Option to select the algorithmic implementation of the function
  2436. // Notes:
  2437. */
  2438. IPPAPI(IppStatus, ippiSum_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  2439. IppiSize roiSize, Ipp64f* pSum))
  2440. IPPAPI(IppStatus, ippiSum_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  2441. IppiSize roiSize, Ipp64f sum[3]))
  2442. IPPAPI(IppStatus, ippiSum_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  2443. IppiSize roiSize, Ipp64f sum[4]))
  2444. IPPAPI(IppStatus, ippiSum_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  2445. IppiSize roiSize, Ipp64f* pSum))
  2446. IPPAPI(IppStatus, ippiSum_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  2447. IppiSize roiSize, Ipp64f sum[3]))
  2448. IPPAPI(IppStatus, ippiSum_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  2449. IppiSize roiSize, Ipp64f sum[4]))
  2450. IPPAPI(IppStatus, ippiSum_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  2451. IppiSize roiSize, Ipp64f* pSum))
  2452. IPPAPI(IppStatus, ippiSum_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  2453. IppiSize roiSize, Ipp64f sum[3]))
  2454. IPPAPI(IppStatus, ippiSum_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  2455. IppiSize roiSize, Ipp64f sum[4]))
  2456. IPPAPI(IppStatus, ippiSum_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2457. IppiSize roiSize, Ipp64f* pSum, IppHintAlgorithm hint))
  2458. IPPAPI(IppStatus, ippiSum_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  2459. IppiSize roiSize, Ipp64f sum[3], IppHintAlgorithm hint))
  2460. IPPAPI(IppStatus, ippiSum_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  2461. IppiSize roiSize, Ipp64f sum[4], IppHintAlgorithm hint))
  2462. /* ////////////////////////////////////////////////////////////////////////////
  2463. // Names: ippiSqr_8u_C1RSfs
  2464. // ippiSqr_8u_C3RSfs
  2465. // ippiSqr_8u_AC4RSfs
  2466. // ippiSqr_8u_C4RSfs
  2467. // ippiSqr_16u_C1RSfs
  2468. // ippiSqr_16u_C3RSfs
  2469. // ippiSqr_16u_AC4RSfs
  2470. // ippiSqr_16u_C4RSfs
  2471. // ippiSqr_16s_C1RSfs
  2472. // ippiSqr_16s_C3RSfs
  2473. // ippiSqr_16s_AC4RSfs
  2474. // ippiSqr_16s_C4RSfs
  2475. // ippiSqr_32f_C1R
  2476. // ippiSqr_32f_C3R
  2477. // ippiSqr_32f_AC4R
  2478. // ippiSqr_32f_C4R
  2479. //
  2480. // ippiSqr_8u_C1IRSfs
  2481. // ippiSqr_8u_C3IRSfs
  2482. // ippiSqr_8u_AC4IRSfs
  2483. // ippiSqr_8u_C4IRSfs
  2484. // ippiSqr_16u_C1IRSfs
  2485. // ippiSqr_16u_C3IRSfs
  2486. // ippiSqr_16u_AC4IRSfs
  2487. // ippiSqr_16u_C4IRSfs
  2488. // ippiSqr_16s_C1IRSfs
  2489. // ippiSqr_16s_C3IRSfs
  2490. // ippiSqr_16s_AC4IRSfs
  2491. // ippiSqr_16s_C4IRSfs
  2492. // ippiSqr_32f_C1IR
  2493. // ippiSqr_32f_C3IR
  2494. // ippiSqr_32f_AC4IR
  2495. // ippiSqr_32f_C4IR
  2496. //
  2497. // Purpose: squares pixel values of an image and
  2498. // places results in the destination image;
  2499. // for in-place flavors - in the same image
  2500. // Returns:
  2501. // ippStsNoErr OK
  2502. // ippStsNullPtrErr One of the pointers is NULL
  2503. // ippStsSizeErr The roiSize has a field with negative or zero value
  2504. //
  2505. // Parameters:
  2506. // pSrc pointer to the source image
  2507. // srcStep step through the source image
  2508. // pDst pointer to the destination image
  2509. // dstStep step through the destination image
  2510. // pSrcDst pointer to the source/destination image (for in-place function)
  2511. // srcDstStep step through the source/destination image (for in-place function)
  2512. // roiSize size of the ROI
  2513. // scaleFactor scale factor
  2514. */
  2515. IPPAPI(IppStatus,ippiSqr_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2516. Ipp32f* pDst, int dstStep, IppiSize roiSize))
  2517. /* /////////////////////////////////////////////////////////////////////////////
  2518. // Name: ippiMean
  2519. // Purpose: computes the mean of image pixel values
  2520. // Context:
  2521. // Returns: IppStatus
  2522. // ippStsNoErr OK
  2523. // ippStsNullPtrErr One of the pointers is NULL
  2524. // ippStsSizeErr roiSize has a field with zero or negative value.
  2525. // Parameters:
  2526. // pSrc Pointer to the source image.
  2527. // srcStep Step in bytes through the source image
  2528. // roiSize Size of the source ROI.
  2529. // pMean Pointer to the result (one-channel data)
  2530. // mean Array containing the results (multi-channel data)
  2531. // hint Option to select the algorithmic implementation of the function
  2532. // Notes:
  2533. */
  2534. IPPAPI(IppStatus, ippiMean_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  2535. IppiSize roiSize, Ipp64f* pMean))
  2536. IPPAPI(IppStatus, ippiMean_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  2537. IppiSize roiSize, Ipp64f mean[3]))
  2538. IPPAPI(IppStatus, ippiMean_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  2539. IppiSize roiSize, Ipp64f mean[4]))
  2540. IPPAPI(IppStatus, ippiMean_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  2541. IppiSize roiSize, Ipp64f* pMean))
  2542. IPPAPI(IppStatus, ippiMean_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  2543. IppiSize roiSize, Ipp64f mean[3]))
  2544. IPPAPI(IppStatus, ippiMean_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  2545. IppiSize roiSize, Ipp64f mean[4]))
  2546. IPPAPI(IppStatus, ippiMean_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  2547. IppiSize roiSize, Ipp64f* pMean))
  2548. IPPAPI(IppStatus, ippiMean_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  2549. IppiSize roiSize, Ipp64f mean[3]))
  2550. IPPAPI(IppStatus, ippiMean_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  2551. IppiSize roiSize, Ipp64f mean[4]))
  2552. IPPAPI(IppStatus, ippiMean_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2553. IppiSize roiSize, Ipp64f* pMean, IppHintAlgorithm hint))
  2554. IPPAPI(IppStatus, ippiMean_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  2555. IppiSize roiSize, Ipp64f mean[3], IppHintAlgorithm hint))
  2556. IPPAPI(IppStatus, ippiMean_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  2557. IppiSize roiSize, Ipp64f mean[4], IppHintAlgorithm hint))
  2558. /* /////////////////////////////////////////////////////////////////////////////
  2559. // Name: ippiNorm_Inf
  2560. // Purpose: computes the C-norm of pixel values of the image: n = MAX |src1|
  2561. // Context:
  2562. // Returns: IppStatus
  2563. // ippStsNoErr OK
  2564. // ippStsNullPtrErr One of the pointers is NULL
  2565. // ippStsSizeErr roiSize has a field with zero or negative value
  2566. // Parameters:
  2567. // pSrc Pointer to the source image.
  2568. // srcStep Step through the source image
  2569. // roiSize Size of the source ROI.
  2570. // pValue Pointer to the computed norm (one-channel data)
  2571. // value Array of the computed norms for each channel (multi-channel data)
  2572. // Notes:
  2573. */
  2574. IPPAPI(IppStatus, ippiNorm_Inf_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  2575. IppiSize roiSize, Ipp64f* pValue))
  2576. IPPAPI(IppStatus, ippiNorm_Inf_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  2577. IppiSize roiSize, Ipp64f value[3]))
  2578. IPPAPI(IppStatus, ippiNorm_Inf_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  2579. IppiSize roiSize, Ipp64f value[4]))
  2580. IPPAPI(IppStatus, ippiNorm_Inf_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  2581. IppiSize roiSize, Ipp64f* pValue))
  2582. IPPAPI(IppStatus, ippiNorm_Inf_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  2583. IppiSize roiSize, Ipp64f value[3]))
  2584. IPPAPI(IppStatus, ippiNorm_Inf_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  2585. IppiSize roiSize, Ipp64f value[4]))
  2586. IPPAPI(IppStatus, ippiNorm_Inf_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  2587. IppiSize roiSize, Ipp64f* pValue))
  2588. IPPAPI(IppStatus, ippiNorm_Inf_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  2589. IppiSize roiSize, Ipp64f value[3]))
  2590. IPPAPI(IppStatus, ippiNorm_Inf_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  2591. IppiSize roiSize, Ipp64f value[4]))
  2592. IPPAPI(IppStatus, ippiNorm_Inf_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2593. IppiSize roiSize, Ipp64f* pValue))
  2594. IPPAPI(IppStatus, ippiNorm_Inf_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  2595. IppiSize roiSize, Ipp64f value[3]))
  2596. IPPAPI(IppStatus, ippiNorm_Inf_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  2597. IppiSize roiSize, Ipp64f value[4]))
  2598. /* /////////////////////////////////////////////////////////////////////////////
  2599. // Name: ippiNorm_L1
  2600. // Purpose: computes the L1-norm of pixel values of the image: n = SUM |src1|
  2601. // Context:
  2602. // Returns: IppStatus
  2603. // ippStsNoErr OK
  2604. // ippStsNullPtrErr One of the pointers is NULL
  2605. // ippStsSizeErr roiSize has a field with zero or negative value
  2606. // Parameters:
  2607. // pSrc Pointer to the source image.
  2608. // srcStep Step through the source image
  2609. // roiSize Size of the source ROI.
  2610. // pValue Pointer to the computed norm (one-channel data)
  2611. // value Array of the computed norms for each channel (multi-channel data)
  2612. // hint Option to specify the computation algorithm
  2613. // Notes:
  2614. */
  2615. IPPAPI(IppStatus, ippiNorm_L1_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  2616. IppiSize roiSize, Ipp64f* pValue))
  2617. IPPAPI(IppStatus, ippiNorm_L1_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  2618. IppiSize roiSize, Ipp64f value[3]))
  2619. IPPAPI(IppStatus, ippiNorm_L1_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  2620. IppiSize roiSize, Ipp64f value[4]))
  2621. IPPAPI(IppStatus, ippiNorm_L1_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  2622. IppiSize roiSize, Ipp64f* pValue))
  2623. IPPAPI(IppStatus, ippiNorm_L1_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  2624. IppiSize roiSize, Ipp64f value[3]))
  2625. IPPAPI(IppStatus, ippiNorm_L1_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  2626. IppiSize roiSize, Ipp64f value[4]))
  2627. IPPAPI(IppStatus, ippiNorm_L1_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  2628. IppiSize roiSize, Ipp64f* pValue))
  2629. IPPAPI(IppStatus, ippiNorm_L1_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  2630. IppiSize roiSize, Ipp64f value[3]))
  2631. IPPAPI(IppStatus, ippiNorm_L1_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  2632. IppiSize roiSize, Ipp64f value[4]))
  2633. IPPAPI(IppStatus, ippiNorm_L1_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2634. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2635. IPPAPI(IppStatus, ippiNorm_L1_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  2636. IppiSize roiSize, Ipp64f value[3], IppHintAlgorithm hint))
  2637. IPPAPI(IppStatus, ippiNorm_L1_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  2638. IppiSize roiSize, Ipp64f value[4], IppHintAlgorithm hint))
  2639. /* /////////////////////////////////////////////////////////////////////////////
  2640. // Name: ippiNorm_L2
  2641. // Purpose: computes the L2-norm of pixel values of the image: n = SQRT(SUM |src1|^2)
  2642. // Context:
  2643. // Returns: IppStatus
  2644. // ippStsNoErr OK
  2645. // ippStsNullPtrErr One of the pointers is NULL
  2646. // ippStsSizeErr roiSize has a field with zero or negative value
  2647. // Parameters:
  2648. // pSrc Pointer to the source image.
  2649. // srcStep Step through the source image
  2650. // roiSize Size of the source ROI.
  2651. // pValue Pointer to the computed norm (one-channel data)
  2652. // value Array of the computed norms for each channel (multi-channel data)
  2653. // hint Option to specify the computation algorithm
  2654. // Notes:
  2655. // simple mul is better than table for P6 family
  2656. */
  2657. IPPAPI(IppStatus, ippiNorm_L2_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  2658. IppiSize roiSize, Ipp64f* pValue))
  2659. IPPAPI(IppStatus, ippiNorm_L2_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  2660. IppiSize roiSize, Ipp64f value[3]))
  2661. IPPAPI(IppStatus, ippiNorm_L2_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  2662. IppiSize roiSize, Ipp64f value[4]))
  2663. IPPAPI(IppStatus, ippiNorm_L2_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  2664. IppiSize roiSize, Ipp64f* pValue))
  2665. IPPAPI(IppStatus, ippiNorm_L2_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  2666. IppiSize roiSize, Ipp64f value[3]))
  2667. IPPAPI(IppStatus, ippiNorm_L2_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  2668. IppiSize roiSize, Ipp64f value[4]))
  2669. IPPAPI(IppStatus, ippiNorm_L2_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  2670. IppiSize roiSize, Ipp64f* pValue))
  2671. IPPAPI(IppStatus, ippiNorm_L2_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  2672. IppiSize roiSize, Ipp64f value[3]))
  2673. IPPAPI(IppStatus, ippiNorm_L2_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  2674. IppiSize roiSize, Ipp64f value[4]))
  2675. IPPAPI(IppStatus, ippiNorm_L2_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  2676. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2677. IPPAPI(IppStatus, ippiNorm_L2_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  2678. IppiSize roiSize, Ipp64f value[3], IppHintAlgorithm hint))
  2679. IPPAPI(IppStatus, ippiNorm_L2_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  2680. IppiSize roiSize, Ipp64f value[4], IppHintAlgorithm hint))
  2681. /* //////////////////////////////////////////////////////////////////////////////////////////
  2682. // Name: ippiNormRel_Inf
  2683. // Purpose: computes the relative error for the C-norm of pixel values of two images:
  2684. // n = MAX |src1 - src2| / MAX |src2|
  2685. // Context:
  2686. // Returns: IppStatus
  2687. // ippStsNoErr OK
  2688. // ippStsNullPtrErr One of the pointers is NULL
  2689. // ippStsSizeErr roiSize has a field with zero or negative value
  2690. // ippStsDivByZero MAX |src2| == 0
  2691. // Parameters:
  2692. // pSrc1, pSrc2 Pointers to the source images.
  2693. // src1Step, src2Step Steps in bytes through the source images
  2694. // roiSize Size of the source ROI.
  2695. // pValue Pointer to the computed norm (one-channel data)
  2696. // value Array of the computed norms for each channel (multi-channel data)
  2697. // Notes:
  2698. */
  2699. IPPAPI(IppStatus, ippiNormRel_Inf_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2700. const Ipp8u* pSrc2, int src2Step,
  2701. IppiSize roiSize, Ipp64f* pValue))
  2702. IPPAPI(IppStatus, ippiNormRel_Inf_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2703. const Ipp16u* pSrc2, int src2Step,
  2704. IppiSize roiSize, Ipp64f* pValue))
  2705. IPPAPI(IppStatus, ippiNormRel_Inf_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2706. const Ipp16s* pSrc2, int src2Step,
  2707. IppiSize roiSize, Ipp64f* pValue))
  2708. IPPAPI(IppStatus, ippiNormRel_Inf_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2709. const Ipp32f* pSrc2, int src2Step,
  2710. IppiSize roiSize, Ipp64f* pValue))
  2711. /* /////////////////////////////////////////////////////////////////////////////////////////
  2712. // Name: ippiNormRel_L1
  2713. // Purpose: computes the relative error for the 1-norm of pixel values of two images:
  2714. // n = SUM |src1 - src2| / SUM |src2|
  2715. // Context:
  2716. // Returns: IppStatus
  2717. // ippStsNoErr OK
  2718. // ippStsNullPtrErr One of the pointers is NULL
  2719. // ippStsSizeErr roiSize has a field with zero or negative value
  2720. // ippStsDivByZero SUM |src2| == 0
  2721. // Parameters:
  2722. // pSrc1, pSrc2 Pointers to the source images.
  2723. // src1Step, src2Step Steps in bytes through the source images
  2724. // roiSize Size of the source ROI.
  2725. // pValue Pointer to the computed norm (one-channel data)
  2726. // value Array of the computed norms for each channel (multi-channel data)
  2727. // hint Option to specify the computation algorithm
  2728. // Notes:
  2729. */
  2730. IPPAPI(IppStatus, ippiNormRel_L1_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2731. const Ipp8u* pSrc2, int src2Step,
  2732. IppiSize roiSize, Ipp64f* pValue))
  2733. IPPAPI(IppStatus, ippiNormRel_L1_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2734. const Ipp16s* pSrc2, int src2Step,
  2735. IppiSize roiSize, Ipp64f* pValue))
  2736. IPPAPI(IppStatus, ippiNormRel_L1_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2737. const Ipp16u* pSrc2, int src2Step,
  2738. IppiSize roiSize, Ipp64f* pValue))
  2739. IPPAPI(IppStatus, ippiNormRel_L1_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2740. const Ipp32f* pSrc2, int src2Step,
  2741. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2742. /* //////////////////////////////////////////////////////////////////////////////////////////
  2743. // Name: ippiNormRel_L2
  2744. // Purpose: computes the relative error for the L2-norm of pixel values of two images:
  2745. // n = SQRT(SUM |src1 - src2|^2 / SUM |src2|^2)
  2746. // Context:
  2747. // Returns: IppStatus
  2748. // ippStsNoErr OK
  2749. // ippStsNullPtrErr One of the pointers is NULL
  2750. // ippStsSizeErr roiSize has a field with zero or negative value
  2751. // ippStsDivByZero SUM |src2|^2 == 0
  2752. // Parameters:
  2753. // pSrc1, pSrc2 Pointers to the source images.
  2754. // src1Step, src2Step Steps in bytes through the source images
  2755. // roiSize Size of the source ROI.
  2756. // pValue Pointer to the computed norm (one-channel data)
  2757. // value Array of the computed norms for each channel (multi-channel data)
  2758. // hint Option to specify the computation algorithm
  2759. // Notes:
  2760. */
  2761. IPPAPI(IppStatus, ippiNormRel_L2_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2762. const Ipp8u* pSrc2, int src2Step,
  2763. IppiSize roiSize, Ipp64f* pValue))
  2764. IPPAPI(IppStatus, ippiNormRel_L2_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2765. const Ipp16s* pSrc2, int src2Step,
  2766. IppiSize roiSize, Ipp64f* pValue))
  2767. IPPAPI(IppStatus, ippiNormRel_L2_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2768. const Ipp16u* pSrc2, int src2Step,
  2769. IppiSize roiSize, Ipp64f* pValue))
  2770. IPPAPI(IppStatus, ippiNormRel_L2_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2771. const Ipp32f* pSrc2, int src2Step,
  2772. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2773. /* /////////////////////////////////////////////////////////////////////////////
  2774. // Name: ippiNormDiff_Inf
  2775. // Purpose: computes the C-norm of pixel values of two images: n = MAX |src1 - src2|
  2776. // Context:
  2777. // Returns: IppStatus
  2778. // ippStsNoErr OK
  2779. // ippStsNullPtrErr One of the pointers is NULL
  2780. // ippStsSizeErr roiSize has a field with zero or negative value
  2781. // Parameters:
  2782. // pSrc1, pSrc2 Pointers to the source images.
  2783. // src1Step, src2Step Steps in bytes through the source images
  2784. // roiSize Size of the source ROI.
  2785. // pValue Pointer to the computed norm (one-channel data)
  2786. // value Array of the computed norms for each channel (multi-channel data)
  2787. // Notes:
  2788. */
  2789. IPPAPI(IppStatus, ippiNormDiff_Inf_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2790. const Ipp8u* pSrc2, int src2Step,
  2791. IppiSize roiSize, Ipp64f* pValue))
  2792. IPPAPI(IppStatus, ippiNormDiff_Inf_8u_C3R, (const Ipp8u* pSrc1, int src1Step,
  2793. const Ipp8u* pSrc2, int src2Step,
  2794. IppiSize roiSize, Ipp64f value[3]))
  2795. IPPAPI(IppStatus, ippiNormDiff_Inf_8u_C4R, (const Ipp8u* pSrc1, int src1Step,
  2796. const Ipp8u* pSrc2, int src2Step,
  2797. IppiSize roiSize, Ipp64f value[4]))
  2798. IPPAPI(IppStatus, ippiNormDiff_Inf_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2799. const Ipp16s* pSrc2, int src2Step,
  2800. IppiSize roiSize, Ipp64f* pValue))
  2801. IPPAPI(IppStatus, ippiNormDiff_Inf_16s_C3R, (const Ipp16s* pSrc1, int src1Step,
  2802. const Ipp16s* pSrc2, int src2Step,
  2803. IppiSize roiSize, Ipp64f value[3]))
  2804. IPPAPI(IppStatus, ippiNormDiff_Inf_16s_C4R, (const Ipp16s* pSrc1, int src1Step,
  2805. const Ipp16s* pSrc2, int src2Step,
  2806. IppiSize roiSize, Ipp64f value[4]))
  2807. IPPAPI(IppStatus, ippiNormDiff_Inf_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2808. const Ipp16u* pSrc2, int src2Step,
  2809. IppiSize roiSize, Ipp64f* pValue))
  2810. IPPAPI(IppStatus, ippiNormDiff_Inf_16u_C3R, (const Ipp16u* pSrc1, int src1Step,
  2811. const Ipp16u* pSrc2, int src2Step,
  2812. IppiSize roiSize, Ipp64f value[3]))
  2813. IPPAPI(IppStatus, ippiNormDiff_Inf_16u_C4R, (const Ipp16u* pSrc1, int src1Step,
  2814. const Ipp16u* pSrc2, int src2Step,
  2815. IppiSize roiSize, Ipp64f value[4]))
  2816. IPPAPI(IppStatus, ippiNormDiff_Inf_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2817. const Ipp32f* pSrc2, int src2Step,
  2818. IppiSize roiSize, Ipp64f* pValue))
  2819. IPPAPI(IppStatus, ippiNormDiff_Inf_32f_C3R, (const Ipp32f* pSrc1, int src1Step,
  2820. const Ipp32f* pSrc2, int src2Step,
  2821. IppiSize roiSize, Ipp64f value[3]))
  2822. IPPAPI(IppStatus, ippiNormDiff_Inf_32f_C4R, (const Ipp32f* pSrc1, int src1Step,
  2823. const Ipp32f* pSrc2, int src2Step,
  2824. IppiSize roiSize, Ipp64f value[4]))
  2825. /* /////////////////////////////////////////////////////////////////////////////
  2826. // Name: ippiNormDiff_L1
  2827. // Purpose: computes the L1-norm of pixel values of two images: n = SUM |src1 - src2|
  2828. // Context:
  2829. // Returns: IppStatus
  2830. // ippStsNoErr OK
  2831. // ippStsNullPtrErr One of the pointers is NULL
  2832. // ippStsSizeErr roiSize has a field with zero or negative value
  2833. // Parameters:
  2834. // pSrc1, pSrc2 Pointers to the source images.
  2835. // src1Step, src2Step Steps in bytes through the source images
  2836. // roiSize Size of the source ROI.
  2837. // pValue Pointer to the computed norm (one-channel data)
  2838. // value Array of the computed norms for each channel (multi-channel data)
  2839. // hint Option to specify the computation algorithm
  2840. // Notes:
  2841. */
  2842. IPPAPI(IppStatus, ippiNormDiff_L1_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2843. const Ipp8u* pSrc2, int src2Step,
  2844. IppiSize roiSize, Ipp64f* pValue))
  2845. IPPAPI(IppStatus, ippiNormDiff_L1_8u_C3R, (const Ipp8u* pSrc1, int src1Step,
  2846. const Ipp8u* pSrc2, int src2Step,
  2847. IppiSize roiSize, Ipp64f value[3]))
  2848. IPPAPI(IppStatus, ippiNormDiff_L1_8u_C4R, (const Ipp8u* pSrc1, int src1Step,
  2849. const Ipp8u* pSrc2, int src2Step,
  2850. IppiSize roiSize, Ipp64f value[4]))
  2851. IPPAPI(IppStatus, ippiNormDiff_L1_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2852. const Ipp16s* pSrc2, int src2Step,
  2853. IppiSize roiSize, Ipp64f* pValue))
  2854. IPPAPI(IppStatus, ippiNormDiff_L1_16s_C3R, (const Ipp16s* pSrc1, int src1Step,
  2855. const Ipp16s* pSrc2, int src2Step,
  2856. IppiSize roiSize, Ipp64f value[3]))
  2857. IPPAPI(IppStatus, ippiNormDiff_L1_16s_C4R, (const Ipp16s* pSrc1, int src1Step,
  2858. const Ipp16s* pSrc2, int src2Step,
  2859. IppiSize roiSize, Ipp64f value[4]))
  2860. IPPAPI(IppStatus, ippiNormDiff_L1_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2861. const Ipp16u* pSrc2, int src2Step,
  2862. IppiSize roiSize, Ipp64f* pValue))
  2863. IPPAPI(IppStatus, ippiNormDiff_L1_16u_C3R, (const Ipp16u* pSrc1, int src1Step,
  2864. const Ipp16u* pSrc2, int src2Step,
  2865. IppiSize roiSize, Ipp64f value[3]))
  2866. IPPAPI(IppStatus, ippiNormDiff_L1_16u_C4R, (const Ipp16u* pSrc1, int src1Step,
  2867. const Ipp16u* pSrc2, int src2Step,
  2868. IppiSize roiSize, Ipp64f value[4]))
  2869. IPPAPI(IppStatus, ippiNormDiff_L1_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2870. const Ipp32f* pSrc2, int src2Step,
  2871. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2872. IPPAPI(IppStatus, ippiNormDiff_L1_32f_C3R, (const Ipp32f* pSrc1, int src1Step,
  2873. const Ipp32f* pSrc2, int src2Step,
  2874. IppiSize roiSize, Ipp64f value[3], IppHintAlgorithm hint))
  2875. IPPAPI(IppStatus, ippiNormDiff_L1_32f_C4R, (const Ipp32f* pSrc1, int src1Step,
  2876. const Ipp32f* pSrc2, int src2Step,
  2877. IppiSize roiSize, Ipp64f value[4], IppHintAlgorithm hint))
  2878. /* /////////////////////////////////////////////////////////////////////////////////
  2879. // Name: ippiNormDiff_L2
  2880. // Purpose: computes the L2-norm of pixel values of two images:
  2881. // n = SQRT(SUM |src1 - src2|^2)
  2882. // Context:
  2883. // Returns: IppStatus
  2884. // ippStsNoErr OK
  2885. // ippStsNullPtrErr One of the pointers is NULL
  2886. // ippStsSizeErr roiSize has a field with zero or negative value
  2887. // Parameters:
  2888. // pSrc1, pSrc2 Pointers to the source images.
  2889. // src1Step, src2Step Steps in bytes through the source images
  2890. // roiSize Size of the source ROI.
  2891. // pValue Pointer to the computed norm (one-channel data)
  2892. // value Array of the computed norms for each channel (multi-channel data)
  2893. // hint Option to specify the computation algorithm
  2894. // Notes:
  2895. */
  2896. IPPAPI(IppStatus, ippiNormDiff_L2_8u_C1R, (const Ipp8u* pSrc1, int src1Step,
  2897. const Ipp8u* pSrc2, int src2Step,
  2898. IppiSize roiSize, Ipp64f* pValue))
  2899. IPPAPI(IppStatus, ippiNormDiff_L2_8u_C3R, (const Ipp8u* pSrc1, int src1Step,
  2900. const Ipp8u* pSrc2, int src2Step,
  2901. IppiSize roiSize, Ipp64f value[3]))
  2902. IPPAPI(IppStatus, ippiNormDiff_L2_8u_C4R, (const Ipp8u* pSrc1, int src1Step,
  2903. const Ipp8u* pSrc2, int src2Step,
  2904. IppiSize roiSize, Ipp64f value[4]))
  2905. IPPAPI(IppStatus, ippiNormDiff_L2_16s_C1R, (const Ipp16s* pSrc1, int src1Step,
  2906. const Ipp16s* pSrc2, int src2Step,
  2907. IppiSize roiSize, Ipp64f* pValue))
  2908. IPPAPI(IppStatus, ippiNormDiff_L2_16s_C3R, (const Ipp16s* pSrc1, int src1Step,
  2909. const Ipp16s* pSrc2, int src2Step,
  2910. IppiSize roiSize, Ipp64f value[3]))
  2911. IPPAPI(IppStatus, ippiNormDiff_L2_16s_C4R, (const Ipp16s* pSrc1, int src1Step,
  2912. const Ipp16s* pSrc2, int src2Step,
  2913. IppiSize roiSize, Ipp64f value[4]))
  2914. IPPAPI(IppStatus, ippiNormDiff_L2_16u_C1R, (const Ipp16u* pSrc1, int src1Step,
  2915. const Ipp16u* pSrc2, int src2Step,
  2916. IppiSize roiSize, Ipp64f* pValue))
  2917. IPPAPI(IppStatus, ippiNormDiff_L2_16u_C3R, (const Ipp16u* pSrc1, int src1Step,
  2918. const Ipp16u* pSrc2, int src2Step,
  2919. IppiSize roiSize, Ipp64f value[3]))
  2920. IPPAPI(IppStatus, ippiNormDiff_L2_16u_C4R, (const Ipp16u* pSrc1, int src1Step,
  2921. const Ipp16u* pSrc2, int src2Step,
  2922. IppiSize roiSize, Ipp64f value[4]))
  2923. IPPAPI(IppStatus, ippiNormDiff_L2_32f_C1R, (const Ipp32f* pSrc1, int src1Step,
  2924. const Ipp32f* pSrc2, int src2Step,
  2925. IppiSize roiSize, Ipp64f* pValue, IppHintAlgorithm hint))
  2926. IPPAPI(IppStatus, ippiNormDiff_L2_32f_C3R, (const Ipp32f* pSrc1, int src1Step,
  2927. const Ipp32f* pSrc2, int src2Step,
  2928. IppiSize roiSize, Ipp64f value[3], IppHintAlgorithm hint))
  2929. IPPAPI(IppStatus, ippiNormDiff_L2_32f_C4R, (const Ipp32f* pSrc1, int src1Step,
  2930. const Ipp32f* pSrc2, int src2Step,
  2931. IppiSize roiSize, Ipp64f value[4], IppHintAlgorithm hint))
  2932. /* ////////////////////////////////////////////////////////////////////////////
  2933. // Name: ippiSwapChannels C3C4R,C4C3R
  2934. //
  2935. // Purpose: Changes the order of channels of the image
  2936. // The function performs operation for each pixel:
  2937. // a) C3C4R.
  2938. // if(dstOrder[i] < 3) dst[i] = src[dstOrder[i]];
  2939. // if(dstOrder[i] == 3) dst[i] = val;
  2940. // if(dstOrder[i] > 3) dst[i] does not change;
  2941. // i = 0,1,2,3
  2942. // b) C4C3R.
  2943. // dst[0] = src [dstOrder[0]];
  2944. // dst[1] = src [dstOrder[1]];
  2945. // dst[2] = src [dstOrder[2]];
  2946. //
  2947. // Returns:
  2948. // ippStsNullPtrErr One of the pointers is NULL
  2949. // ippStsSizeErr roiSize has a field with zero or negative value
  2950. // ippStsChannelOrderErr dstOrder is out of the range, it should be:
  2951. // a) C3C4R.
  2952. // dstOrder[i] => 0, i = 0,1,2,3.
  2953. // b) C4C3R.
  2954. // 0 <= dstOrder[i] <= 3, i = 0,1,2.
  2955. // ippStsNoErr OK
  2956. //
  2957. // Parameters:
  2958. // pSrc Pointer to the source image
  2959. // srcStep Step in bytes through the source image
  2960. // pDst Pointer to the destination image
  2961. // dstStep Step in bytes through the destination image
  2962. // roiSize Size of the ROI
  2963. // dstOrder The order of channels in the destination image
  2964. // val Constant value for C3C4R
  2965. */
  2966. IPPAPI ( IppStatus, ippiSwapChannels_8u_C3C4R,
  2967. ( const Ipp8u* pSrc, int srcStep,
  2968. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  2969. const int dstOrder[4], Ipp8u val ))
  2970. IPPAPI ( IppStatus, ippiSwapChannels_16u_C3C4R,
  2971. ( const Ipp16u* pSrc, int srcStep,
  2972. Ipp16u* pDst, int dstStep, IppiSize roiSize,
  2973. const int dstOrder[4], Ipp16u val ))
  2974. IPPAPI ( IppStatus, ippiSwapChannels_32f_C3C4R,
  2975. ( const Ipp32f* pSrc, int srcStep,
  2976. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  2977. const int dstOrder[4], Ipp32f val ))
  2978. IPPAPI ( IppStatus, ippiSwapChannels_8u_C4C3R,
  2979. ( const Ipp8u* pSrc, int srcStep,
  2980. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  2981. const int dstOrder[3] ))
  2982. IPPAPI ( IppStatus, ippiSwapChannels_16u_C4C3R,
  2983. ( const Ipp16u* pSrc, int srcStep,
  2984. Ipp16u* pDst, int dstStep, IppiSize roiSize,
  2985. const int dstOrder[3] ))
  2986. IPPAPI ( IppStatus, ippiSwapChannels_32f_C4C3R,
  2987. ( const Ipp32f* pSrc, int srcStep,
  2988. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  2989. const int dstOrder[3] ))
  2990. /* ////////////////////////////////////////////////////////////////////////////
  2991. // Name: ippiSwapChannels
  2992. //
  2993. // Purpose: Changes the order of channels of the image
  2994. // The function performs operation for each pixel:
  2995. // pDst[0] = pSrc[ dstOrder[0] ]
  2996. // pDst[1] = pSrc[ dstOrder[1] ]
  2997. // pDst[2] = pSrc[ dstOrder[2] ]
  2998. // pDst[3] = pSrc[ dstOrder[3] ]
  2999. //
  3000. // Returns:
  3001. // ippStsNullPtrErr One of the pointers is NULL
  3002. // ippStsSizeErr roiSize has a field with zero or negative value
  3003. // ippStsStepErr One of the step values is less than or equal to zero
  3004. // ippStsChannelOrderErr dstOrder is out of the range,
  3005. // it should be: dstOrder[3] = { 0..2, 0..2, 0..2 } for C3R, AC4R image
  3006. // and dstOrder[4] = { 0..3, 0..3, 0..3 } for C4R image
  3007. // ippStsNoErr OK
  3008. //
  3009. // Parameters:
  3010. // pSrc Pointer to the source image
  3011. // srcStep Step in bytes through the source image
  3012. // pDst Pointer to the destination image
  3013. // dstStep Step in bytes through the destination image
  3014. // pSrcDst Pointer to the source/destination image (in-place flavors)
  3015. // srcDstStep Step through the source/destination image (in-place flavors)
  3016. // roiSize Size of the ROI
  3017. // dstOrder The order of channels in the destination image
  3018. */
  3019. IPPAPI ( IppStatus, ippiSwapChannels_8u_C4R,
  3020. ( const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  3021. IppiSize roiSize, const int dstOrder[4] ))
  3022. IPPAPI ( IppStatus, ippiSwapChannels_16u_C4R,
  3023. ( const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  3024. IppiSize roiSize, const int dstOrder[4] ))
  3025. IPPAPI ( IppStatus, ippiSwapChannels_32f_C4R,
  3026. ( const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  3027. IppiSize roiSize, const int dstOrder[4] ))
  3028. /* ////////////////////////////////////////////////////////////////////////////
  3029. // Name: ippiSwapChannels
  3030. //
  3031. // Purpose: Changes the order of channels of the image
  3032. // The function performs operation for each pixel:
  3033. // pDst[0] = pSrc[ dstOrder[0] ]
  3034. // pDst[1] = pSrc[ dstOrder[1] ]
  3035. // pDst[2] = pSrc[ dstOrder[2] ]
  3036. // pDst[3] = pSrc[ dstOrder[3] ]
  3037. //
  3038. // Returns:
  3039. // ippStsNullPtrErr One of the pointers is NULL
  3040. // ippStsSizeErr roiSize has a field with zero or negative value
  3041. // ippStsStepErr One of the step values is less than or equal to zero
  3042. // ippStsChannelOrderErr dstOrder is out of the range,
  3043. // it should be: dstOrder[3] = { 0..2, 0..2, 0..2 } for C3R, AC4R image
  3044. // and dstOrder[4] = { 0..3, 0..3, 0..3 } for C4R image
  3045. // ippStsNoErr OK
  3046. //
  3047. // Parameters:
  3048. // pSrc Pointer to the source image
  3049. // srcStep Step in bytes through the source image
  3050. // pDst Pointer to the destination image
  3051. // dstStep Step in bytes through the destination image
  3052. // pSrcDst Pointer to the source/destination image (in-place flavors)
  3053. // srcDstStep Step through the source/destination image (in-place flavors)
  3054. // roiSize Size of the ROI
  3055. // dstOrder The order of channels in the destination image
  3056. */
  3057. IPPAPI ( IppStatus, ippiSwapChannels_8u_C3R,
  3058. ( const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  3059. IppiSize roiSize, const int dstOrder[3] ))
  3060. IPPAPI ( IppStatus, ippiSwapChannels_16u_C3R,
  3061. ( const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
  3062. IppiSize roiSize, const int dstOrder[3] ))
  3063. IPPAPI ( IppStatus, ippiSwapChannels_32f_C3R,
  3064. ( const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
  3065. IppiSize roiSize, const int dstOrder[3] ))
  3066. /* ////////////////////////////////////////////////////////////////////////////
  3067. // Name: ippiCopy
  3068. //
  3069. // Purpose: copy pixel values from the source image to the destination image
  3070. //
  3071. //
  3072. // Returns:
  3073. // ippStsNullPtrErr One of the pointers is NULL
  3074. // ippStsSizeErr roiSize has a field with zero or negative value
  3075. // ippStsNoErr OK
  3076. //
  3077. // Parameters:
  3078. // pSrc Pointer to the source image buffer
  3079. // srcStep Step in bytes through the source image buffer
  3080. // pDst Pointer to the destination image buffer
  3081. // dstStep Step in bytes through the destination image buffer
  3082. // roiSize Size of the ROI
  3083. // pMask Pointer to the mask image buffer
  3084. // maskStep Step in bytes through the mask image buffer
  3085. */
  3086. IPPAPI( IppStatus, ippiCopy_8u_C3C1R,
  3087. ( const Ipp8u* pSrc, int srcStep,
  3088. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3089. IPPAPI( IppStatus, ippiCopy_8u_C1C3R,
  3090. ( const Ipp8u* pSrc, int srcStep,
  3091. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3092. IPPAPI( IppStatus, ippiCopy_8u_C4C1R,
  3093. ( const Ipp8u* pSrc, int srcStep,
  3094. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3095. IPPAPI( IppStatus, ippiCopy_8u_C1C4R,
  3096. ( const Ipp8u* pSrc, int srcStep,
  3097. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3098. IPPAPI( IppStatus, ippiCopy_8u_C3CR,
  3099. ( const Ipp8u* pSrc, int srcStep,
  3100. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3101. IPPAPI( IppStatus, ippiCopy_8u_C4CR,
  3102. ( const Ipp8u* pSrc, int srcStep,
  3103. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3104. IPPAPI( IppStatus, ippiCopy_8u_AC4C3R,
  3105. ( const Ipp8u* pSrc, int srcStep,
  3106. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3107. IPPAPI ( IppStatus, ippiCopy_8u_C1R,
  3108. ( const Ipp8u* pSrc, int srcStep,
  3109. Ipp8u* pDst, int dstStep,IppiSize roiSize ))
  3110. IPPAPI ( IppStatus, ippiCopy_8u_C3R,
  3111. ( const Ipp8u* pSrc, int srcStep,
  3112. Ipp8u* pDst, int dstStep,IppiSize roiSize ))
  3113. IPPAPI ( IppStatus, ippiCopy_8u_C4R,
  3114. ( const Ipp8u* pSrc, int srcStep,
  3115. Ipp8u* pDst, int dstStep,IppiSize roiSize ))
  3116. IPPAPI ( IppStatus, ippiCopy_8u_C1MR,
  3117. ( const Ipp8u* pSrc, int srcStep,
  3118. Ipp8u* pDst, int dstStep,IppiSize roiSize,
  3119. const Ipp8u* pMask, int maskStep ))
  3120. IPPAPI ( IppStatus, ippiCopy_8u_C3MR,
  3121. ( const Ipp8u* pSrc, int srcStep,
  3122. Ipp8u* pDst, int dstStep,IppiSize roiSize,
  3123. const Ipp8u* pMask, int maskStep ))
  3124. IPPAPI ( IppStatus, ippiCopy_8u_C4MR,
  3125. ( const Ipp8u* pSrc, int srcStep,
  3126. Ipp8u* pDst, int dstStep,IppiSize roiSize,
  3127. const Ipp8u* pMask, int maskStep ))
  3128. IPPAPI( IppStatus, ippiCopy_16s_C3C1R,
  3129. ( const Ipp16s* pSrc, int srcStep,
  3130. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3131. IPPAPI( IppStatus, ippiCopy_16s_C1C3R,
  3132. ( const Ipp16s* pSrc, int srcStep,
  3133. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3134. IPPAPI( IppStatus, ippiCopy_16s_C4C1R,
  3135. ( const Ipp16s* pSrc, int srcStep,
  3136. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3137. IPPAPI( IppStatus, ippiCopy_16s_C1C4R,
  3138. ( const Ipp16s* pSrc, int srcStep,
  3139. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3140. IPPAPI( IppStatus, ippiCopy_16s_C3CR,
  3141. ( const Ipp16s* pSrc, int srcStep,
  3142. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3143. IPPAPI( IppStatus, ippiCopy_16s_C4CR,
  3144. ( const Ipp16s* pSrc, int srcStep,
  3145. Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3146. IPPAPI ( IppStatus, ippiCopy_16s_C1R,
  3147. ( const Ipp16s* pSrc, int srcStep,
  3148. Ipp16s* pDst, int dstStep,IppiSize roiSize ))
  3149. IPPAPI ( IppStatus, ippiCopy_16s_C3R,
  3150. ( const Ipp16s* pSrc, int srcStep,
  3151. Ipp16s* pDst, int dstStep,IppiSize roiSize ))
  3152. IPPAPI ( IppStatus, ippiCopy_16s_C4R,
  3153. ( const Ipp16s* pSrc, int srcStep,
  3154. Ipp16s* pDst, int dstStep,IppiSize roiSize ))
  3155. IPPAPI ( IppStatus, ippiCopy_16s_C1MR,
  3156. ( const Ipp16s* pSrc, int srcStep,
  3157. Ipp16s* pDst, int dstStep,IppiSize roiSize,
  3158. const Ipp8u* pMask, int maskStep ))
  3159. IPPAPI ( IppStatus, ippiCopy_16s_C3MR,
  3160. ( const Ipp16s* pSrc, int srcStep,
  3161. Ipp16s* pDst, int dstStep,IppiSize roiSize,
  3162. const Ipp8u* pMask, int maskStep ))
  3163. IPPAPI ( IppStatus, ippiCopy_16s_C4MR,
  3164. ( const Ipp16s* pSrc, int srcStep,
  3165. Ipp16s* pDst, int dstStep,IppiSize roiSize,
  3166. const Ipp8u* pMask, int maskStep ))
  3167. IPPAPI( IppStatus, ippiCopy_32f_C3C1R,
  3168. ( const Ipp32f* pSrc, int srcStep,
  3169. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3170. IPPAPI( IppStatus, ippiCopy_32f_C1C3R,
  3171. ( const Ipp32f* pSrc, int srcStep,
  3172. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3173. IPPAPI( IppStatus, ippiCopy_32f_C4C1R,
  3174. ( const Ipp32f* pSrc, int srcStep,
  3175. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3176. IPPAPI( IppStatus, ippiCopy_32f_C1C4R,
  3177. ( const Ipp32f* pSrc, int srcStep,
  3178. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3179. IPPAPI( IppStatus, ippiCopy_32f_AC4C3R,
  3180. ( const Ipp32f* pSrc, int srcStep,
  3181. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3182. IPPAPI( IppStatus, ippiCopy_32f_C3CR,
  3183. ( const Ipp32f* pSrc, int srcStep,
  3184. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3185. IPPAPI( IppStatus, ippiCopy_32f_C4CR,
  3186. ( const Ipp32f* pSrc, int srcStep,
  3187. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3188. IPPAPI ( IppStatus, ippiCopy_32f_C1R,
  3189. ( const Ipp32f* pSrc, int srcStep,
  3190. Ipp32f* pDst, int dstStep,IppiSize roiSize ))
  3191. IPPAPI ( IppStatus, ippiCopy_32f_C3R,
  3192. ( const Ipp32f* pSrc, int srcStep,
  3193. Ipp32f* pDst, int dstStep,IppiSize roiSize ))
  3194. IPPAPI ( IppStatus, ippiCopy_32f_C4R,
  3195. ( const Ipp32f* pSrc, int srcStep,
  3196. Ipp32f* pDst, int dstStep,IppiSize roiSize ))
  3197. IPPAPI ( IppStatus, ippiCopy_32f_C1MR,
  3198. ( const Ipp32f* pSrc, int srcStep,
  3199. Ipp32f* pDst, int dstStep,IppiSize roiSize,
  3200. const Ipp8u* pMask, int maskStep ))
  3201. IPPAPI ( IppStatus, ippiCopy_32f_C3MR,
  3202. ( const Ipp32f* pSrc, int srcStep,
  3203. Ipp32f* pDst, int dstStep,IppiSize roiSize,
  3204. const Ipp8u* pMask, int maskStep ))
  3205. IPPAPI ( IppStatus, ippiCopy_32f_C4MR,
  3206. ( const Ipp32f* pSrc, int srcStep,
  3207. Ipp32f* pDst, int dstStep,IppiSize roiSize,
  3208. const Ipp8u* pMask, int maskStep ))
  3209. IPPAPI ( IppStatus, ippiCopy_8u_C3P3R, ( const Ipp8u* pSrc, int srcStep,
  3210. Ipp8u* const pDst[3], int dstStep, IppiSize roiSize ))
  3211. IPPAPI ( IppStatus, ippiCopy_8u_P3C3R, (const Ipp8u* const pSrc[3],
  3212. int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3213. IPPAPI ( IppStatus, ippiCopy_8u_C4P4R, ( const Ipp8u* pSrc, int srcStep,
  3214. Ipp8u* const pDst[4], int dstStep, IppiSize roiSize ))
  3215. IPPAPI ( IppStatus, ippiCopy_8u_P4C4R, (const Ipp8u* const pSrc[4],
  3216. int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  3217. IPPAPI ( IppStatus, ippiCopy_16s_C3P3R, ( const Ipp16s* pSrc, int srcStep,
  3218. Ipp16s* const pDst[3], int dstStep, IppiSize roiSize ))
  3219. IPPAPI ( IppStatus, ippiCopy_16s_P3C3R, (const Ipp16s* const pSrc[3],
  3220. int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3221. IPPAPI ( IppStatus, ippiCopy_16s_C4P4R, ( const Ipp16s* pSrc, int srcStep,
  3222. Ipp16s* const pDst[4], int dstStep, IppiSize roiSize ))
  3223. IPPAPI ( IppStatus, ippiCopy_16s_P4C4R, (const Ipp16s* const pSrc[4],
  3224. int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize ))
  3225. IPPAPI ( IppStatus, ippiCopy_32f_C3P3R, ( const Ipp32f* pSrc, int srcStep,
  3226. Ipp32f* const pDst[3], int dstStep, IppiSize roiSize ))
  3227. IPPAPI ( IppStatus, ippiCopy_32f_P3C3R, (const Ipp32f* const pSrc[3],
  3228. int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3229. IPPAPI ( IppStatus, ippiCopy_32f_C4P4R, ( const Ipp32f* pSrc, int srcStep,
  3230. Ipp32f* const pDst[4], int dstStep, IppiSize roiSize ))
  3231. IPPAPI ( IppStatus, ippiCopy_32f_P4C4R, (const Ipp32f* const pSrc[4],
  3232. int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  3233. IPPAPI( IppStatus, ippiCopy_32s_C3C1R,
  3234. ( const Ipp32s* pSrc, int srcStep,
  3235. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3236. IPPAPI( IppStatus, ippiCopy_32s_C1C3R,
  3237. ( const Ipp32s* pSrc, int srcStep,
  3238. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3239. IPPAPI( IppStatus, ippiCopy_32s_C4C1R,
  3240. ( const Ipp32s* pSrc, int srcStep,
  3241. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3242. IPPAPI( IppStatus, ippiCopy_32s_C1C4R,
  3243. ( const Ipp32s* pSrc, int srcStep,
  3244. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3245. IPPAPI( IppStatus, ippiCopy_32s_C3CR,
  3246. ( const Ipp32s* pSrc, int srcStep,
  3247. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3248. IPPAPI( IppStatus, ippiCopy_32s_C4CR,
  3249. ( const Ipp32s* pSrc, int srcStep,
  3250. Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3251. IPPAPI ( IppStatus, ippiCopy_32s_C1R,
  3252. ( const Ipp32s* pSrc, int srcStep,
  3253. Ipp32s* pDst, int dstStep,IppiSize roiSize ))
  3254. IPPAPI ( IppStatus, ippiCopy_32s_C3R,
  3255. ( const Ipp32s* pSrc, int srcStep,
  3256. Ipp32s* pDst, int dstStep,IppiSize roiSize ))
  3257. IPPAPI ( IppStatus, ippiCopy_32s_C4R,
  3258. ( const Ipp32s* pSrc, int srcStep,
  3259. Ipp32s* pDst, int dstStep,IppiSize roiSize ))
  3260. IPPAPI ( IppStatus, ippiCopy_32s_C1MR,
  3261. ( const Ipp32s* pSrc, int srcStep,
  3262. Ipp32s* pDst, int dstStep,IppiSize roiSize,
  3263. const Ipp8u* pMask, int maskStep ))
  3264. IPPAPI ( IppStatus, ippiCopy_32s_C3MR,
  3265. ( const Ipp32s* pSrc, int srcStep,
  3266. Ipp32s* pDst, int dstStep,IppiSize roiSize,
  3267. const Ipp8u* pMask, int maskStep ))
  3268. IPPAPI ( IppStatus, ippiCopy_32s_C4MR,
  3269. ( const Ipp32s* pSrc, int srcStep,
  3270. Ipp32s* pDst, int dstStep,IppiSize roiSize,
  3271. const Ipp8u* pMask, int maskStep ))
  3272. IPPAPI ( IppStatus, ippiCopy_32s_C3P3R, ( const Ipp32s* pSrc, int srcStep,
  3273. Ipp32s* const pDst[3], int dstStep, IppiSize roiSize ))
  3274. IPPAPI ( IppStatus, ippiCopy_32s_P3C3R, (const Ipp32s* const pSrc[3],
  3275. int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3276. IPPAPI ( IppStatus, ippiCopy_32s_C4P4R, ( const Ipp32s* pSrc, int srcStep,
  3277. Ipp32s* const pDst[4], int dstStep, IppiSize roiSize ))
  3278. IPPAPI ( IppStatus, ippiCopy_32s_P4C4R, (const Ipp32s* const pSrc[4],
  3279. int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize ))
  3280. IPPAPI( IppStatus, ippiCopy_16u_C3C1R,
  3281. ( const Ipp16u* pSrc, int srcStep,
  3282. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3283. IPPAPI( IppStatus, ippiCopy_16u_C1C3R,
  3284. ( const Ipp16u* pSrc, int srcStep,
  3285. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3286. IPPAPI( IppStatus, ippiCopy_16u_C4C1R,
  3287. ( const Ipp16u* pSrc, int srcStep,
  3288. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3289. IPPAPI( IppStatus, ippiCopy_16u_C1C4R,
  3290. ( const Ipp16u* pSrc, int srcStep,
  3291. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3292. IPPAPI( IppStatus, ippiCopy_16u_C3CR,
  3293. ( const Ipp16u* pSrc, int srcStep,
  3294. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3295. IPPAPI( IppStatus, ippiCopy_16u_C4CR,
  3296. ( const Ipp16u* pSrc, int srcStep,
  3297. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3298. IPPAPI( IppStatus, ippiCopy_16u_AC4C3R,
  3299. ( const Ipp16u* pSrc, int srcStep,
  3300. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3301. IPPAPI ( IppStatus, ippiCopy_16u_C1R,
  3302. ( const Ipp16u* pSrc, int srcStep,
  3303. Ipp16u* pDst, int dstStep,IppiSize roiSize ))
  3304. IPPAPI ( IppStatus, ippiCopy_16u_C3R,
  3305. ( const Ipp16u* pSrc, int srcStep,
  3306. Ipp16u* pDst, int dstStep,IppiSize roiSize ))
  3307. IPPAPI ( IppStatus, ippiCopy_16u_C4R,
  3308. ( const Ipp16u* pSrc, int srcStep,
  3309. Ipp16u* pDst, int dstStep,IppiSize roiSize ))
  3310. IPPAPI ( IppStatus, ippiCopy_16u_C1MR,
  3311. ( const Ipp16u* pSrc, int srcStep,
  3312. Ipp16u* pDst, int dstStep,IppiSize roiSize,
  3313. const Ipp8u* pMask, int maskStep ))
  3314. IPPAPI ( IppStatus, ippiCopy_16u_C3MR,
  3315. ( const Ipp16u* pSrc, int srcStep,
  3316. Ipp16u* pDst, int dstStep,IppiSize roiSize,
  3317. const Ipp8u* pMask, int maskStep ))
  3318. IPPAPI ( IppStatus, ippiCopy_16u_C4MR,
  3319. ( const Ipp16u* pSrc, int srcStep,
  3320. Ipp16u* pDst, int dstStep,IppiSize roiSize,
  3321. const Ipp8u* pMask, int maskStep ))
  3322. IPPAPI ( IppStatus, ippiCopy_16u_C3P3R, ( const Ipp16u* pSrc, int srcStep,
  3323. Ipp16u* const pDst[3], int dstStep, IppiSize roiSize ))
  3324. IPPAPI ( IppStatus, ippiCopy_16u_P3C3R, (const Ipp16u* const pSrc[3],
  3325. int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3326. IPPAPI ( IppStatus, ippiCopy_16u_C4P4R, ( const Ipp16u* pSrc, int srcStep,
  3327. Ipp16u* const pDst[4], int dstStep, IppiSize roiSize ))
  3328. IPPAPI ( IppStatus, ippiCopy_16u_P4C4R, (const Ipp16u* const pSrc[4],
  3329. int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  3330. /* ////////////////////////////////////////////////////////////////////////////
  3331. // Name: ippiCopyReplicateBorder
  3332. //
  3333. // Purpose: Copies pixel values between two buffers and adds
  3334. // the replicated border pixels.
  3335. //
  3336. // Returns:
  3337. // ippStsNullPtrErr One of the pointers is NULL
  3338. // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value
  3339. // 2). topBorderHeight or leftBorderWidth is less than zero
  3340. // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth
  3341. // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight
  3342. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  3343. // ippStsNoErr OK
  3344. //
  3345. // Parameters:
  3346. // pSrc Pointer to the source image buffer
  3347. // srcStep Step in bytes through the source image
  3348. // pDst Pointer to the destination image buffer
  3349. // dstStep Step in bytes through the destination image
  3350. // scrRoiSize Size of the source ROI in pixels
  3351. // dstRoiSize Size of the destination ROI in pixels
  3352. // topBorderHeight Height of the top border in pixels
  3353. // leftBorderWidth Width of the left border in pixels
  3354. */
  3355. IPPAPI (IppStatus, ippiCopyReplicateBorder_8u_C1R,
  3356. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3357. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3358. int topBorderHeight, int leftBorderWidth ) )
  3359. IPPAPI (IppStatus, ippiCopyReplicateBorder_8u_C3R,
  3360. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3361. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3362. int topBorderHeight, int leftBorderWidth ) )
  3363. IPPAPI (IppStatus, ippiCopyReplicateBorder_8u_C4R,
  3364. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3365. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3366. int topBorderHeight, int leftBorderWidth ) )
  3367. IPPAPI (IppStatus, ippiCopyReplicateBorder_16s_C1R,
  3368. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3369. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3370. int topBorderHeight, int leftBorderWidth ) )
  3371. IPPAPI (IppStatus, ippiCopyReplicateBorder_16s_C3R,
  3372. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3373. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3374. int topBorderHeight, int leftBorderWidth ) )
  3375. IPPAPI (IppStatus, ippiCopyReplicateBorder_16s_C4R,
  3376. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3377. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3378. int topBorderHeight, int leftBorderWidth ) )
  3379. IPPAPI (IppStatus, ippiCopyReplicateBorder_32s_C1R,
  3380. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3381. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3382. int topBorderHeight, int leftBorderWidth ) )
  3383. IPPAPI (IppStatus, ippiCopyReplicateBorder_32s_C3R,
  3384. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3385. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3386. int topBorderHeight, int leftBorderWidth ) )
  3387. IPPAPI (IppStatus, ippiCopyReplicateBorder_32s_C4R,
  3388. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3389. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3390. int topBorderHeight, int leftBorderWidth ) )
  3391. IPPAPI ( IppStatus, ippiCopyReplicateBorder_8u_C1IR,
  3392. ( const Ipp8u* pSrc, int srcDstStep,
  3393. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3394. int topBorderHeight, int leftborderwidth ) )
  3395. IPPAPI ( IppStatus, ippiCopyReplicateBorder_8u_C3IR,
  3396. ( const Ipp8u* pSrc, int srcDstStep,
  3397. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3398. int topBorderHeight, int leftborderwidth ) )
  3399. IPPAPI ( IppStatus, ippiCopyReplicateBorder_8u_C4IR,
  3400. ( const Ipp8u* pSrc, int srcDstStep,
  3401. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3402. int topBorderHeight, int leftborderwidth ) )
  3403. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16s_C1IR,
  3404. ( const Ipp16s* pSrc, int srcDstStep,
  3405. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3406. int topBorderHeight, int leftborderwidth ) )
  3407. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16s_C3IR,
  3408. ( const Ipp16s* pSrc, int srcDstStep,
  3409. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3410. int topBorderHeight, int leftborderwidth ) )
  3411. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16s_C4IR,
  3412. ( const Ipp16s* pSrc, int srcDstStep,
  3413. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3414. int topBorderHeight, int leftborderwidth ) )
  3415. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32s_C1IR,
  3416. ( const Ipp32s* pSrc, int srcDstStep,
  3417. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3418. int topBorderHeight, int leftborderwidth ) )
  3419. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32s_C3IR,
  3420. ( const Ipp32s* pSrc, int srcDstStep,
  3421. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3422. int topBorderHeight, int leftborderwidth ) )
  3423. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32s_C4IR,
  3424. ( const Ipp32s* pSrc, int srcDstStep,
  3425. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3426. int topBorderHeight, int leftborderwidth ) )
  3427. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16u_C1IR,
  3428. ( const Ipp16u* pSrc, int srcDstStep,
  3429. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3430. int topBorderHeight, int leftborderwidth ) )
  3431. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16u_C3IR,
  3432. ( const Ipp16u* pSrc, int srcDstStep,
  3433. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3434. int topBorderHeight, int leftborderwidth ) )
  3435. IPPAPI ( IppStatus, ippiCopyReplicateBorder_16u_C4IR,
  3436. ( const Ipp16u* pSrc, int srcDstStep,
  3437. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3438. int topBorderHeight, int leftborderwidth ) )
  3439. IPPAPI (IppStatus, ippiCopyReplicateBorder_16u_C1R,
  3440. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3441. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3442. int topBorderHeight, int leftBorderWidth ) )
  3443. IPPAPI (IppStatus, ippiCopyReplicateBorder_16u_C3R,
  3444. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3445. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3446. int topBorderHeight, int leftBorderWidth ) )
  3447. IPPAPI (IppStatus, ippiCopyReplicateBorder_16u_C4R,
  3448. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3449. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3450. int topBorderHeight, int leftBorderWidth ) )
  3451. IPPAPI (IppStatus, ippiCopyReplicateBorder_32f_C1R,
  3452. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3453. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3454. int topBorderHeight, int leftBorderWidth ) )
  3455. IPPAPI (IppStatus, ippiCopyReplicateBorder_32f_C3R,
  3456. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3457. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3458. int topBorderHeight, int leftBorderWidth ) )
  3459. IPPAPI (IppStatus, ippiCopyReplicateBorder_32f_C4R,
  3460. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3461. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3462. int topBorderHeight, int leftBorderWidth ) )
  3463. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32f_C1IR,
  3464. ( const Ipp32f* pSrc, int srcDstStep,
  3465. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3466. int topBorderHeight, int leftborderwidth ) )
  3467. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32f_C3IR,
  3468. ( const Ipp32f* pSrc, int srcDstStep,
  3469. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3470. int topBorderHeight, int leftborderwidth ) )
  3471. IPPAPI ( IppStatus, ippiCopyReplicateBorder_32f_C4IR,
  3472. ( const Ipp32f* pSrc, int srcDstStep,
  3473. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3474. int topBorderHeight, int leftborderwidth ) )
  3475. /* ////////////////////////////////////////////////////////////////////////////
  3476. // Name: ippiCopyConstBorder
  3477. //
  3478. // Purpose: Copies pixel values between two buffers and adds
  3479. // the border pixels with constant value.
  3480. //
  3481. // Returns:
  3482. // ippStsNullPtrErr One of the pointers is NULL
  3483. // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value
  3484. // 2). topBorderHeight or leftBorderWidth is less than zero
  3485. // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth
  3486. // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight
  3487. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  3488. // ippStsNoErr OK
  3489. //
  3490. // Parameters:
  3491. // pSrc Pointer to the source image buffer
  3492. // srcStep Step in bytes through the source image
  3493. // pDst Pointer to the destination image buffer
  3494. // dstStep Step in bytes through the destination image
  3495. // srcRoiSize Size of the source ROI in pixels
  3496. // dstRoiSize Size of the destination ROI in pixels
  3497. // topBorderHeight Height of the top border in pixels
  3498. // leftBorderWidth Width of the left border in pixels
  3499. // value Constant value to assign to the border pixels
  3500. */
  3501. IPPAPI (IppStatus, ippiCopyConstBorder_8u_C1R,
  3502. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3503. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3504. int topBorderHeight, int leftBorderWidth,
  3505. Ipp8u value ) )
  3506. IPPAPI (IppStatus, ippiCopyConstBorder_8u_C3R,
  3507. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3508. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3509. int topBorderHeight, int leftBorderWidth,
  3510. const Ipp8u value[3] ) )
  3511. IPPAPI (IppStatus, ippiCopyConstBorder_8u_C4R,
  3512. ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  3513. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  3514. int topBorderHeight, int leftBorderWidth,
  3515. const Ipp8u value[4] ) )
  3516. IPPAPI (IppStatus, ippiCopyConstBorder_16s_C1R,
  3517. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3518. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3519. int topBorderHeight, int leftBorderWidth,
  3520. Ipp16s value ) )
  3521. IPPAPI (IppStatus, ippiCopyConstBorder_16s_C3R,
  3522. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3523. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3524. int topBorderHeight, int leftBorderWidth,
  3525. const Ipp16s value[3] ) )
  3526. IPPAPI (IppStatus, ippiCopyConstBorder_16s_C4R,
  3527. ( const Ipp16s* pSrc, int srcStep, IppiSize srcRoiSize,
  3528. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize,
  3529. int topBorderHeight, int leftBorderWidth,
  3530. const Ipp16s value[4] ) )
  3531. IPPAPI (IppStatus, ippiCopyConstBorder_32s_C1R,
  3532. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3533. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3534. int topBorderHeight, int leftBorderWidth,
  3535. Ipp32s value ) )
  3536. IPPAPI (IppStatus, ippiCopyConstBorder_32s_C3R,
  3537. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3538. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3539. int topBorderHeight, int leftBorderWidth,
  3540. const Ipp32s value[3] ) )
  3541. IPPAPI (IppStatus, ippiCopyConstBorder_32s_C4R,
  3542. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3543. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3544. int topBorderHeight, int leftBorderWidth,
  3545. const Ipp32s value[4] ) )
  3546. IPPAPI (IppStatus, ippiCopyConstBorder_16u_C1R,
  3547. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3548. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3549. int topBorderHeight, int leftBorderWidth,
  3550. Ipp16u value ) )
  3551. IPPAPI (IppStatus, ippiCopyConstBorder_16u_C3R,
  3552. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3553. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3554. int topBorderHeight, int leftBorderWidth,
  3555. const Ipp16u value[3] ) )
  3556. IPPAPI (IppStatus, ippiCopyConstBorder_16u_C4R,
  3557. ( const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  3558. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize,
  3559. int topBorderHeight, int leftBorderWidth,
  3560. const Ipp16u value[4] ) )
  3561. IPPAPI (IppStatus, ippiCopyConstBorder_32f_C1R,
  3562. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3563. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3564. int topBorderHeight, int leftBorderWidth,
  3565. Ipp32f value ) )
  3566. IPPAPI (IppStatus, ippiCopyConstBorder_32f_C3R,
  3567. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3568. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3569. int topBorderHeight, int leftBorderWidth,
  3570. const Ipp32f value[3] ) )
  3571. IPPAPI (IppStatus, ippiCopyConstBorder_32f_C4R,
  3572. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3573. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3574. int topBorderHeight, int leftBorderWidth,
  3575. const Ipp32f value[4] ) )
  3576. /* ////////////////////////////////////////////////////////////////////////////
  3577. // Name: ippiCopyWrapBorder
  3578. //
  3579. // Purpose: Copies pixel values between two buffers and adds the border pixels.
  3580. //
  3581. // Returns:
  3582. // ippStsNullPtrErr One of the pointers is NULL
  3583. // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value
  3584. // 2). topBorderHeight or leftBorderWidth is less than zero
  3585. // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth
  3586. // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight
  3587. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  3588. // ippStsNoErr OK
  3589. //
  3590. // Parameters:
  3591. // pSrc Pointer to the source image buffer
  3592. // srcStep Step in bytes through the source image
  3593. // pDst Pointer to the destination image buffer
  3594. // dstStep Step in bytes through the destination image
  3595. // scrRoiSize Size of the source ROI in pixels
  3596. // dstRoiSize Size of the destination ROI in pixels
  3597. // topBorderHeight Height of the top border in pixels
  3598. // leftBorderWidth Width of the left border in pixels
  3599. */
  3600. IPPAPI (IppStatus, ippiCopyWrapBorder_32s_C1R,
  3601. ( const Ipp32s* pSrc, int srcStep, IppiSize srcRoiSize,
  3602. Ipp32s* pDst, int dstStep, IppiSize dstRoiSize,
  3603. int topBorderHeight, int leftBorderWidth ) )
  3604. IPPAPI ( IppStatus, ippiCopyWrapBorder_32s_C1IR,
  3605. ( const Ipp32s* pSrc, int srcDstStep,
  3606. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3607. int topBorderHeight, int leftborderwidth ) )
  3608. IPPAPI (IppStatus, ippiCopyWrapBorder_32f_C1R,
  3609. ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  3610. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  3611. int topBorderHeight, int leftBorderWidth ) )
  3612. IPPAPI ( IppStatus, ippiCopyWrapBorder_32f_C1IR,
  3613. ( const Ipp32f* pSrc, int srcDstStep,
  3614. IppiSize srcRoiSize, IppiSize dstRoiSize,
  3615. int topBorderHeight, int leftborderwidth ) )
  3616. /* /////////////////////////////////////////////////////////////////////////////
  3617. // Name: ippiSet
  3618. //
  3619. // Purpose: Sets pixels in the image buffer to a constant value
  3620. //
  3621. // Returns:
  3622. // ippStsNullPtrErr One of pointers is NULL
  3623. // ippStsSizeErr roiSize has a field with negative or zero value
  3624. // ippStsNoErr OK
  3625. //
  3626. // Parameters:
  3627. // value Constant value assigned to each pixel in the image buffer
  3628. // pDst Pointer to the destination image buffer
  3629. // dstStep Step in bytes through the destination image buffer
  3630. // roiSize Size of the ROI
  3631. // pMask Pointer to the mask image buffer
  3632. // maskStep Step in bytes through the mask image buffer
  3633. */
  3634. IPPAPI ( IppStatus, ippiSet_8u_C1R,
  3635. ( Ipp8u value, Ipp8u* pDst, int dstStep,
  3636. IppiSize roiSize ))
  3637. IPPAPI ( IppStatus, ippiSet_8u_C3CR,
  3638. ( Ipp8u value, Ipp8u* pDst, int dstStep,
  3639. IppiSize roiSize ))
  3640. IPPAPI ( IppStatus, ippiSet_8u_C4CR,
  3641. ( Ipp8u value, Ipp8u* pDst, int dstStep,
  3642. IppiSize roiSize ))
  3643. IPPAPI ( IppStatus, ippiSet_8u_C3R,
  3644. ( const Ipp8u value[3], Ipp8u* pDst, int dstStep,
  3645. IppiSize roiSize ))
  3646. IPPAPI ( IppStatus, ippiSet_8u_C4R,
  3647. ( const Ipp8u value[4], Ipp8u* pDst, int dstStep,
  3648. IppiSize roiSize ))
  3649. IPPAPI ( IppStatus, ippiSet_8u_C1MR,
  3650. ( Ipp8u value, Ipp8u* pDst, int dstStep,
  3651. IppiSize roiSize,
  3652. const Ipp8u* pMask, int maskStep ))
  3653. IPPAPI ( IppStatus, ippiSet_8u_C3MR,
  3654. ( const Ipp8u value[3], Ipp8u* pDst, int dstStep,
  3655. IppiSize roiSize,
  3656. const Ipp8u* pMask, int maskStep ))
  3657. IPPAPI ( IppStatus, ippiSet_8u_C4MR,
  3658. ( const Ipp8u value[4], Ipp8u* pDst, int dstStep,
  3659. IppiSize roiSize,
  3660. const Ipp8u* pMask, int maskStep ))
  3661. IPPAPI ( IppStatus, ippiSet_16s_C1R,
  3662. ( Ipp16s value, Ipp16s* pDst, int dstStep,
  3663. IppiSize roiSize ))
  3664. IPPAPI ( IppStatus, ippiSet_16s_C3CR,
  3665. ( Ipp16s value, Ipp16s* pDst, int dstStep,
  3666. IppiSize roiSize ))
  3667. IPPAPI ( IppStatus, ippiSet_16s_C4CR,
  3668. ( Ipp16s value, Ipp16s* pDst, int dstStep,
  3669. IppiSize roiSize ))
  3670. IPPAPI ( IppStatus, ippiSet_16s_C3R,
  3671. ( const Ipp16s value[3], Ipp16s* pDst, int dstStep,
  3672. IppiSize roiSize ))
  3673. IPPAPI ( IppStatus, ippiSet_16s_C4R,
  3674. ( const Ipp16s value[4], Ipp16s* pDst, int dstStep,
  3675. IppiSize roiSize ))
  3676. IPPAPI ( IppStatus, ippiSet_16s_C1MR,
  3677. ( Ipp16s value, Ipp16s* pDst, int dstStep,
  3678. IppiSize roiSize,
  3679. const Ipp8u* pMask, int maskStep ))
  3680. IPPAPI ( IppStatus, ippiSet_16s_C3MR,
  3681. ( const Ipp16s value[3], Ipp16s* pDst, int dstStep,
  3682. IppiSize roiSize,
  3683. const Ipp8u* pMask, int maskStep ))
  3684. IPPAPI ( IppStatus, ippiSet_16s_C4MR,
  3685. ( const Ipp16s value[4], Ipp16s* pDst, int dstStep,
  3686. IppiSize roiSize,
  3687. const Ipp8u* pMask, int maskStep ))
  3688. IPPAPI ( IppStatus, ippiSet_32f_C1R,
  3689. ( Ipp32f value, Ipp32f* pDst, int dstStep,
  3690. IppiSize roiSize ))
  3691. IPPAPI ( IppStatus, ippiSet_32f_C3CR,
  3692. ( Ipp32f value, Ipp32f* pDst, int dstStep,
  3693. IppiSize roiSize ))
  3694. IPPAPI ( IppStatus, ippiSet_32f_C4CR,
  3695. ( Ipp32f value, Ipp32f* pDst, int dstStep,
  3696. IppiSize roiSize ))
  3697. IPPAPI ( IppStatus, ippiSet_32f_C3R,
  3698. ( const Ipp32f value[3], Ipp32f* pDst, int dstStep,
  3699. IppiSize roiSize ))
  3700. IPPAPI ( IppStatus, ippiSet_32f_C4R,
  3701. ( const Ipp32f value[4], Ipp32f* pDst, int dstStep,
  3702. IppiSize roiSize ))
  3703. IPPAPI ( IppStatus, ippiSet_32f_C1MR,
  3704. ( Ipp32f value, Ipp32f* pDst, int dstStep,
  3705. IppiSize roiSize,
  3706. const Ipp8u* pMask, int maskStep ))
  3707. IPPAPI ( IppStatus, ippiSet_32f_C3MR,
  3708. ( const Ipp32f value[3], Ipp32f* pDst, int dstStep,
  3709. IppiSize roiSize,
  3710. const Ipp8u* pMask, int maskStep ))
  3711. IPPAPI ( IppStatus, ippiSet_32f_C4MR,
  3712. ( const Ipp32f value[4], Ipp32f* pDst, int dstStep,
  3713. IppiSize roiSize,
  3714. const Ipp8u* pMask, int maskStep ))
  3715. IPPAPI ( IppStatus, ippiSet_32s_C1R,
  3716. ( Ipp32s value, Ipp32s* pDst, int dstStep,
  3717. IppiSize roiSize ))
  3718. IPPAPI ( IppStatus, ippiSet_32s_C3CR,
  3719. ( Ipp32s value, Ipp32s* pDst, int dstStep,
  3720. IppiSize roiSize ))
  3721. IPPAPI ( IppStatus, ippiSet_32s_C4CR,
  3722. ( Ipp32s value, Ipp32s* pDst, int dstStep,
  3723. IppiSize roiSize ))
  3724. IPPAPI ( IppStatus, ippiSet_32s_C3R,
  3725. ( const Ipp32s value[3], Ipp32s* pDst, int dstStep,
  3726. IppiSize roiSize ))
  3727. IPPAPI ( IppStatus, ippiSet_32s_C4R,
  3728. ( const Ipp32s value[4], Ipp32s* pDst, int dstStep,
  3729. IppiSize roiSize ))
  3730. IPPAPI ( IppStatus, ippiSet_32s_C1MR,
  3731. ( Ipp32s value, Ipp32s* pDst, int dstStep,
  3732. IppiSize roiSize,
  3733. const Ipp8u* pMask, int maskStep ))
  3734. IPPAPI ( IppStatus, ippiSet_32s_C3MR,
  3735. ( const Ipp32s value[3], Ipp32s* pDst, int dstStep,
  3736. IppiSize roiSize,
  3737. const Ipp8u* pMask, int maskStep ))
  3738. IPPAPI ( IppStatus, ippiSet_32s_C4MR,
  3739. ( const Ipp32s value[4], Ipp32s* pDst, int dstStep,
  3740. IppiSize roiSize,
  3741. const Ipp8u* pMask, int maskStep ))
  3742. IPPAPI ( IppStatus, ippiSet_16u_C1R,
  3743. ( Ipp16u value, Ipp16u* pDst, int dstStep,
  3744. IppiSize roiSize ))
  3745. IPPAPI ( IppStatus, ippiSet_16u_C3CR,
  3746. ( Ipp16u value, Ipp16u* pDst, int dstStep,
  3747. IppiSize roiSize ))
  3748. IPPAPI ( IppStatus, ippiSet_16u_C4CR,
  3749. ( Ipp16u value, Ipp16u* pDst, int dstStep,
  3750. IppiSize roiSize ))
  3751. IPPAPI ( IppStatus, ippiSet_16u_C3R,
  3752. ( const Ipp16u value[3], Ipp16u* pDst, int dstStep,
  3753. IppiSize roiSize ))
  3754. IPPAPI ( IppStatus, ippiSet_16u_C4R,
  3755. ( const Ipp16u value[4], Ipp16u* pDst, int dstStep,
  3756. IppiSize roiSize ))
  3757. IPPAPI ( IppStatus, ippiSet_16u_C1MR,
  3758. ( Ipp16u value, Ipp16u* pDst, int dstStep,
  3759. IppiSize roiSize,
  3760. const Ipp8u* pMask, int maskStep ))
  3761. IPPAPI ( IppStatus, ippiSet_16u_C3MR,
  3762. ( const Ipp16u value[3], Ipp16u* pDst, int dstStep,
  3763. IppiSize roiSize,
  3764. const Ipp8u* pMask, int maskStep ))
  3765. IPPAPI ( IppStatus, ippiSet_16u_C4MR,
  3766. ( const Ipp16u value[4], Ipp16u* pDst, int dstStep,
  3767. IppiSize roiSize,
  3768. const Ipp8u* pMask, int maskStep ))
  3769. /* //////////////////////////////////////////////////////////////////////////////////////
  3770. // Image Proximity Measures
  3771. ////////////////////////////////////////////////////////////////////////////////////// */
  3772. /* /////////////////////////////////////////////////////////////////////////////
  3773. // Names: ippiCrossCorrNormGetBufferSize
  3774. //
  3775. // Purpose: Computes the size (in bytes) of the work buffer for the ippiCrossCorrNorm functions.
  3776. //
  3777. // Parameters:
  3778. // srcRoiSize - Size of the source ROI in pixels.
  3779. // tplRoiSize - Size of the template ROI in pixels.
  3780. // algType - Bit-field mask for the algorithm type definition. Possible values are the results of composition of the IppAlgType, IppiROIShape, and IppiNormOp values.
  3781. // Usage example: algType=(ippiROIFull|ippAlgFFT|ippiNormalized); - full-shaped cross-correlation will be calculated
  3782. // using 2D FFT and normalization applied to result image.
  3783. // pBufferSize - Pointer to the size of the work buffer (in bytes).
  3784. // Return:
  3785. // ippStsNoErr - OK.
  3786. // ippStsSizeErr - Error when:
  3787. // srcRoiSize or tplRoiSize is negative, or equal to zero.
  3788. // The value of srcRoiSize is less than the corresponding value of the tplRoiSize.
  3789. // ippStsAlgTypeErr - Error when :
  3790. // The result of the bitwise AND operation between the algType and ippAlgMask differs from the ippAlgAuto, ippAlgDirect, or ippAlgFFT values.
  3791. // The result of the bitwise AND operation between the algType and ippiROIMask differs from the ippiROIFull, ippiROISame, or ippiROIValid values.
  3792. // The result of the bitwise AND operation between the algType and ippiNormMask differs from the ippiNormNone, ippiNormalized, or ippiNormCoefficients values.
  3793. // ippStsNullPtrErr - Error when the pBufferSize is NULL.
  3794. */
  3795. IPPAPI( IppStatus, ippiCrossCorrNormGetBufferSize, ( IppiSize srcRoiSize, IppiSize tplRoiSize, IppEnum algType, int* pBufferSize ))
  3796. /* ////////////////////////////////////////////////////////////////////////////
  3797. // Names: ippiCrossCorrNorm_32f_C1R
  3798. // ippiCrossCorrNorm_16u32f_C1R
  3799. // ippiCrossCorrNorm_8u32f_C1R
  3800. // ippiCrossCorrNorm_8u_C1RSfs
  3801. // Purpose: Computes normalized cross-correlation between an image and a template.
  3802. // The result image size depends on operation shape selected in algType mask as follows :
  3803. // (Wa+Wb-1)*(Ha+Hb-1) for ippiROIFull mask,
  3804. // (Wa)*(Ha) for ippiROISame mask,
  3805. // (Wa-Wb+1)*(Ha-Hb+1) for ippiROIValid mask,
  3806. // where Wa*Ha and Wb*Hb are the sizes of the image and template correspondingly.
  3807. // Support of normalization operations (set in the algType mask) is set by selecting the following masks:
  3808. // ippiNormNone - the cross-correlation without normalization.
  3809. // ippiNormalized - the normalized cross-correlation.
  3810. // ippiNormLevel - the normalized correlation coefficients.
  3811. // If the IppAlgMask value in algType is equal to ippAlgAuto, the optimal algorithm is selected automatically.
  3812. // For big data size, the function uses 2D FFT algorithm.
  3813. // Parameters:
  3814. // pSrc - Pointer to the source image ROI.
  3815. // srcStep - Distance, in bytes, between the starting points of consecutive lines in the source image.
  3816. // srcRoiSize - Size of the source ROI in pixels.
  3817. // pTpl - Pointer to the template image.
  3818. // tplStep - Distance, in bytes, between the starting points of consecutive lines in the template image.
  3819. // tplRoiSize - Size of the template ROI in pixels.
  3820. // pDst - Pointer to the destination image ROI.
  3821. // dstStep - Distance, in bytes, between the starting points of consecutive lines in the destination image.
  3822. // scaleFactor - Scale factor.
  3823. // algType - Bit-field mask for the algorithm type definition. Possible values are the results of composition of the IppAlgType, IppiROIShape, and IppiNormOp values.
  3824. // Usage example: algType=(ippiROIFull|ippAlgFFT|ippiNormNone); - full-shaped cross-correlation will be calculated using 2D FFT without result normalization.
  3825. // pBuffer - Pointer to the work buffer.
  3826. // Returns:
  3827. // ippStsNoErr OK.
  3828. // ippStsNullPtrErr Error when any of the specified pointers is NULL.
  3829. // ippStsStepErr Error when the value of srcStep, tplStep, or dstStep is negative, or equal to zero.
  3830. // ippStsSizeErr Error when :
  3831. // srcRoiSize or tplRoiSize is negative, or equal to zero.
  3832. // The value of srcRoiSize is less than the corresponding value of tplRoiSize.
  3833. // ippStsAlgTypeErr Error when :
  3834. // The result of the bitwise AND operation between the algType and ippAlgMask differs from the ippAlgAuto, ippAlgDirect, or ippAlgFFT values.
  3835. // The result of the bitwise AND operation between the algType and ippiROIMask differs from the ippiROIFull, ippiROISame, or ippiROIValid values.
  3836. // The result of the bitwise AND operation between the algType and ippiNormMask differs from the ippiNormNone, ippiNormalized, or ippiNormCoefficients values.
  3837. */
  3838. IPPAPI( IppStatus, ippiCrossCorrNorm_32f_C1R, ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize, const Ipp32f* pTpl, int tplStep, IppiSize tplRoiSize,
  3839. Ipp32f* pDst, int dstStep, IppEnum algType, Ipp8u* pBuffer ))
  3840. IPPAPI( IppStatus, ippiCrossCorrNorm_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize, const Ipp8u* pTpl, int tplStep, IppiSize tplRoiSize,
  3841. Ipp32f* pDst, int dstStep, IppEnum algType, Ipp8u* pBuffer ))
  3842. /* /////////////////////////////////////////////////////////////////////////////
  3843. // Definitions for DCT Functions
  3844. ///////////////////////////////////////////////////////////////////////////// */
  3845. /* /////////////////////////////////////////////////////////////////////////////
  3846. // DCT Context Functions
  3847. ///////////////////////////////////////////////////////////////////////////// */
  3848. /* /////////////////////////////////////////////////////////////////////////////
  3849. // Name: ippiDCTFwdInit, ippiDCTInvInit
  3850. // Purpose: Initializes the forward/inverse DCT context structure
  3851. // Parameters:
  3852. // pDCTSpec Pointer to the DCT context structure
  3853. // roiSize Size of the ROI
  3854. // pMemInit Pointer to the temporary work buffer
  3855. // Returns:
  3856. // ippStsNoErr No errors
  3857. // ippStsNullPtrErr pDCTSpec == NULL
  3858. // ippStsSizeErr roiSize has a field with zero or negative value
  3859. */
  3860. IPPAPI (IppStatus, ippiDCTFwdInit_32f,
  3861. ( IppiDCTFwdSpec_32f* pDCTSpec,
  3862. IppiSize roiSize, Ipp8u* pMemInit ))
  3863. IPPAPI (IppStatus, ippiDCTInvInit_32f,
  3864. ( IppiDCTInvSpec_32f* pDCTSpec,
  3865. IppiSize roiSize, Ipp8u* pMemInit ))
  3866. /* /////////////////////////////////////////////////////////////////////////////
  3867. // DCT Buffer Size
  3868. ///////////////////////////////////////////////////////////////////////////// */
  3869. /* /////////////////////////////////////////////////////////////////////////////
  3870. // Name: ippiDCTFwdGetSize, ippiDCTInvGetSize
  3871. // Purpose: Computes the size of the forward/inverse DCT context structure and the size
  3872. // of the required work buffer (in bytes)
  3873. // Parameters:
  3874. // roiSize Size of the ROI
  3875. // pSizeSpec Pointer to the size value of DCT context structure
  3876. // pSizeInit Pointer to the size value of the buffer for DCT initialization function
  3877. // pSizeBuf Pointer to the size value of the DCT external work buffer
  3878. // Returns:
  3879. // ippStsNoErr No errors
  3880. // ippStsNullPtrErr One of the specified pointers is NULL
  3881. // ippStsSizeErr roiSize has a field with zero or negative value
  3882. */
  3883. IPPAPI (IppStatus, ippiDCTFwdGetSize_32f,
  3884. ( IppiSize roiSize,
  3885. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  3886. IPPAPI (IppStatus, ippiDCTInvGetSize_32f,
  3887. ( IppiSize roiSize,
  3888. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  3889. /* /////////////////////////////////////////////////////////////////////////////
  3890. // DCT Transforms
  3891. ///////////////////////////////////////////////////////////////////////////// */
  3892. /* /////////////////////////////////////////////////////////////////////////////
  3893. // Name: ippiDCTFwd, ippiDCTInv
  3894. // Purpose: Performs forward or inverse DCT of an image
  3895. // Parameters:
  3896. // pDCTSpec Pointer to the DCT context structure
  3897. // pSrc Pointer to the source image
  3898. // srcStep Step through the source image
  3899. // pDst Pointer to the destination image
  3900. // dstStep Step through the destination image
  3901. // pBuffer Pointer to the work buffer
  3902. // Returns:
  3903. // ippStsNoErr No errors
  3904. // ippStsNullPtrErr One of the specified pointers with the exception of
  3905. pBuffer is NULL
  3906. // ippStsStepErr srcStep or dstStep value is zero or negative
  3907. // ippStsContextMatchErr Invalid context structure
  3908. // ippStsMemAllocErr Memory allocation error
  3909. */
  3910. IPPAPI (IppStatus, ippiDCTFwd_32f_C1R,
  3911. ( const Ipp32f* pSrc, int srcStep,
  3912. Ipp32f* pDst, int dstStep,
  3913. const IppiDCTFwdSpec_32f* pDCTSpec,
  3914. Ipp8u* pBuffer ))
  3915. IPPAPI (IppStatus, ippiDCTInv_32f_C1R,
  3916. ( const Ipp32f* pSrc, int srcStep,
  3917. Ipp32f* pDst, int dstStep,
  3918. const IppiDCTInvSpec_32f* pDCTSpec,
  3919. Ipp8u* pBuffer ))
  3920. /* /////////////////////////////////////////////////////////////////////////////
  3921. // DFT Transforms
  3922. ///////////////////////////////////////////////////////////////////////////// */
  3923. /* /////////////////////////////////////////////////////////////////////////////
  3924. // Name: ippiDFTFwd, ippiDFTInv
  3925. // Purpose: Performs forward or inverse DFT of an image
  3926. // Parameters:
  3927. // pDFTSpec Pointer to the DFT context structure
  3928. // pSrc Pointer to source image
  3929. // srcStep Step through the source image
  3930. // pDst Pointer to the destination image
  3931. // dstStep Step through the destination image
  3932. // pSrcDst Pointer to the source/destination image (in-place)
  3933. // srcDstStep Step through the source/destination image (in-place)
  3934. // pBuffer Pointer to the external work buffer
  3935. // Returns:
  3936. // ippStsNoErr No errors
  3937. // ippStsNullPtrErr One of the specified pointers with the exception of
  3938. pBuffer is NULL
  3939. // ippStsStepErr srcStep or dstStep value is zero or negative
  3940. // ippStsContextMatchErr Invalid context structure
  3941. // ippStsMemAllocErr Memory allocation error
  3942. */
  3943. IPPAPI (IppStatus, ippiDFTFwd_CToC_32fc_C1R,
  3944. ( const Ipp32fc* pSrc, int srcStep,
  3945. Ipp32fc* pDst, int dstStep,
  3946. const IppiDFTSpec_C_32fc* pDFTSpec,
  3947. Ipp8u* pBuffer ))
  3948. IPPAPI (IppStatus, ippiDFTFwd_RToPack_32f_C1R,
  3949. ( const Ipp32f* pSrc, int srcStep,
  3950. Ipp32f* pDst, int dstStep,
  3951. const IppiDFTSpec_R_32f* pDFTSpec,
  3952. Ipp8u* pBuffer ))
  3953. IPPAPI (IppStatus, ippiDFTInv_CToC_32fc_C1R,
  3954. ( const Ipp32fc* pSrc, int srcStep,
  3955. Ipp32fc* pDst, int dstStep,
  3956. const IppiDFTSpec_C_32fc* pDFTSpec,
  3957. Ipp8u* pBuffer ))
  3958. IPPAPI (IppStatus, ippiDFTInv_PackToR_32f_C1R,
  3959. ( const Ipp32f* pSrc, int srcStep,
  3960. Ipp32f* pDst, int dstStep,
  3961. const IppiDFTSpec_R_32f* pDFTSpec,
  3962. Ipp8u* pBuffer ))
  3963. /* /////////////////////////////////////////////////////////////////////////////
  3964. // Name: ippiDFTGetSize
  3965. // Purpose: Computes the size of the DFT context structure and the size
  3966. of the required work buffer (in bytes)
  3967. // Parameters:
  3968. // roiSize Size of the ROI
  3969. // flag Flag to choose the results normalization factors
  3970. // hint Option to select the algorithmic implementation of the transform
  3971. // function
  3972. // pSizeSpec Pointer to the size value of DFT specification structure
  3973. // pSizeInit Pointer to the size value of the buffer for DFT initialization function
  3974. // pSizeBuf Pointer to the size value of the DFT external work buffer
  3975. // Return:
  3976. // ippStsNoErr No errors
  3977. // ippStsNullPtrErr One of the specified pointers is NULL
  3978. // ippStsFftOrderErr Invalid roiSize
  3979. // ippStsSizeErr roiSize has a field with zero or negative value
  3980. // ippStsFFTFlagErr Incorrect normalization flag value
  3981. */
  3982. IPPAPI (IppStatus, ippiDFTGetSize_C_32fc,
  3983. ( IppiSize roiSize, int flag, IppHintAlgorithm hint,
  3984. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  3985. IPPAPI (IppStatus, ippiDFTGetSize_R_32f,
  3986. ( IppiSize roiSize, int flag, IppHintAlgorithm hint,
  3987. int* pSizeSpec, int* pSizeInit, int* pSizeBuf ))
  3988. /* /////////////////////////////////////////////////////////////////////////////
  3989. // DFT Context Functions
  3990. ///////////////////////////////////////////////////////////////////////////// */
  3991. /* /////////////////////////////////////////////////////////////////////////////
  3992. // Name: ippiDFTInit
  3993. // Purpose: Initializes the DFT context structure
  3994. // Parameters:
  3995. // roiSize Size of the ROI
  3996. // flag Flag to choose the results normalization factors
  3997. // hint Option to select the algorithmic implementation of the transform
  3998. // function
  3999. // pDFTSpec Double pointer to the DFT context structure
  4000. // pMemInit Pointer to initialization buffer
  4001. // Returns:
  4002. // ippStsNoErr No errors
  4003. // ippStsNullPtrErr One of the specified pointers is NULL
  4004. // ippStsFftOrderErr Invalid roiSize
  4005. // ippStsSizeErr roiSize has a field with zero or negative value
  4006. // ippStsFFTFlagErr Incorrect normalization flag value
  4007. */
  4008. IPPAPI (IppStatus, ippiDFTInit_C_32fc,
  4009. ( IppiSize roiSize, int flag, IppHintAlgorithm hint,
  4010. IppiDFTSpec_C_32fc* pDFTSpec, Ipp8u* pMemInit ))
  4011. IPPAPI (IppStatus, ippiDFTInit_R_32f,
  4012. ( IppiSize roiSize, int flag, IppHintAlgorithm hint,
  4013. IppiDFTSpec_R_32f* pDFTSpec, Ipp8u* pMemInit ))
  4014. /* ///////////////////////////////////////////////////////////////////////////////////////
  4015. // Name: ippiAddC_32f_C1IR, ippiAddC_32f_C3IR, ippiAddC_32f_C4IR, ippiAddC_32f_AC4IR,
  4016. // ippiSubC_32f_C1IR, ippiSubC_32f_C3IR, ippiSubC_32f_C4IR, ippiSubC_32f_AC4IR,
  4017. // ippiMulC_32f_C1IR, ippiMulC_32f_C3IR, ippiMulC_32f_C4IR, ippiMulC_32f_AC4IR
  4018. //
  4019. // Purpose: Adds, subtracts, or multiplies pixel values of an image
  4020. // and a constant, and places the results in the same image.
  4021. //
  4022. // Returns:
  4023. // ippStsNoErr OK
  4024. // ippStsNullPtrErr Pointer is NULL
  4025. // ippStsSizeErr Width or height of an image is less than or equal to zero
  4026. //
  4027. // Parameters:
  4028. // value The constant value for the specified operation
  4029. // pSrcDst Pointer to the image
  4030. // srcDstStep Step through the image
  4031. // roiSize Size of the ROI
  4032. */
  4033. IPPAPI(IppStatus, ippiMulC_32f_C1IR, (Ipp32f value, Ipp32f* pSrcDst, int srcDstStep,
  4034. IppiSize roiSize))
  4035. /* //////////////////////////////////////////////////////////////////////////////////////////////
  4036. // Name: ippiAddC_8u_C1IRSfs, ippiAddC_8u_C3IRSfs, ippiAddC_8u_C4IRSfs, ippiAddC_8u_AC4IRSfs,
  4037. // ippiAddC_16s_C1IRSfs, ippiAddC_16s_C3IRSfs, ippiAddC_16s_C4IRSfs, ippiAddC_16s_AC4IRSfs,
  4038. // ippiAddC_16u_C1IRSfs, ippiAddC_16u_C3IRSfs, ippiAddC_16u_C4IRSfs, ippiAddC_16u_AC4IRSfs,
  4039. // ippiSubC_8u_C1IRSfs, ippiSubC_8u_C3IRSfs, ippiSubC_8u_C4IRSfs, ippiSubC_8u_AC4IRSfs,
  4040. // ippiSubC_16s_C1IRSfs, ippiSubC_16s_C3IRSfs, ippiSubC_16s_C4IRSfs, ippiSubC_16s_AC4IRSfs,
  4041. // ippiSubC_16u_C1IRSfs, ippiSubC_16u_C3IRSfs, ippiSubC_16u_C4IRSfs, ippiSubC_16u_AC4IRSfs,
  4042. // ippiMulC_8u_C1IRSfs, ippiMulC_8u_C3IRSfs, ippiMulC_8u_C4IRSfs, ippiMulC_8u_AC4IRSfs,
  4043. // ippiMulC_16s_C1IRSfs, ippiMulC_16s_C3IRSfs, ippiMulC_16s_C4IRSfs, ippiMulC_16s_AC4IRSfs
  4044. // ippiMulC_16u_C1IRSfs, ippiMulC_16u_C3IRSfs, ippiMulC_16u_C4IRSfs, ippiMulC_16u_AC4IRSfs
  4045. //
  4046. // Purpose: Adds, subtracts, or multiplies pixel values of an image and a constant
  4047. // and places the scaled results in the same image.
  4048. //
  4049. // Returns:
  4050. // ippStsNoErr OK
  4051. // ippStsNullPtrErr Pointer is NULL
  4052. // ippStsSizeErr Width or height of an image is less than or equal to zero
  4053. //
  4054. // Parameters:
  4055. // value Constant value (constant vector for multi-channel images)
  4056. // pSrcDst Pointer to the image
  4057. // srcDstStep Step through the image
  4058. // roiSize Size of the ROI
  4059. // scaleFactor Scale factor
  4060. */
  4061. IPPAPI(IppStatus, ippiMulC_16s_C1IRSfs, (Ipp16s value, Ipp16s* pSrcDst, int srcDstStep,
  4062. IppiSize roiSize, int scaleFactor))
  4063. /* /////////////////////////////////////////////////////////////////////////////
  4064. // Names: ippiSqrDistanceNormGetBufferSize
  4065. //
  4066. // Purpose: Computes the size of the work buffer for the ippiSqrDistanceNorm functions.
  4067. //
  4068. // Parameters:
  4069. // srcRoiSize - Size of the source ROI, in pixels.
  4070. // tplRoiSize - Size of the template ROI, in pixels.
  4071. // algType - Bit-field mask for the algorithm type definition. Possible values are the results of composition of the IppAlgType, IppiROIShape, and IppiNormOp values.
  4072. // Usage example: algType=(ippiROIFull|ippAlgFFT|ippiNormalized); - result image will be calculated for full-shaped ROI
  4073. // using 2D FFT and normalization applied.
  4074. // pBufferSize - Pointer where to store the calculated buffer size (in bytes)
  4075. // Return:
  4076. // ippStsNoErr - Ok.
  4077. // ippStsSizeErr - Error when :
  4078. // srcRoiSize or tplRoiSize is negative, or equal to zero.
  4079. // The value of srcRoiSize is less than the corresponding value of tplRoiSize.
  4080. // ippStsAlgTypeErr - Error when :
  4081. // The result of the bitwise AND operation between the algType and ippAlgMask differs from the ippAlgAuto, ippAlgDirect, or ippAlgFFT values.
  4082. // The result of the bitwise AND operation between the algType and ippiROIMask differs from the ippiROIFull, ippiROISame, or ippiROIValid values.
  4083. // The result of the bitwise AND operation between the algType and ippiNormMask differs from the ippiNormNone or ippiNormalized values.
  4084. // ippStsNullPtrErr - Error when the pBufferSize is NULL.
  4085. */
  4086. IPPAPI( IppStatus, ippiSqrDistanceNormGetBufferSize, ( IppiSize srcRoiSize, IppiSize tplRoiSize, IppEnum algType, int* pBufferSize ))
  4087. /* ////////////////////////////////////////////////////////////////////////////
  4088. // Names: ippiSqrDistanceNorm_32f_C1R
  4089. // ippiSqrDistanceNorm_16u32f_C1R
  4090. // ippiSqrDistanceNorm_8u32f_C1R
  4091. // ippiSqrDistanceNorm_8u_C1RSfs
  4092. // Purpose: Computes Euclidean distance between an image and a template.
  4093. // The result image size depends on operation shape selected in algType mask as follows :
  4094. // (Wa+Wb-1)*(Ha+Hb-1) for ippiROIFull mask,
  4095. // (Wa)*(Ha) for ippiROISame mask,
  4096. // (Wa-Wb+1)*(Ha-Hb+1) for ippiROIValid mask,
  4097. // where Wa*Ha and Wb*Hb are the sizes of the image and template , respectively.
  4098. // Support of normalization operations (set the algType mask) :
  4099. // ippiNormNone - the squared Euclidean distances.
  4100. // ippiNormalized - the normalized squared Euclidean distances.
  4101. // If the IppAlgMask value in algType is equal to ippAlgAuto, the optimal algorithm is selected
  4102. // automatically. For big data size, the function uses 2D FFT algorithm.
  4103. // Parameters:
  4104. // pSrc - Pointer to the source image ROI.
  4105. // srcStep - Distance, in bytes, between the starting points of consecutive lines in the source image.
  4106. // srcRoiSize - Size of the source ROI, in pixels.
  4107. // pTpl - Pointer to the template image.
  4108. // tplStep - Distance, in bytes, between the starting points of consecutive lines in the template image.
  4109. // tplRoiSize - Size of the template ROI, in pixels.
  4110. // pDst - Pointer to the destination image ROI.
  4111. // dstStep - Distance, in bytes, between the starting points of consecutive lines in the destination image.
  4112. // scaleFactor - Scale factor.
  4113. // algType - Bit-field mask for the algorithm type definition. Possible values are the results of composition of the IppAlgType, IppiROIShape, and IppiNormOp values.
  4114. // Usage example: algType=(ippiROIFull|ippiNormNone|ippAlgFFT); - result will be calculated for full-shaped ROI using 2D FFT without normalization.
  4115. // pBuffer - Pointer to the buffer for internal calculation.
  4116. // Returns:
  4117. // ippStsNoErr OK.
  4118. // ippStsNullPtrErr Error when any of the specified pointers is NULL.
  4119. // ippStsStepErr Error when the value of srcStep, tplStep, or dstStep is negative, or equal to zero.
  4120. // ippStsSizeErr Error when :
  4121. // srcRoiSize or tplRoiSize is negative, or equal to zero.
  4122. // The value of srcRoiSize is less than the corresponding value of the tplRoiSize.
  4123. // ippStsAlgTypeErr Error when :
  4124. // The result of the bitwise AND operation between the algType and ippAlgMask differs from the ippAlgAuto, ippAlgDirect, or ippAlgFFT values.
  4125. // The result of the bitwise AND operation between the algType and ippiROIMask differs from the ippiROIFull, ippiROISame, or ippiROIValid values.
  4126. // The result of the bitwise AND operation between the algType and ippiNormMask differs from the ippiNormNone or ippiNormalized values.
  4127. */
  4128. IPPAPI( IppStatus, ippiSqrDistanceNorm_32f_C1R, ( const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize, const Ipp32f* pTpl, int tplStep, IppiSize tplRoiSize,
  4129. Ipp32f* pDst, int dstStep, IppEnum algType, Ipp8u* pBuffer ))
  4130. IPPAPI( IppStatus, ippiSqrDistanceNorm_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize, const Ipp8u* pTpl, int tplStep, IppiSize tplRoiSize,
  4131. Ipp32f* pDst, int dstStep, IppEnum algType, Ipp8u* pBuffer ))
  4132. /* /////////////////////////////////////////////////////////////////////////////
  4133. // Resize Transform Functions
  4134. ///////////////////////////////////////////////////////////////////////////// */
  4135. /* /////////////////////////////////////////////////////////////////////////////
  4136. // Name: ippiResizeGetSize
  4137. // Purpose: Computes the size of Spec structure and temporal buffer for Resize transform
  4138. //
  4139. // Parameters:
  4140. // srcSize Size of the input image (in pixels)
  4141. // dstSize Size of the output image (in pixels)
  4142. // interpolation Interpolation method
  4143. // antialiasing Supported values: 1- resizing with antialiasing, 0 - resizing without antialiasing
  4144. // pSpecSize Pointer to the size (in bytes) of the Spec structure
  4145. // pInitBufSize Pointer to the size (in bytes) of the temporal buffer
  4146. //
  4147. // Return Values:
  4148. // ippStsNoErr Indicates no error
  4149. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  4150. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  4151. // ippStsSizeErr Indicates an error in the following cases:
  4152. // - if the source image size is less than a filter size of the chosen
  4153. // interpolation method (except ippSuper),
  4154. // - if one of the specified dimensions of the source image is less than
  4155. // the corresponding dimension of the destination image (for ippSuper method only),
  4156. // - if width or height of the source or destination image is negative,
  4157. // - if one of the calculated sizes exceeds maximum 32 bit signed integer
  4158. // positive value (the size of the one of the processed images is too large).
  4159. // - if width or height of the source or destination image is negative.
  4160. // ippStsInterpolationErr Indicates an error if interpolation has an illegal value
  4161. // ippStsNoAntialiasing Indicates a warning if specified interpolation does not support antialiasing
  4162. // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported
  4163. //
  4164. // Notes:
  4165. // 1. Supported interpolation methods are ippNearest, ippLinear, ippCubic, ippLanczos and ippSuper.
  4166. // 2. If antialiasing value is equal to 1, use the ippResizeAntialiasing<Filter>Init functions, otherwise, use ippResize<Filter>Init
  4167. // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1,
  4168. // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4.
  4169. */
  4170. IPPAPI (IppStatus, ippiResizeGetSize_8u, (
  4171. IppiSize srcSize, IppiSize dstSize,
  4172. IppiInterpolationType interpolation, Ipp32u antialiasing,
  4173. int* pSpecSize, int* pInitBufSize))
  4174. IPPAPI (IppStatus, ippiResizeGetSize_16u, (
  4175. IppiSize srcSize, IppiSize dstSize,
  4176. IppiInterpolationType interpolation, Ipp32u antialiasing,
  4177. int* pSpecSize, int* pInitBufSize))
  4178. IPPAPI (IppStatus, ippiResizeGetSize_16s, (
  4179. IppiSize srcSize, IppiSize dstSize,
  4180. IppiInterpolationType interpolation, Ipp32u antialiasing,
  4181. int* pSpecSize, Ipp32s* pInitBufSize))
  4182. IPPAPI (IppStatus, ippiResizeGetSize_32f, (
  4183. IppiSize srcSize, IppiSize dstSize,
  4184. IppiInterpolationType interpolation, Ipp32u antialiasing,
  4185. int* pSpecSize, int* pInitBufSize))
  4186. IPPAPI (IppStatus, ippiResizeGetSize_64f, (
  4187. IppiSize srcSize, IppiSize dstSize,
  4188. IppiInterpolationType interpolation, Ipp32u antialiasing,
  4189. int* pSpecSize, int* pInitBufSize))
  4190. /* /////////////////////////////////////////////////////////////////////////////
  4191. // Name: ippiResizeGetBufferSize
  4192. // Purpose: Computes the size of external buffer for Resize transform
  4193. //
  4194. // Parameters:
  4195. // pSpec Pointer to the Spec structure for resize filter
  4196. // dstSize Size of the output image (in pixels)
  4197. // numChannels Number of channels, possible values are 1 or 3 or 4
  4198. // pBufSize Pointer to the size (in bytes) of the external buffer
  4199. //
  4200. // Return Values:
  4201. // ippStsNoErr Indicates no error
  4202. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  4203. // ippStsNoOperation Indicates a warning if width or height of output image is zero
  4204. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  4205. // ippStsNumChannelErr Indicates an error if numChannels has illegal value
  4206. // ippStsSizeErr Indicates an error condition in the following cases:
  4207. // - if width or height of the source image is negative,
  4208. // - if the calculated buffer size exceeds maximum 32 bit signed integer
  4209. // positive value (the processed image ROIs are too large ).
  4210. // ippStsSizeWrn Indicates a warning if the destination image size is more than
  4211. // the destination image origin size
  4212. */
  4213. IPPAPI (IppStatus, ippiResizeGetBufferSize_8u, (
  4214. IppiResizeSpec_32f* pSpec,
  4215. IppiSize dstSize, Ipp32u numChannels,
  4216. int* pBufSize))
  4217. IPPAPI (IppStatus, ippiResizeGetBufferSize_16u, (
  4218. IppiResizeSpec_32f* pSpec,
  4219. IppiSize dstSize, Ipp32u numChannels,
  4220. int* pBufSize))
  4221. IPPAPI (IppStatus, ippiResizeGetBufferSize_16s, (
  4222. IppiResizeSpec_32f* pSpec,
  4223. IppiSize dstSize, Ipp32u numChannels,
  4224. int* pBufSize))
  4225. IPPAPI (IppStatus, ippiResizeGetBufferSize_32f, (
  4226. IppiResizeSpec_32f* pSpec,
  4227. IppiSize dstSize, Ipp32u numChannels,
  4228. int* pBufSize))
  4229. IPPAPI (IppStatus, ippiResizeGetBufferSize_64f, (
  4230. IppiResizeSpec_64f* pSpec,
  4231. IppiSize dstSize, Ipp32u numChannels,
  4232. int* pBufSize))
  4233. /* /////////////////////////////////////////////////////////////////////////////
  4234. // Name: ippiResizeGetSrcOffset
  4235. // Purpose: Computes the offset of input image for Resize transform by tile processing
  4236. //
  4237. // Parameters:
  4238. // pSpec Pointer to the Spec structure for resize filter
  4239. // dstOffset Offset of the tiled destination image respective
  4240. // to the destination image origin
  4241. // srcOffset Pointer to the offset of input image
  4242. //
  4243. // Return Values:
  4244. // ippStsNoErr Indicates no error
  4245. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  4246. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  4247. // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the
  4248. // destination image origin
  4249. */
  4250. IPPAPI (IppStatus, ippiResizeGetSrcOffset_8u, (
  4251. IppiResizeSpec_32f* pSpec,
  4252. IppiPoint dstOffset, IppiPoint* srcOffset))
  4253. IPPAPI (IppStatus, ippiResizeGetSrcOffset_16u, (
  4254. IppiResizeSpec_32f* pSpec,
  4255. IppiPoint dstOffset, IppiPoint* srcOffset))
  4256. IPPAPI (IppStatus, ippiResizeGetSrcOffset_16s, (
  4257. IppiResizeSpec_32f* pSpec,
  4258. IppiPoint dstOffset, IppiPoint* srcOffset))
  4259. IPPAPI (IppStatus, ippiResizeGetSrcOffset_32f, (
  4260. IppiResizeSpec_32f* pSpec,
  4261. IppiPoint dstOffset, IppiPoint* srcOffset))
  4262. IPPAPI (IppStatus, ippiResizeGetSrcOffset_64f, (
  4263. IppiResizeSpec_64f* pSpec,
  4264. IppiPoint dstOffset, IppiPoint* srcOffset))
  4265. /* /////////////////////////////////////////////////////////////////////////////
  4266. // Name: ippiResizeNearestInit
  4267. // ippiResizeLinearInit
  4268. // ippiResizeCubicInit
  4269. // ippiResizeLanczosInit
  4270. // ippiResizeSuperInit
  4271. //
  4272. // Purpose: Initializes the Spec structure for the Resize transform
  4273. // by different interpolation methods
  4274. //
  4275. // Parameters:
  4276. // srcSize Size of the input image (in pixels)
  4277. // dstSize Size of the output image (in pixels)
  4278. // valueB The first parameter (B) for specifying Cubic filters
  4279. // valueC The second parameter (C) for specifying Cubic filters
  4280. // numLobes The parameter for specifying Lanczos (2 or 3) or Hahn (3 or 4) filters
  4281. // pInitBuf Pointer to the temporal buffer for several filter initialization
  4282. // pSpec Pointer to the Spec structure for resize filter
  4283. //
  4284. // Return Values:
  4285. // ippStsNoErr Indicates no error
  4286. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  4287. // ippStsNoOperation Indicates a warning if width or height of any image is zero
  4288. // ippStsSizeErr Indicates an error in the following cases:
  4289. // - if width or height of the source or destination image is negative,
  4290. // - if the source image size is less than a filter size of the chosen
  4291. // interpolation method (except ippiResizeSuperInit).
  4292. // - if one of the specified dimensions of the source image is less than
  4293. // the corresponding dimension of the destination image
  4294. // (for ippiResizeSuperInit only).
  4295. // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported.
  4296. //
  4297. // Notes/References:
  4298. // 1. The equation shows the family of cubic filters:
  4299. // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1
  4300. // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C)) / 6 for 1 <= |x| < 2
  4301. // 0 elsewhere
  4302. // Some values of (B,C) correspond to known cubic splines: Catmull-Rom (B=0,C=0.5), B-Spline (B=1,C=0) and other.
  4303. // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics"
  4304. // http://www.mentallandscape.com/Papers_siggraph88.pdf
  4305. //
  4306. // 2. Hahn filter does not supported now.
  4307. // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1,
  4308. // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4, 3-lobed Lanczos 6x6.
  4309. */
  4310. IPPAPI (IppStatus, ippiResizeLinearInit_8u, (
  4311. IppiSize srcSize, IppiSize dstSize,
  4312. IppiResizeSpec_32f* pSpec))
  4313. IPPAPI (IppStatus, ippiResizeLinearInit_16u, (
  4314. IppiSize srcSize, IppiSize dstSize,
  4315. IppiResizeSpec_32f* pSpec))
  4316. IPPAPI (IppStatus, ippiResizeLinearInit_16s, (
  4317. IppiSize srcSize, IppiSize dstSize,
  4318. IppiResizeSpec_32f* pSpec))
  4319. IPPAPI (IppStatus, ippiResizeLinearInit_32f, (
  4320. IppiSize srcSize, IppiSize dstSize,
  4321. IppiResizeSpec_32f* pSpec))
  4322. IPPAPI (IppStatus, ippiResizeLinearInit_64f, (
  4323. IppiSize srcSize, IppiSize dstSize,
  4324. IppiResizeSpec_64f* pSpec))
  4325. IPPAPI (IppStatus, ippiResizeCubicInit_8u, (
  4326. IppiSize srcSize, IppiSize dstSize, Ipp32f valueB, Ipp32f valueC,
  4327. IppiResizeSpec_32f* pSpec, Ipp8u* pInitBuf))
  4328. IPPAPI (IppStatus, ippiResizeCubicInit_16u, (
  4329. IppiSize srcSize, IppiSize dstSize, Ipp32f valueB, Ipp32f valueC,
  4330. IppiResizeSpec_32f* pSpec, Ipp8u* pInitBuf))
  4331. IPPAPI (IppStatus, ippiResizeCubicInit_16s, (
  4332. IppiSize srcSize, IppiSize dstSize, Ipp32f valueB, Ipp32f valueC,
  4333. IppiResizeSpec_32f* pSpec, Ipp8u* pInitBuf))
  4334. IPPAPI (IppStatus, ippiResizeCubicInit_32f, (
  4335. IppiSize srcSize, IppiSize dstSize, Ipp32f valueB, Ipp32f valueC,
  4336. IppiResizeSpec_32f* pSpec, Ipp8u* pInitBuf))
  4337. /* /////////////////////////////////////////////////////////////////////////////
  4338. // Name: ippiResizeNearest
  4339. // ippiResizeLinear
  4340. // ippiResizeCubic
  4341. // ippiResizeLanczos
  4342. // ippiResizeSuper
  4343. //
  4344. // Purpose: Changes an image size by different interpolation methods
  4345. //
  4346. // Parameters:
  4347. // pSrc Pointer to the source image
  4348. // srcStep Distance (in bytes) between of consecutive lines in the source image
  4349. // pDst Pointer to the destination image
  4350. // dstStep Distance (in bytes) between of consecutive lines in the destination image
  4351. // dstOffset Offset of tiled image respectively destination image origin
  4352. // dstSize Size of the destination image (in pixels)
  4353. // border Type of the border
  4354. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  4355. // pSpec Pointer to the Spec structure for resize filter
  4356. // pBuffer Pointer to the work buffer
  4357. //
  4358. // Return Values:
  4359. // ippStsNoErr Indicates no error
  4360. // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL
  4361. // ippStsNoOperation Indicates a warning if width or height of output image is zero
  4362. // ippStsBorderErr Indicates an error if border type has an illegal value
  4363. // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed
  4364. // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported
  4365. // ippStsSizeErr Indicates an error if width or height of the destination image
  4366. // is negative
  4367. // ippStsStepErr Indicates an error if the step value is not data type multiple
  4368. // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the
  4369. // destination image origin
  4370. // ippStsSizeWrn Indicates a warning if the destination image size is more than
  4371. // the destination image origin size
  4372. //
  4373. // Notes:
  4374. // 1. Supported border types are ippBorderInMemory and ippBorderReplicate
  4375. // (except Nearest Neighbor and Super Sampling methods).
  4376. // 2. Hahn filter does not supported now.
  4377. */
  4378. IPPAPI (IppStatus, ippiResizeLinear_8u_C1R, (
  4379. const Ipp8u* pSrc, Ipp32s srcStep,
  4380. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4381. IppiBorderType border, Ipp8u* borderValue,
  4382. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4383. IPPAPI (IppStatus, ippiResizeLinear_8u_C3R, (
  4384. const Ipp8u* pSrc, Ipp32s srcStep,
  4385. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4386. IppiBorderType border, Ipp8u* borderValue,
  4387. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4388. IPPAPI (IppStatus, ippiResizeLinear_8u_C4R, (
  4389. const Ipp8u* pSrc, Ipp32s srcStep,
  4390. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4391. IppiBorderType border, Ipp8u* borderValue,
  4392. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4393. IPPAPI (IppStatus, ippiResizeLinear_16u_C1R, (
  4394. const Ipp16u* pSrc, Ipp32s srcStep,
  4395. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4396. IppiBorderType border, Ipp16u* borderValue,
  4397. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4398. IPPAPI (IppStatus, ippiResizeLinear_16u_C3R, (
  4399. const Ipp16u* pSrc, Ipp32s srcStep,
  4400. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4401. IppiBorderType border, Ipp16u* borderValue,
  4402. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4403. IPPAPI (IppStatus, ippiResizeLinear_16u_C4R, (
  4404. const Ipp16u* pSrc, Ipp32s srcStep,
  4405. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4406. IppiBorderType border, Ipp16u* borderValue,
  4407. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4408. IPPAPI (IppStatus, ippiResizeLinear_16s_C1R, (
  4409. const Ipp16s* pSrc, Ipp32s srcStep,
  4410. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4411. IppiBorderType border, Ipp16s* borderValue,
  4412. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4413. IPPAPI (IppStatus, ippiResizeLinear_16s_C3R, (
  4414. const Ipp16s* pSrc, Ipp32s srcStep,
  4415. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4416. IppiBorderType border, Ipp16s* borderValue,
  4417. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4418. IPPAPI (IppStatus, ippiResizeLinear_16s_C4R, (
  4419. const Ipp16s* pSrc, Ipp32s srcStep,
  4420. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4421. IppiBorderType border, Ipp16s* borderValue,
  4422. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4423. IPPAPI (IppStatus, ippiResizeLinear_32f_C1R, (
  4424. const Ipp32f* pSrc, Ipp32s srcStep,
  4425. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4426. IppiBorderType border, Ipp32f* borderValue,
  4427. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4428. IPPAPI (IppStatus, ippiResizeLinear_32f_C3R, (
  4429. const Ipp32f* pSrc, Ipp32s srcStep,
  4430. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4431. IppiBorderType border, Ipp32f* borderValue,
  4432. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4433. IPPAPI (IppStatus, ippiResizeLinear_32f_C4R, (
  4434. const Ipp32f* pSrc, Ipp32s srcStep,
  4435. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4436. IppiBorderType border, Ipp32f* borderValue,
  4437. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4438. IPPAPI (IppStatus, ippiResizeLinear_64f_C1R, (
  4439. const Ipp64f* pSrc, Ipp32s srcStep,
  4440. Ipp64f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4441. IppiBorderType border, Ipp64f* borderValue,
  4442. IppiResizeSpec_64f* pSpec,
  4443. Ipp8u* pBuffer))
  4444. IPPAPI (IppStatus, ippiResizeLinear_64f_C3R, (
  4445. const Ipp64f* pSrc, Ipp32s srcStep,
  4446. Ipp64f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4447. IppiBorderType border, Ipp64f* borderValue,
  4448. IppiResizeSpec_64f* pSpec,
  4449. Ipp8u* pBuffer))
  4450. IPPAPI (IppStatus, ippiResizeLinear_64f_C4R, (
  4451. const Ipp64f* pSrc, Ipp32s srcStep,
  4452. Ipp64f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4453. IppiBorderType border, Ipp64f* borderValue,
  4454. IppiResizeSpec_64f* pSpec,
  4455. Ipp8u* pBuffer))
  4456. IPPAPI (IppStatus, ippiResizeCubic_8u_C1R, (
  4457. const Ipp8u* pSrc, Ipp32s srcStep,
  4458. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4459. IppiBorderType border, Ipp8u* borderValue,
  4460. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4461. IPPAPI (IppStatus, ippiResizeCubic_8u_C3R, (
  4462. const Ipp8u* pSrc, Ipp32s srcStep,
  4463. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4464. IppiBorderType border, Ipp8u* borderValue,
  4465. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4466. IPPAPI (IppStatus, ippiResizeCubic_8u_C4R, (
  4467. const Ipp8u* pSrc, Ipp32s srcStep,
  4468. Ipp8u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4469. IppiBorderType border, Ipp8u* borderValue,
  4470. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4471. IPPAPI (IppStatus, ippiResizeCubic_16u_C1R, (
  4472. const Ipp16u* pSrc, Ipp32s srcStep,
  4473. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4474. IppiBorderType border, Ipp16u* borderValue,
  4475. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4476. IPPAPI (IppStatus, ippiResizeCubic_16u_C3R, (
  4477. const Ipp16u* pSrc, Ipp32s srcStep,
  4478. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4479. IppiBorderType border, Ipp16u* borderValue,
  4480. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4481. IPPAPI (IppStatus, ippiResizeCubic_16u_C4R, (
  4482. const Ipp16u* pSrc, Ipp32s srcStep,
  4483. Ipp16u* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4484. IppiBorderType border, Ipp16u* borderValue,
  4485. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4486. IPPAPI (IppStatus, ippiResizeCubic_16s_C1R, (
  4487. const Ipp16s* pSrc, Ipp32s srcStep,
  4488. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4489. IppiBorderType border, Ipp16s* borderValue,
  4490. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4491. IPPAPI (IppStatus, ippiResizeCubic_16s_C3R, (
  4492. const Ipp16s* pSrc, Ipp32s srcStep,
  4493. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4494. IppiBorderType border, Ipp16s* borderValue,
  4495. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4496. IPPAPI (IppStatus, ippiResizeCubic_16s_C4R, (
  4497. const Ipp16s* pSrc, Ipp32s srcStep,
  4498. Ipp16s* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4499. IppiBorderType border, Ipp16s* borderValue,
  4500. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4501. IPPAPI (IppStatus, ippiResizeCubic_32f_C1R, (
  4502. const Ipp32f* pSrc, Ipp32s srcStep,
  4503. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4504. IppiBorderType border, Ipp32f* borderValue,
  4505. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4506. IPPAPI (IppStatus, ippiResizeCubic_32f_C3R, (
  4507. const Ipp32f* pSrc, Ipp32s srcStep,
  4508. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4509. IppiBorderType border, Ipp32f* borderValue,
  4510. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4511. IPPAPI (IppStatus, ippiResizeCubic_32f_C4R, (
  4512. const Ipp32f* pSrc, Ipp32s srcStep,
  4513. Ipp32f* pDst, Ipp32s dstStep, IppiPoint dstOffset, IppiSize dstSize,
  4514. IppiBorderType border, Ipp32f* borderValue,
  4515. IppiResizeSpec_32f* pSpec, Ipp8u* pBuffer))
  4516. /* ////////////////////////////////////////////////////////////////////////////
  4517. // Names: ippiThreshold_GT_8u_C1R
  4518. // ippiThreshold_GT_8u_C3R
  4519. // ippiThreshold_GT_8u_AC4R
  4520. // ippiThreshold_GT_16s_C1R
  4521. // ippiThreshold_GT_16s_C3R
  4522. // ippiThreshold_GT_16s_AC4R
  4523. // ippiThreshold_GT_32f_C1R
  4524. // ippiThreshold_GT_32f_C3R
  4525. // ippiThreshold_GT_32f_AC4R
  4526. // ippiThreshold_GT_8u_C1IR
  4527. // ippiThreshold_GT_8u_C3IR
  4528. // ippiThreshold_GT_8u_AC4IR
  4529. // ippiThreshold_GT_16s_C1IR
  4530. // ippiThreshold_GT_16s_C3IR
  4531. // ippiThreshold_GT_16s_AC4IR
  4532. // ippiThreshold_GT_32f_C1IR
  4533. // ippiThreshold_GT_32f_C3IR
  4534. // ippiThreshold_GT_32f_AC4IR
  4535. // ippiThreshold_GT_16u_C1R
  4536. // ippiThreshold_GT_16u_C3R
  4537. // ippiThreshold_GT_16u_AC4R
  4538. // ippiThreshold_GT_16u_C1IR
  4539. // ippiThreshold_GT_16u_C3IR
  4540. // ippiThreshold_GT_16u_AC4IR
  4541. //
  4542. // Purpose: Performs threshold operation using the comparison "greater than"
  4543. // Returns:
  4544. // ippStsNoErr OK
  4545. // ippStsNullPtrErr One of the pointers is NULL
  4546. // ippStsSizeErr roiSize has a field with zero or negative value
  4547. // ippStsStepErr One of the step values is zero or negative
  4548. //
  4549. // Parameters:
  4550. // pSrc Pointer to the source image
  4551. // srcStep Step through the source image
  4552. // pDst Pointer to the destination image
  4553. // dstStep Step through the destination image
  4554. // pSrcDst Pointer to the source/destination image (in-place flavors)
  4555. // srcDstStep Step through the source/destination image (in-place flavors)
  4556. // roiSize Size of the ROI
  4557. // threshold Threshold level value (array of values for multi-channel data)
  4558. */
  4559. IPPAPI(IppStatus,ippiThreshold_GT_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  4560. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp8u threshold))
  4561. IPPAPI(IppStatus,ippiThreshold_GT_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  4562. Ipp16s* pDst, int dstStep, IppiSize roiSize, Ipp16s threshold))
  4563. IPPAPI(IppStatus,ippiThreshold_GT_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  4564. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f threshold))
  4565. IPPAPI(IppStatus,ippiThreshold_GT_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  4566. Ipp8u* pDst, int dstStep, IppiSize roiSize, const Ipp8u threshold[3]))
  4567. IPPAPI(IppStatus,ippiThreshold_GT_16s_C3R,(const Ipp16s* pSrc, int srcStep,
  4568. Ipp16s* pDst, int dstStep, IppiSize roiSize, const Ipp16s threshold[3]))
  4569. IPPAPI(IppStatus,ippiThreshold_GT_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  4570. Ipp32f* pDst, int dstStep, IppiSize roiSize, const Ipp32f threshold[3]))
  4571. IPPAPI(IppStatus,ippiThreshold_GT_8u_C1IR,(Ipp8u* pSrcDst, int srcDstStep,
  4572. IppiSize roiSize, Ipp8u threshold))
  4573. IPPAPI(IppStatus,ippiThreshold_GT_16s_C1IR,(Ipp16s* pSrcDst, int srcDstStep,
  4574. IppiSize roiSize, Ipp16s threshold))
  4575. IPPAPI(IppStatus,ippiThreshold_GT_32f_C1IR,(Ipp32f* pSrcDst, int srcDstStep,
  4576. IppiSize roiSize, Ipp32f threshold))
  4577. IPPAPI(IppStatus,ippiThreshold_GT_8u_C3IR,(Ipp8u* pSrcDst, int srcDstStep,
  4578. IppiSize roiSize, const Ipp8u threshold[3]))
  4579. IPPAPI(IppStatus,ippiThreshold_GT_16s_C3IR,(Ipp16s* pSrcDst, int srcDstStep,
  4580. IppiSize roiSize, const Ipp16s threshold[3]))
  4581. IPPAPI(IppStatus,ippiThreshold_GT_32f_C3IR,(Ipp32f* pSrcDst, int srcDstStep,
  4582. IppiSize roiSize, const Ipp32f threshold[3]))
  4583. IPPAPI(IppStatus,ippiThreshold_GT_16u_C1R,(const Ipp16u* pSrc, int srcStep,
  4584. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp16u threshold))
  4585. IPPAPI(IppStatus,ippiThreshold_GT_16u_C3R,(const Ipp16u* pSrc, int srcStep,
  4586. Ipp16u* pDst, int dstStep, IppiSize roiSize, const Ipp16u threshold[3]))
  4587. IPPAPI(IppStatus,ippiThreshold_GT_16u_C1IR,(Ipp16u* pSrcDst, int srcDstStep,
  4588. IppiSize roiSize, Ipp16u threshold))
  4589. IPPAPI(IppStatus,ippiThreshold_GT_16u_C3IR,(Ipp16u* pSrcDst, int srcDstStep,
  4590. IppiSize roiSize, const Ipp16u threshold[3]))
  4591. /* ////////////////////////////////////////////////////////////////////////////
  4592. // Names: ippiThreshold_GTVal_8u_C1R
  4593. // ippiThreshold_GTVal_8u_C3R
  4594. // ippiThreshold_GTVal_8u_AC4R
  4595. // ippiThreshold_GTVal_16s_C1R
  4596. // ippiThreshold_GTVal_16s_C3R
  4597. // ippiThreshold_GTVal_16s_AC4R
  4598. // ippiThreshold_GTVal_32f_C1R
  4599. // ippiThreshold_GTVal_32f_C3R
  4600. // ippiThreshold_GTVal_32f_AC4R
  4601. // ippiThreshold_GTVal_8u_C1IR
  4602. // ippiThreshold_GTVal_8u_C3IR
  4603. // ippiThreshold_GTVal_8u_AC4IR
  4604. // ippiThreshold_GTVal_16s_C1IR
  4605. // ippiThreshold_GTVal_16s_C3IR
  4606. // ippiThreshold_GTVal_16s_AC4IR
  4607. // ippiThreshold_GTVal_32f_C1IR
  4608. // ippiThreshold_GTVal_32f_C3IR
  4609. // ippiThreshold_GTVal_32f_AC4IR
  4610. // ippiThreshold_GTVal_8u_C4R
  4611. // ippiThreshold_GTVal_16s_C4R
  4612. // ippiThreshold_GTVal_32f_C4R
  4613. // ippiThreshold_GTVal_8u_C4IR
  4614. // ippiThreshold_GTVal_16s_C4IR
  4615. // ippiThreshold_GTVal_32f_C4IR
  4616. // ippiThreshold_GTVal_16u_C1R
  4617. // ippiThreshold_GTVal_16u_C3R
  4618. // ippiThreshold_GTVal_16u_AC4R
  4619. // ippiThreshold_GTVal_16u_C1IR
  4620. // ippiThreshold_GTVal_16u_C3IR
  4621. // ippiThreshold_GTVal_16u_AC4IR
  4622. // ippiThreshold_GTVal_16u_C4R
  4623. // ippiThreshold_GTVal_16u_C4IR
  4624. //
  4625. // Purpose: Performs thresholding of pixel values: pixels that are
  4626. // greater than threshold, are set to a specified value
  4627. // Returns:
  4628. // ippStsNoErr OK
  4629. // ippStsNullPtrErr One of the pointers is NULL
  4630. // ippStsSizeErr roiSize has a field with zero or negative value
  4631. // ippStsStepErr One of the step values is zero or negative
  4632. //
  4633. // Parameters:
  4634. // pSrc Pointer to the source image
  4635. // srcStep Step through the source image
  4636. // pDst Pointer to the destination image
  4637. // dstStep Step through the destination image
  4638. // pSrcDst Pointer to the source/destination image (in-place flavors)
  4639. // srcDstStep Step through the source/destination image (in-place flavors)
  4640. // roiSize Size of the ROI
  4641. // threshold Threshold level value (array of values for multi-channel data)
  4642. // value The output value (array or values for multi-channel data)
  4643. */
  4644. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  4645. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp8u threshold,
  4646. Ipp8u value))
  4647. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  4648. Ipp16s* pDst, int dstStep, IppiSize roiSize, Ipp16s threshold,
  4649. Ipp16s value))
  4650. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  4651. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f threshold,
  4652. Ipp32f value))
  4653. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  4654. Ipp8u* pDst, int dstStep, IppiSize roiSize, const Ipp8u threshold[3],
  4655. const Ipp8u value[3]))
  4656. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C3R,(const Ipp16s* pSrc, int srcStep,
  4657. Ipp16s* pDst, int dstStep, IppiSize roiSize, const Ipp16s threshold[3],
  4658. const Ipp16s value[3]))
  4659. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  4660. Ipp32f* pDst, int dstStep, IppiSize roiSize, const Ipp32f threshold[3],
  4661. const Ipp32f value[3]))
  4662. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C1IR,(Ipp8u* pSrcDst, int srcDstStep,
  4663. IppiSize roiSize, Ipp8u threshold, Ipp8u value))
  4664. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C1IR,(Ipp16s* pSrcDst, int srcDstStep,
  4665. IppiSize roiSize, Ipp16s threshold, Ipp16s value))
  4666. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C1IR,(Ipp32f* pSrcDst, int srcDstStep,
  4667. IppiSize roiSize, Ipp32f threshold, Ipp32f value))
  4668. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C3IR,(Ipp8u* pSrcDst, int srcDstStep,
  4669. IppiSize roiSize, const Ipp8u threshold[3], const Ipp8u value[3]))
  4670. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C3IR,(Ipp16s* pSrcDst, int srcDstStep,
  4671. IppiSize roiSize, const Ipp16s threshold[3], const Ipp16s value[3]))
  4672. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C3IR,(Ipp32f* pSrcDst, int srcDstStep,
  4673. IppiSize roiSize, const Ipp32f threshold[3], const Ipp32f value[3]))
  4674. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C4R,(const Ipp8u* pSrc, int srcStep,
  4675. Ipp8u* pDst, int dstStep, IppiSize roiSize, const Ipp8u threshold[4],
  4676. const Ipp8u value[4]))
  4677. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C4R,(const Ipp16s* pSrc, int srcStep,
  4678. Ipp16s* pDst, int dstStep, IppiSize roiSize, const Ipp16s threshold[4],
  4679. const Ipp16s value[4]))
  4680. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C4R,(const Ipp32f* pSrc, int srcStep,
  4681. Ipp32f* pDst, int dstStep, IppiSize roiSize, const Ipp32f threshold[4],
  4682. const Ipp32f value[4]))
  4683. IPPAPI(IppStatus,ippiThreshold_GTVal_8u_C4IR,(Ipp8u* pSrcDst, int srcDstStep,
  4684. IppiSize roiSize, const Ipp8u threshold[4], const Ipp8u value[4]))
  4685. IPPAPI(IppStatus,ippiThreshold_GTVal_16s_C4IR,(Ipp16s* pSrcDst, int srcDstStep,
  4686. IppiSize roiSize, const Ipp16s threshold[4], const Ipp16s value[4]))
  4687. IPPAPI(IppStatus,ippiThreshold_GTVal_32f_C4IR,(Ipp32f* pSrcDst, int srcDstStep,
  4688. IppiSize roiSize, const Ipp32f threshold[4], const Ipp32f value[4]))
  4689. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C1R,(const Ipp16u* pSrc, int srcStep,
  4690. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp16u threshold,
  4691. Ipp16u value))
  4692. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C3R,(const Ipp16u* pSrc, int srcStep,
  4693. Ipp16u* pDst, int dstStep, IppiSize roiSize, const Ipp16u threshold[3],
  4694. const Ipp16u value[3]))
  4695. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C1IR,(Ipp16u* pSrcDst, int srcDstStep,
  4696. IppiSize roiSize, Ipp16u threshold, Ipp16u value))
  4697. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C3IR,(Ipp16u* pSrcDst, int srcDstStep,
  4698. IppiSize roiSize, const Ipp16u threshold[3], const Ipp16u value[3]))
  4699. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C4R,(const Ipp16u* pSrc, int srcStep,
  4700. Ipp16u* pDst, int dstStep, IppiSize roiSize, const Ipp16u threshold[4],
  4701. const Ipp16u value[4]))
  4702. IPPAPI(IppStatus,ippiThreshold_GTVal_16u_C4IR,(Ipp16u* pSrcDst, int srcDstStep,
  4703. IppiSize roiSize, const Ipp16u threshold[4], const Ipp16u value[4]))
  4704. /* ////////////////////////////////////////////////////////////////////////////
  4705. // Names: ippiThreshold_LTVal_8u_C1R
  4706. // ippiThreshold_LTVal_8u_C3R
  4707. // ippiThreshold_LTVal_8u_AC4R
  4708. // ippiThreshold_LTVal_16s_C1R
  4709. // ippiThreshold_LTVal_16s_C3R
  4710. // ippiThreshold_LTVal_16s_AC4R
  4711. // ippiThreshold_LTVal_32f_C1R
  4712. // ippiThreshold_LTVal_32f_C3R
  4713. // ippiThreshold_LTVal_32f_AC4R
  4714. // ippiThreshold_LTVal_8u_C1IR
  4715. // ippiThreshold_LTVal_8u_C3IR
  4716. // ippiThreshold_LTVal_8u_AC4IR
  4717. // ippiThreshold_LTVal_16s_C1IR
  4718. // ippiThreshold_LTVal_16s_C3IR
  4719. // ippiThreshold_LTVal_16s_AC4IR
  4720. // ippiThreshold_LTVal_32f_C1IR
  4721. // ippiThreshold_LTVal_32f_C3IR
  4722. // ippiThreshold_LTVal_32f_AC4IR
  4723. // ippiThreshold_LTVal_8u_C4R
  4724. // ippiThreshold_LTVal_16s_C4R
  4725. // ippiThreshold_LTVal_32f_C4R
  4726. // ippiThreshold_LTVal_8u_C4IR
  4727. // ippiThreshold_LTVal_16s_C4IR
  4728. // ippiThreshold_LTVal_32f_C4IR
  4729. // ippiThreshold_LTVal_16u_C1R
  4730. // ippiThreshold_LTVal_16u_C3R
  4731. // ippiThreshold_LTVal_16u_AC4R
  4732. // ippiThreshold_LTVal_16u_C1IR
  4733. // ippiThreshold_LTVal_16u_C3IR
  4734. // ippiThreshold_LTVal_16u_AC4IR
  4735. // ippiThreshold_LTVal_16u_C4R
  4736. // ippiThreshold_LTVal_16u_C4IR
  4737. //
  4738. // Purpose: Performs thresholding of pixel values: pixels that are
  4739. // less than threshold, are set to a specified value
  4740. // Returns:
  4741. // ippStsNoErr OK
  4742. // ippStsNullPtrErr One of the pointers is NULL
  4743. // ippStsSizeErr roiSize has a field with zero or negative value
  4744. // ippStsStepErr One of the step values is zero or negative
  4745. //
  4746. // Parameters:
  4747. // pSrc Pointer to the source image
  4748. // srcStep Step through the source image
  4749. // pDst Pointer to the destination image
  4750. // dstStep Step through the destination image
  4751. // pSrcDst Pointer to the source/destination image (in-place flavors)
  4752. // srcDstStep Step through the source/destination image (in-place flavors)
  4753. // roiSize Size of the ROI
  4754. // threshold Threshold level value (array of values for multi-channel data)
  4755. // value The output value (array or values for multi-channel data)
  4756. */
  4757. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  4758. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp8u threshold,
  4759. Ipp8u value))
  4760. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  4761. Ipp16s* pDst, int dstStep, IppiSize roiSize, Ipp16s threshold,
  4762. Ipp16s value))
  4763. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  4764. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f threshold,
  4765. Ipp32f value))
  4766. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  4767. Ipp8u* pDst, int dstStep, IppiSize roiSize, const Ipp8u threshold[3],
  4768. const Ipp8u value[3]))
  4769. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C3R,(const Ipp16s* pSrc, int srcStep,
  4770. Ipp16s* pDst, int dstStep, IppiSize roiSize, const Ipp16s threshold[3],
  4771. const Ipp16s value[3]))
  4772. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  4773. Ipp32f* pDst, int dstStep, IppiSize roiSize, const Ipp32f threshold[3],
  4774. const Ipp32f value[3]))
  4775. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C1IR,(Ipp8u* pSrcDst, int srcDstStep,
  4776. IppiSize roiSize, Ipp8u threshold, Ipp8u value))
  4777. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C1IR,(Ipp16s* pSrcDst, int srcDstStep,
  4778. IppiSize roiSize, Ipp16s threshold, Ipp16s value))
  4779. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C1IR,(Ipp32f* pSrcDst, int srcDstStep,
  4780. IppiSize roiSize, Ipp32f threshold, Ipp32f value))
  4781. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C3IR,(Ipp8u* pSrcDst, int srcDstStep,
  4782. IppiSize roiSize, const Ipp8u threshold[3], const Ipp8u value[3]))
  4783. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C3IR,(Ipp16s* pSrcDst, int srcDstStep,
  4784. IppiSize roiSize, const Ipp16s threshold[3], const Ipp16s value[3]))
  4785. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C3IR,(Ipp32f* pSrcDst, int srcDstStep,
  4786. IppiSize roiSize, const Ipp32f threshold[3], const Ipp32f value[3]))
  4787. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C4R,(const Ipp8u* pSrc, int srcStep,
  4788. Ipp8u* pDst, int dstStep, IppiSize roiSize, const Ipp8u threshold[4],
  4789. const Ipp8u value[4]))
  4790. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C4R,(const Ipp16s* pSrc, int srcStep,
  4791. Ipp16s* pDst, int dstStep, IppiSize roiSize, const Ipp16s threshold[4],
  4792. const Ipp16s value[4]))
  4793. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C4R,(const Ipp32f* pSrc, int srcStep,
  4794. Ipp32f* pDst, int dstStep, IppiSize roiSize, const Ipp32f threshold[4],
  4795. const Ipp32f value[4]))
  4796. IPPAPI(IppStatus,ippiThreshold_LTVal_8u_C4IR,(Ipp8u* pSrcDst, int srcDstStep,
  4797. IppiSize roiSize, const Ipp8u threshold[4], const Ipp8u value[4]))
  4798. IPPAPI(IppStatus,ippiThreshold_LTVal_16s_C4IR,(Ipp16s* pSrcDst, int srcDstStep,
  4799. IppiSize roiSize, const Ipp16s threshold[4], const Ipp16s value[4]))
  4800. IPPAPI(IppStatus,ippiThreshold_LTVal_32f_C4IR,(Ipp32f* pSrcDst, int srcDstStep,
  4801. IppiSize roiSize, const Ipp32f threshold[4], const Ipp32f value[4]))
  4802. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C1R,(const Ipp16u* pSrc, int srcStep,
  4803. Ipp16u* pDst, int dstStep, IppiSize roiSize, Ipp16u threshold,
  4804. Ipp16u value))
  4805. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C3R,(const Ipp16u* pSrc, int srcStep,
  4806. Ipp16u* pDst, int dstStep, IppiSize roiSize, const Ipp16u threshold[3],
  4807. const Ipp16u value[3]))
  4808. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C1IR,(Ipp16u* pSrcDst, int srcDstStep,
  4809. IppiSize roiSize, Ipp16u threshold, Ipp16u value))
  4810. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C3IR,(Ipp16u* pSrcDst, int srcDstStep,
  4811. IppiSize roiSize, const Ipp16u threshold[3], const Ipp16u value[3]))
  4812. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C4R,(const Ipp16u* pSrc, int srcStep,
  4813. Ipp16u* pDst, int dstStep, IppiSize roiSize, const Ipp16u threshold[4],
  4814. const Ipp16u value[4]))
  4815. IPPAPI(IppStatus,ippiThreshold_LTVal_16u_C4IR,(Ipp16u* pSrcDst, int srcDstStep,
  4816. IppiSize roiSize, const Ipp16u threshold[4], const Ipp16u value[4]))
  4817. /*F/////////////////////////////////////////////////////////////////////////////////
  4818. // Name: ippiComputeThreshold_Otsu_8u_C1R
  4819. //
  4820. // Purpose: Calculate Otsu theshold value of images
  4821. // Return:
  4822. // ippStsNoErr Ok
  4823. // ippStsNullPtrErr One of pointers is NULL
  4824. // ippStsSizeErr The width or height of images is less or equal zero
  4825. // ippStsStepErr The steps in images is less ROI
  4826. // Parameters:
  4827. // pSrc Pointer to image
  4828. // srcStep Image step
  4829. // roiSize Size of image ROI
  4830. // pThreshold Returned Otsu theshold value
  4831. //
  4832. //F*/
  4833. IPPAPI (IppStatus, ippiComputeThreshold_Otsu_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  4834. IppiSize roiSize, Ipp8u* pThreshold))
  4835. /* /////////////////////////////////////////////////////////////////////////////
  4836. // Name: ippiFilterBoxBorderGetBufferSize
  4837. // Purpose: Computes the size of external buffer for FilterBoxBorder
  4838. //
  4839. // Parameters:
  4840. // roiSize Maximum size of the destination image ROI.
  4841. // maskSize Size of the mask in pixels.
  4842. // dataType Data type of the image. Possible values are Ipp8u, Ipp16u, Ipp16s, or Ipp32f.
  4843. // numChannels Number of channels in the image. Possible values are 1, 3, or 4.
  4844. // pBufferSize Pointer to the size of the external work buffer.
  4845. //
  4846. // Return Values:
  4847. // ippStsNoErr Indicates no error.
  4848. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  4849. // ippStsMaskSizeErr Indicates an error when mask has an illegal value.
  4850. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  4851. // ippStsNumChannelsError Indicates an error when numChannels has an illegal value.
  4852. */
  4853. IPPAPI (IppStatus, ippiFilterBoxBorderGetBufferSize,(IppiSize roiSize, IppiSize maskSize, IppDataType dataType, int numChannels, int* pBufferSize))
  4854. /* ///////////////////////////////////////////////////////////////////////////
  4855. // Name: ippiFilterBoxBorder_32f_<desc>R / ippiFilterBoxBorder_16u_<desc>R / ippiFilterBoxBorder_8u_<desc>R / ippiFilterBoxBorder_16s_<desc>R
  4856. // <desc> C1|C3|C4|AC4 (descriptor)
  4857. // Purpose: Blurs an image using a simple box filter
  4858. // Parameters:
  4859. // pSrc Pointer to the source image.
  4860. // srcStep Distance in bytes between starting points of consecutive lines in the source image.
  4861. // pDst Pointer to the destination image.
  4862. // dstStep Distance in bytes between starting points of consecutive lines in the destination image.
  4863. // dstRoiSize Size of the destination ROI in pixels.
  4864. // maskSize Size of the mask in pixels.
  4865. // border Type of border. Possible values are:
  4866. // ippBorderConst Values of all border pixels are set to constant.
  4867. // ippBorderRepl Border is replicated from the edge pixels.
  4868. // ippBorderInMem Border is obtained from the source image pixels in memory.
  4869. // Mixed borders are also supported. They can be obtained by the bitwise operation OR between ippBorderRepl and ippBorderInMemTop, ippBorderInMemBottom, ippBorderInMemLeft, ippBorderInMemRight.
  4870. // borderValue Constant value to assign to pixels of the constant border. This parameter is applicable only to the ippBorderConst border type.
  4871. // pBuffer Pointer to the work buffer.
  4872. // Returns:
  4873. // ippStsNoErr Indicates no error.
  4874. // ippStsNullPtrErr Indicates an error when pSrc or pDst is NULL.
  4875. // ippStsSizeErr Indicates an error if roiSize has a field with zero or negative value.
  4876. // ippStsMaskSizeErr Indicates an error if mask has an illegal value.
  4877. // ippStsBorderErr Indicates an error when border has an illegal value.
  4878. */
  4879. IPPAPI(IppStatus, ippiFilterBoxBorder_32f_C1R,(const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,IppiSize roiSize,
  4880. IppiSize maskSize, IppiBorderType border,const Ipp32f* borderValue, Ipp8u* pBuffer))
  4881. IPPAPI(IppStatus, ippiFilterBoxBorder_32f_C3R,(const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize,
  4882. IppiSize maskSize, IppiBorderType border,const Ipp32f borderValue[3],Ipp8u* pBuffer))
  4883. IPPAPI(IppStatus, ippiFilterBoxBorder_32f_C4R,(const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize,
  4884. IppiSize maskSize, IppiBorderType border,const Ipp32f borderValue[4],Ipp8u* pBuffer))
  4885. IPPAPI(IppStatus, ippiFilterBoxBorder_16u_C1R,(const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,IppiSize roiSize,
  4886. IppiSize maskSize, IppiBorderType border,const Ipp16u* borderValue, Ipp8u* pBuffer))
  4887. IPPAPI(IppStatus, ippiFilterBoxBorder_16u_C3R,(const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize,
  4888. IppiSize maskSize, IppiBorderType border,const Ipp16u borderValue[3],Ipp8u* pBuffer))
  4889. IPPAPI(IppStatus, ippiFilterBoxBorder_16u_C4R,(const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep, IppiSize roiSize,
  4890. IppiSize maskSize, IppiBorderType border,const Ipp16u borderValue[3],Ipp8u* pBuffer))
  4891. IPPAPI(IppStatus, ippiFilterBoxBorder_16s_C1R,(const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep,IppiSize roiSize,
  4892. IppiSize maskSize, IppiBorderType border,const Ipp16s* borderValue, Ipp8u* pBuffer))
  4893. IPPAPI(IppStatus, ippiFilterBoxBorder_16s_C3R,(const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  4894. IppiSize maskSize, IppiBorderType border,const Ipp16s borderValue[3],Ipp8u* pBuffer))
  4895. IPPAPI(IppStatus, ippiFilterBoxBorder_16s_C4R,(const Ipp16s* pSrc, int srcStep, Ipp16s* pDst, int dstStep, IppiSize roiSize,
  4896. IppiSize maskSize, IppiBorderType border,const Ipp16s borderValue[3],Ipp8u* pBuffer))
  4897. IPPAPI(IppStatus, ippiFilterBoxBorder_8u_C1R,(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,IppiSize roiSize,
  4898. IppiSize maskSize, IppiBorderType border,const Ipp8u* borderValue, Ipp8u* pBuffer))
  4899. IPPAPI(IppStatus, ippiFilterBoxBorder_8u_C3R,(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  4900. IppiSize maskSize, IppiBorderType border,const Ipp8u borderValue[3],Ipp8u* pBuffer))
  4901. IPPAPI(IppStatus, ippiFilterBoxBorder_8u_C4R,(const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep, IppiSize roiSize,
  4902. IppiSize maskSize, IppiBorderType border,const Ipp8u borderValue[4],Ipp8u* pBuffer))
  4903. /* /////////////////////////////////////////////////////////////////////////////
  4904. // Name: ippiFilterMedianBorderGetBufferSize
  4905. //
  4906. // Purpose: Computes the size of the external buffer for median filter with border
  4907. //
  4908. // Parameters:
  4909. // roiSize Size of destination ROI in pixels.
  4910. // maskSize Size of filter mask.
  4911. // dataType Data type of the source an desination images.
  4912. // numChannels Number of channels in the images. Possible value is 1.
  4913. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  4914. //
  4915. // Return Values:
  4916. // ippStsNoErr Indicates no error.
  4917. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  4918. // ippStsSizeErr Indicates an error when roiSize has a field with negative or zero value.
  4919. // ippStsMaskSizeErr Indicates an error when maskSize has a field with negative, zero or even value.
  4920. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  4921. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  4922. */
  4923. IPPAPI(IppStatus, ippiFilterMedianBorderGetBufferSize,(IppiSize dstRoiSize, IppiSize maskSize,
  4924. IppDataType dataType, int numChannels, int* pBufferSize))
  4925. /* /////////////////////////////////////////////////////////////////////////////
  4926. // Name: ippiFilterMedianBorder_8u_C1R
  4927. // ippiFilterMedianBorder_16s_C1R
  4928. // ippiFilterMedianBorder_16u_C1R
  4929. // ippiFilterMedianBorder_32f_C1R
  4930. // Purpose: Perform median filtering of an image with border
  4931. //
  4932. // Parameters:
  4933. // pSrc Pointer to the source image ROI.
  4934. // srcStep Distance in bytes between starting points of consecutive lines in the sorce image.
  4935. // pDst Pointer to the destination image ROI.
  4936. // dstStep Distance in bytes between starting points of consecutive lines in the destination image.
  4937. // dstRoiSize Size of destination ROI in pixels.
  4938. // maskSize Size of filter mask.
  4939. // borderType Type of border.
  4940. // borderValue Constant value to assign to pixels of the constant border. This parameter is applicable
  4941. // only to the ippBorderConst border type.
  4942. // pBuffer Pointer to the work buffer.
  4943. //
  4944. // Return Values:
  4945. // ippStsNoErr Indicates no error.
  4946. // ippStsNullPtrErr Indicates an error when pSrc, pDst or pBufferSize is NULL.
  4947. // ippStsSizeErr Indicates an error when roiSize has a field with negative or zero value.
  4948. // ippStsMaskSizeErr Indicates an error when maskSize has a field with negative, zero or even value.
  4949. // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4
  4950. // for floating-point images, or by 2 for short-integer images.
  4951. // ippStsBorderErr Indicates an error when borderType has illegal value.
  4952. */
  4953. IPPAPI(IppStatus, ippiFilterMedianBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  4954. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  4955. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  4956. IPPAPI(IppStatus, ippiFilterMedianBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  4957. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  4958. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  4959. IPPAPI(IppStatus, ippiFilterMedianBorder_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  4960. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  4961. IppiBorderType borderType, Ipp16u borderValue, Ipp8u* pBuffer))
  4962. IPPAPI(IppStatus, ippiFilterMedianBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  4963. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  4964. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  4965. /* /////////////////////////////////////////////////////////////////////////////
  4966. // Name: ippiFilterMaxBorderGetBufferSize
  4967. // ippiFilterMinBorderGetBufferSize
  4968. //
  4969. // Purpose: Computes the size of the external buffer for median filter with border
  4970. //
  4971. // Parameters:
  4972. // roiSize Size of destination ROI in pixels.
  4973. // maskSize Size of mask.
  4974. // dataType data type of source and destination images.
  4975. // numChannels Number of channels in the images. Possible values is 1.
  4976. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  4977. //
  4978. // Return Values:
  4979. // ippStsNoErr Indicates no error.
  4980. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  4981. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  4982. // ippStsMaskSizeErr Indicates an error when maskSize is negative, or equal to zero.
  4983. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  4984. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  4985. */
  4986. IPPAPI(IppStatus, ippiFilterMaxBorderGetBufferSize,(IppiSize dstRoiSize, IppiSize maskSize,
  4987. IppDataType dataType, int numChannels, int* pBufferSize))
  4988. IPPAPI(IppStatus, ippiFilterMinBorderGetBufferSize,(IppiSize dstRoiSize, IppiSize maskSize,
  4989. IppDataType dataType, int numChannels, int* pBufferSize))
  4990. /* ////////////////////////////////////////////////////////////////////////////
  4991. // Names: ippiFilterMaxBorder_8u_C1R
  4992. // ippiFilterMaxBorder_8u_C3R
  4993. // ippiFilterMaxBorder_8u_AC4R
  4994. // ippiFilterMaxBorder_8u_C4R
  4995. // ippiFilterMaxBorder_16s_C1R
  4996. // ippiFilterMaxBorder_16s_C3R
  4997. // ippiFilterMaxBorder_16s_AC4R
  4998. // ippiFilterMaxBorder_16s_C4R
  4999. // ippiFilterMaxBorder_16u_C1R
  5000. // ippiFilterMaxBorder_16u_C3R
  5001. // ippiFilterMaxBorder_16u_AC4R
  5002. // ippiFilterMaxBorder_16u_C4R
  5003. // ippiFilterMaxBorder_32f_C1R
  5004. // ippiFilterMaxBorder_32f_C3R
  5005. // ippiFilterMaxBorder_32f_AC4R
  5006. // ippiFilterMaxBorder_32f_C4R
  5007. // ippiFilterMinBorder_8u_C1R
  5008. // ippiFilterMinBorder_8u_C3R
  5009. // ippiFilterMinBorder_8u_AC4R
  5010. // ippiFilterMinBorder_8u_C4R
  5011. // ippiFilterMinBorder_16s_C1R
  5012. // ippiFilterMinBorder_16s_C3R
  5013. // ippiFilterMinBorder_16s_AC4R
  5014. // ippiFilterMinBorder_16s_C4R
  5015. // ippiFilterMinBorder_16u_C1R
  5016. // ippiFilterMinBorder_16u_C3R
  5017. // ippiFilterMinBorder_16u_AC4R
  5018. // ippiFilterMinBorder_16u_C4R
  5019. // ippiFilterMinBorder_32f_C1R
  5020. // ippiFilterMinBorder_32f_C3R
  5021. // ippiFilterMinBorder_32f_AC4R
  5022. // ippiFilterMinBorder_32f_C4R
  5023. //
  5024. // Purpose: Max and Min Filter with Border
  5025. // Parameters:
  5026. // pSrc Pointer to the source image ROI.
  5027. // srcStep Distance in bytes between starting points of consecutive lines in the sorce image.
  5028. // pDst Pointer to the destination image ROI.
  5029. // dstStep Distance in bytes between starting points of consecutive lines in the destination image.
  5030. // dstRoiSize Size of destination ROI in pixels.
  5031. // maskSize Size of mask.
  5032. // borderType Type of border.
  5033. // borderValue Constant value to assign to pixels of the constant border. This parameter is applicable
  5034. // only to the ippBorderConst border type.
  5035. // pBorderValue Pointer to constant value to assign to pixels of the constant border. This parameter is applicable
  5036. // only to the ippBorderConst border type.
  5037. // pBuffer Pointer to the work buffer.
  5038. //
  5039. // Return Values:
  5040. // ippStsNoErr Indicates no error.
  5041. // ippStsNullPtrErr Indicates an error when pBuffer is NULL while it must be no NULL.
  5042. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  5043. // ippStsStepErr Indicates an error when srcStep or dstStep is negative, or equal to zero.
  5044. // ippStsBorderErr Indicates an error when borderType has illegal value.
  5045. */
  5046. IPPAPI(IppStatus, ippiFilterMaxBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  5047. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5048. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  5049. IPPAPI(IppStatus, ippiFilterMaxBorder_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  5050. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5051. IppiBorderType borderType, const Ipp8u pBorderValue[3], Ipp8u* pBuffer))
  5052. IPPAPI(IppStatus, ippiFilterMaxBorder_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  5053. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5054. IppiBorderType borderType, const Ipp8u pBorderValue[4], Ipp8u* pBuffer))
  5055. IPPAPI(IppStatus, ippiFilterMaxBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  5056. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5057. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  5058. IPPAPI(IppStatus, ippiFilterMaxBorder_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  5059. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5060. IppiBorderType borderType, const Ipp16s pBorderValue[3], Ipp8u* pBuffer))
  5061. IPPAPI(IppStatus, ippiFilterMaxBorder_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  5062. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5063. IppiBorderType borderType, const Ipp16s pBorderValue[4], Ipp8u* pBuffer))
  5064. IPPAPI(IppStatus, ippiFilterMaxBorder_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  5065. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5066. IppiBorderType borderType, Ipp16u borderValue, Ipp8u* pBuffer))
  5067. IPPAPI(IppStatus, ippiFilterMaxBorder_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  5068. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5069. IppiBorderType borderType, const Ipp16u pBorderValue[3], Ipp8u* pBuffer))
  5070. IPPAPI(IppStatus, ippiFilterMaxBorder_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  5071. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5072. IppiBorderType borderType, const Ipp16u pBorderValue[4], Ipp8u* pBuffer))
  5073. IPPAPI(IppStatus, ippiFilterMaxBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  5074. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5075. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  5076. IPPAPI(IppStatus, ippiFilterMaxBorder_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  5077. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5078. IppiBorderType borderType, const Ipp32f pBorderValue[3], Ipp8u* pBuffer))
  5079. IPPAPI(IppStatus, ippiFilterMaxBorder_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  5080. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5081. IppiBorderType borderType, const Ipp32f pBorderValue[4], Ipp8u* pBuffer))
  5082. IPPAPI(IppStatus, ippiFilterMinBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  5083. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5084. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  5085. IPPAPI(IppStatus, ippiFilterMinBorder_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  5086. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5087. IppiBorderType borderType, const Ipp8u pBorderValue[3], Ipp8u* pBuffer))
  5088. IPPAPI(IppStatus, ippiFilterMinBorder_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  5089. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5090. IppiBorderType borderType, const Ipp8u pBorderValue[4], Ipp8u* pBuffer))
  5091. IPPAPI(IppStatus, ippiFilterMinBorder_16s_C1R, (const Ipp16s* pSrc, int srcStep,
  5092. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5093. IppiBorderType borderType, Ipp16s borderValue, Ipp8u* pBuffer))
  5094. IPPAPI(IppStatus, ippiFilterMinBorder_16s_C3R, (const Ipp16s* pSrc, int srcStep,
  5095. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5096. IppiBorderType borderType, const Ipp16s pBorderValue[3], Ipp8u* pBuffer))
  5097. IPPAPI(IppStatus, ippiFilterMinBorder_16s_C4R, (const Ipp16s* pSrc, int srcStep,
  5098. Ipp16s* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5099. IppiBorderType borderType, const Ipp16s pBorderValue[4], Ipp8u* pBuffer))
  5100. IPPAPI(IppStatus, ippiFilterMinBorder_16u_C1R, (const Ipp16u* pSrc, int srcStep,
  5101. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5102. IppiBorderType borderType, Ipp16u borderValue, Ipp8u* pBuffer))
  5103. IPPAPI(IppStatus, ippiFilterMinBorder_16u_C3R, (const Ipp16u* pSrc, int srcStep,
  5104. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5105. IppiBorderType borderType, const Ipp16u pBorderValue[3], Ipp8u* pBuffer))
  5106. IPPAPI(IppStatus, ippiFilterMinBorder_16u_C4R, (const Ipp16u* pSrc, int srcStep,
  5107. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5108. IppiBorderType borderType, const Ipp16u pBorderValue[4], Ipp8u* pBuffer))
  5109. IPPAPI(IppStatus, ippiFilterMinBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  5110. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5111. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  5112. IPPAPI(IppStatus, ippiFilterMinBorder_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  5113. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5114. IppiBorderType borderType, const Ipp32f pBorderValue[3], Ipp8u* pBuffer))
  5115. IPPAPI(IppStatus, ippiFilterMinBorder_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  5116. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiSize maskSize,
  5117. IppiBorderType borderType, const Ipp32f pBorderValue[4], Ipp8u* pBuffer))
  5118. /* /////////////////////////////////////////////////////////////////////////////
  5119. // Bilateral filter function
  5120. */
  5121. /* /////////////////////////////////////////////////////////////////////////////
  5122. // Bilateral filter functions with Border
  5123. // /////////////////////////////////////////////////////////////////////////////
  5124. // Name: ippiFilterBilateralBorderGetBufferSize
  5125. // Purpose: to define buffer size for bilateral filter
  5126. // Parameters:
  5127. // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss.
  5128. // dstRoiSize Roi size (in pixels) of destination image what will be applied
  5129. // for processing.
  5130. // radius Radius of circular neighborhood what defines pixels for calculation.
  5131. // dataType Data type of the source and desination images. Possible values
  5132. // are ipp8u and ipp32f.
  5133. // numChannels Number of channels in the images. Possible values are 1 and 3.
  5134. // distMethod The type of method for definition of distance beetween pixel untensity.
  5135. // Possible value is ippDistNormL1.
  5136. // pSpecSize Pointer to the size (in bytes) of the spec.
  5137. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  5138. // Return:
  5139. // ippStsNoErr OK
  5140. // ippStsNullPtrErr any pointer is NULL
  5141. // ippStsSizeErr size of dstRoiSize is less or equal 0
  5142. // ippStsMaskSizeErr radius is less or equal 0
  5143. // ippStsNotSupportedModeErr filter or distMethod is not supported
  5144. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  5145. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  5146. */
  5147. IPPAPI(IppStatus,ippiFilterBilateralBorderGetBufferSize,
  5148. (IppiFilterBilateralType filter, IppiSize dstRoiSize,
  5149. int radius, IppDataType dataType, int numChannels,
  5150. IppiDistanceMethodType distMethodType, int *pSpecSize, int *pBufferSize))
  5151. /* /////////////////////////////////////////////////////////////////////////////
  5152. // Name: ippiFilterBilateralBorderInit
  5153. // Purpose: initialization of Spec for bilateral filter with border
  5154. // Parameters:
  5155. // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss.
  5156. // dstRoiSize Roi size (in pixels) of destination image what will be applied
  5157. // for processing.
  5158. // radius Radius of circular neighborhood what defines pixels for calculation.
  5159. // dataType Data type of the source and desination images. Possible values
  5160. // are ipp8u and ipp32f.
  5161. // numChannels Number of channels in the images. Possible values are 1 and 3.
  5162. // distMethodType The type of method for definition of distance beetween pixel intensity.
  5163. // Possible value is ippDistNormL1.
  5164. // valSquareSigma square of Sigma for factor function for pixel intensity
  5165. // posSquareSigma square of Sigma for factor function for pixel position
  5166. // pSpec pointer to Spec
  5167. // Return:
  5168. // ippStsNoErr OK
  5169. // ippStsNullPtrErr pointer ro Spec is NULL
  5170. // ippStsSizeErr size of dstRoiSize is less or equal 0
  5171. // ippStsMaskSizeErr radius is less or equal 0
  5172. // ippStsNotSupportedModeErr filter or distMethod is not supported
  5173. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  5174. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  5175. // ippStsBadArgErr valSquareSigma or posSquareSigma is less or equal 0
  5176. */
  5177. IPPAPI(IppStatus,ippiFilterBilateralBorderInit,
  5178. (IppiFilterBilateralType filter, IppiSize dstRoiSize,
  5179. int radius, IppDataType dataType, int numChannels,
  5180. IppiDistanceMethodType distMethod, Ipp32f valSquareSigma,
  5181. Ipp32f posSquareSigma, IppiFilterBilateralSpec *pSpec))
  5182. /* /////////////////////////////////////////////////////////////////////////////
  5183. // Name: ippiFilterBilateralBorder_8u_C1R
  5184. // ippiFilterBilateralBorder_8u_C3R
  5185. // ippiFilterBilateralBorder_32f_C1R
  5186. // ippiFilterBilateralBorder_32f_C3R
  5187. // Purpose: bilateral filter
  5188. // Parameters:
  5189. // pSrc Pointer to the source image
  5190. // srcStep Step through the source image
  5191. // pDst Pointer to the destination image
  5192. // dstStep Step through the destination image
  5193. // dstRoiSize Size of the destination ROI
  5194. // borderType Type of border.
  5195. // borderValue Pointer to constant value to assign to pixels of the constant border. This parameter is applicable
  5196. // only to the ippBorderConst border type. If this pointer is NULL than the constant value is equal 0.
  5197. // pSpec Pointer to filter spec
  5198. // pBuffer Pointer ro work buffer
  5199. // Return:
  5200. // ippStsNoErr OK
  5201. // ippStsNullPtrErr pointer to Src, Dst, Spec or Buffer is NULL
  5202. // ippStsSizeErr size of dstRoiSize is less or equal 0
  5203. // ippStsContextMatchErr filter Spec is not match
  5204. // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4
  5205. // for floating-point images.
  5206. // ippStsBorderErr Indicates an error when borderType has illegal value.
  5207. */
  5208. IPPAPI(IppStatus,ippiFilterBilateralBorder_8u_C1R,(const Ipp8u *pSrc, int srcStep,
  5209. Ipp8u *pDst, int dstStep, IppiSize dstRoiSize,
  5210. IppiBorderType borderType, Ipp8u *pBorderValue, IppiFilterBilateralSpec *pSpec,
  5211. Ipp8u* pBuffer))
  5212. IPPAPI(IppStatus,ippiFilterBilateralBorder_8u_C3R,(const Ipp8u *pSrc, int srcStep,
  5213. Ipp8u *pDst, int dstStep, IppiSize dstRoiSize,
  5214. IppiBorderType borderType, Ipp8u *pBorderValue, IppiFilterBilateralSpec *pSpec,
  5215. Ipp8u* pBuffer))
  5216. IPPAPI(IppStatus,ippiFilterBilateralBorder_32f_C1R,(const Ipp32f *pSrc, int srcStep,
  5217. Ipp32f *pDst, int dstStep, IppiSize dstRoiSize,
  5218. IppiBorderType borderType, Ipp32f *pBorderValue, IppiFilterBilateralSpec *pSpec,
  5219. Ipp8u* pBuffer))
  5220. IPPAPI(IppStatus,ippiFilterBilateralBorder_32f_C3R,(const Ipp32f *pSrc, int srcStep,
  5221. Ipp32f *pDst, int dstStep, IppiSize dstRoiSize,
  5222. IppiBorderType borderType, Ipp32f *pBorderValue, IppiFilterBilateralSpec *pSpec,
  5223. Ipp8u* pBuffer))
  5224. /* ////////////////////////////////////////////////////////////////////////////
  5225. // Names: ippiLUTPalette
  5226. // Purpose: intensity transformation of image using the palette lookup table pTable
  5227. // Parameters:
  5228. // pSrc pointer to the source image
  5229. // srcStep line offset in input data in bytes
  5230. // alphaValue constant alpha channel
  5231. // pDst pointer to the destination image
  5232. // dstStep line offset in output data in bytes
  5233. // roiSize size of source ROI in pixels
  5234. // pTable pointer to palette table of size 2^nBitSize or
  5235. // array of pointers to each channel
  5236. // nBitSize number of valid bits in the source image
  5237. // (range [1,8] for 8u source images and range [1,16] for 16u source images)
  5238. // Returns:
  5239. // ippStsNoErr no errors
  5240. // ippStsNullPtrErr pSrc == NULL or pDst == NULL or pTable == NULL
  5241. // ippStsSizeErr width or height of ROI is less or equal zero
  5242. // ippStsOutOfRangeErr nBitSize is out of range
  5243. // Notes:
  5244. */
  5245. IPPAPI(IppStatus, ippiLUTPalette_8u_C3R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  5246. IppiSize roiSize, const Ipp8u* const pTable[3], int nBitSize))
  5247. IPPAPI(IppStatus, ippiLUTPalette_8u_C4R, (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst, int dstStep,
  5248. IppiSize roiSize, const Ipp8u* const pTable[4], int nBitSize))
  5249. /* =============================================================================
  5250. ippCV
  5251. ============================================================================= */
  5252. /* ///////////////////////////////////////////////////////////////////////////////////////
  5253. // Name: ippcvGetLibVersion
  5254. //
  5255. // Purpose: getting of the library version
  5256. //
  5257. // Returns: the structure of information about version of ippcv library
  5258. //
  5259. // Parameters:
  5260. //
  5261. // Notes: not necessary to release the returned structure
  5262. */
  5263. IPPAPI( const IppLibraryVersion*, ippcvGetLibVersion, (void) )
  5264. /****************************************************************************************\
  5265. * Fixed Filters *
  5266. \****************************************************************************************/
  5267. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  5268. // Name: ippiFilterSobelCrossGetBufferSize_8u16s_C1R, ippiFilterLaplacianGetBufferSize_8u16s_C1R,
  5269. // ippiFilterLowpassGetBufferSize_8u_C1R, ippiFilterSobelCrossGetBufferSize_32f_C1R,
  5270. // ippiFilterLaplacianGetBufferSize_32f_C1R, ippiFilterLowpassGetBufferSize_32f_C1R
  5271. //
  5272. //
  5273. // Purpose: Perform convolution operation with fixed kernels 3x3 and 5x5
  5274. //
  5275. // Return:
  5276. // ippStsNoErr Ok
  5277. // ippStsNullPtrErr One of pointers is NULL
  5278. // ippStsSizeErr The width of the image is less or equal zero
  5279. // ippStsMaskSizeErr Wrong mask size
  5280. //
  5281. // Parameters:
  5282. // roiSize The image ROI size
  5283. // mask The mask size
  5284. // pBufferSize The pointer to the buffer size
  5285. */
  5286. IPPAPI(IppStatus, ippiFilterLaplacianGetBufferSize_8u16s_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  5287. IPPAPI(IppStatus, ippiFilterLaplacianGetBufferSize_32f_C1R, (IppiSize roiSize, IppiMaskSize mask, int* pBufferSize))
  5288. /*F///////////////////////////////////////////////////////////////////////////////////////
  5289. // Name: ippiFilterSobelCrossBorder_8u16s_C1R, ippiFilterLaplacianBorder_8u16s_C1R
  5290. // ippiFilterLowpassBorder_8u_C1R, ippiFilterSobelCrossBorder_32f_C1R
  5291. // ippiFilterLowpassBorder_32f_C1R, ippiFilterLaplacianBorder_32f_C1R
  5292. //
  5293. // Purpose: Perform convolution operation with fixed kernels 3x3 and 5x5
  5294. //
  5295. // Return:
  5296. // ippStsNoErr Ok
  5297. // ippStsNullPtrErr One of pointers is NULL
  5298. // ippStsSizeErr The width or height of images is less or equal zero
  5299. // ippStsStepErr The steps in images are too small
  5300. // ippStsNotEvenStepErr Step is not multiple of element.
  5301. // ippStsMaskSizeErr Wrong mask size
  5302. // ippStsBadArgErr Wrong border type or zero divisor
  5303. //
  5304. // Parameters:
  5305. // pSrc The pointer to the source image
  5306. // srcStep The step in the source image
  5307. // pDst The pointer to the destination image
  5308. // dstStep The step in the destination image
  5309. // roiSize The image ROI size
  5310. // mask The mask size
  5311. // borderType The type of the border
  5312. // borderValue The value for the constant border
  5313. // pBuffer The pointer to the working buffer
  5314. // divisor The value to divide output pixels by , (for integer functions)
  5315. //F*/
  5316. IPPAPI(IppStatus, ippiFilterLaplacianBorder_8u16s_C1R, (const Ipp8u* pSrc, int srcStep,
  5317. Ipp16s* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  5318. IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  5319. IPPAPI(IppStatus, ippiFilterLaplacianBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  5320. Ipp32f* pDst, int dstStep, IppiSize roiSize, IppiMaskSize mask,
  5321. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  5322. /****************************************************************************************\
  5323. * Separable Filters *
  5324. \****************************************************************************************/
  5325. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  5326. // Name: ippiFilterRowBorderPipelineGetBufferSize_8u16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_8u16s_C3R
  5327. // ippiFilterRowBorderPipelineGetBufferSize_16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_16s_C3R
  5328. // ippiFilterRowBorderPipelineGetBufferSize_16u_C1R, ippiFilterRowBorderPipelineGetBufferSize_16u_C3R
  5329. // ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C1R, ippiFilterRowBorderPipelineGetBufferSize_Low_16s_C3R
  5330. // ippiFilterRowBorderPipelineGetBufferSize_32f_C1R, ippiFilterRowBorderPipelineGetBufferSize_32f_C3R
  5331. //
  5332. // Purpose: Get size of external buffer.
  5333. //
  5334. // Return:
  5335. // ippStsNoErr Ok
  5336. // ippStsNullPtrErr One of pointers is NULL
  5337. // ippStsSizeErr The width of the image or kernel size are less or equal zero
  5338. //
  5339. // Parameters:
  5340. // roiSize The image ROI size
  5341. // kernelSize The size of the kernel
  5342. // pBufferSize The pointer to the buffer size
  5343. */
  5344. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_32f_C1R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  5345. IPPAPI(IppStatus, ippiFilterRowBorderPipelineGetBufferSize_32f_C3R, (IppiSize roiSize, int kernelSize, int* pBufferSize))
  5346. /*F///////////////////////////////////////////////////////////////////////////////////////////
  5347. // Name: ippiFilterRowBorderPipeline_8u16s_C1R, ippiFilterRowBorderPipeline_8u16s_C3R
  5348. // ippiFilterRowBorderPipeline_16s_C1R, ippiFilterRowBorderPipeline_16s_C3R
  5349. // ippiFilterRowBorderPipeline_16u_C1R, ippiFilterRowBorderPipeline_16u_C3R
  5350. // ippiFilterRowBorderPipeline_Low_16s_C1R, ippiFilterRowBorderPipeline_Low_16s_C3R
  5351. // ippiFilterRowBorderPipeline_32f_C1R, ippiFilterRowBorderPipeline_32f_C3R
  5352. //
  5353. // Purpose: Convolves source image rows with the row kernel
  5354. //
  5355. // Return:
  5356. // ippStsNoErr Ok
  5357. // ippStsNullPtrErr One of pointers is NULL
  5358. // ippStsSizeErr The width or height of images is less or equal zero
  5359. // ippStsStepErr The steps in images are too small
  5360. // ippStsNotEvenStepErr Step is not multiple of element.
  5361. // ippStsAnchorErr The anchor outside the kernel
  5362. // ippStsBadArgErr Wrong border type or zero divisor
  5363. //
  5364. // Parameters:
  5365. // pSrc The pointer to the source image
  5366. // srcStep The step in the source image
  5367. // ppDst The double pointer to the destination image
  5368. // roiSize The image ROI size
  5369. // pKernel The pointer to the kernel
  5370. // kernelSize The size of the kernel
  5371. // xAnchor The anchor value , (0<=xAnchor<kernelSize)
  5372. // borderType The type of the border
  5373. // borderValue The value for the constant border
  5374. // divisor The value to divide output pixels by , (for integer functions)
  5375. // pBuffer The pointer to the working buffer
  5376. // Notes: The output is the doulble pointer to support the circle buffer
  5377. //F*/
  5378. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst,
  5379. IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor,
  5380. IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  5381. IPPAPI(IppStatus, ippiFilterRowBorderPipeline_32f_C3R, (const Ipp32f* pSrc, int srcStep, Ipp32f** ppDst,
  5382. IppiSize roiSize, const Ipp32f* pKernel, int kernelSize, int xAnchor,
  5383. IppiBorderType borderType, Ipp32f borderValue[3], Ipp8u* pBuffer))
  5384. /* ///////////////////////////////////////////////////////////////////////////////////////
  5385. // Name: ippiAdd_8u32f_C1IR, ippiAdd_8s32f_C1IR,
  5386. // ippiAdd_16u32f_C1IR,
  5387. // ippiAdd_8u32f_C1IMR, ippiAdd_8s32f_C1IMR,
  5388. // ippiAdd_16u32f_C1IMR, ippiAdd_32f_C1IMR
  5389. //
  5390. // Purpose: Add image to accumulator.
  5391. //
  5392. // Return:
  5393. // ippStsNoErr Ok
  5394. // ippStsNullPtrErr One of pointers is NULL
  5395. // ippStsSizeErr The width or height of images is less or equal zero
  5396. // ippStsStepErr Step is too small to fit image.
  5397. // ippStsNotEvenStepErr Step is not multiple of element.
  5398. //
  5399. // Arguments:
  5400. // pSrc Pointer to source image
  5401. // srcStep Step in the source image
  5402. // pMask Pointer to mask
  5403. // maskStep Step in the mask image
  5404. // pSrcDst Pointer to accumulator image
  5405. // srcDstStep Step in the accumulator image
  5406. // roiSize Image size
  5407. */
  5408. IPPAPI(IppStatus, ippiAdd_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  5409. Ipp32f* pSrcDst, int srcDstStep,
  5410. IppiSize roiSize ))
  5411. IPPAPI(IppStatus, ippiAdd_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  5412. Ipp32f* pSrcDst, int srcDstStep,
  5413. IppiSize roiSize ))
  5414. IPPAPI(IppStatus, ippiAdd_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  5415. const Ipp8u* pMask, int maskStep,
  5416. Ipp32f* pSrcDst, int srcDstStep,
  5417. IppiSize roiSize ))
  5418. IPPAPI(IppStatus, ippiAdd_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  5419. const Ipp8u* pMask, int maskStep,
  5420. Ipp32f* pSrcDst, int srcDstStep,
  5421. IppiSize roiSize ))
  5422. IPPAPI(IppStatus, ippiAdd_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  5423. const Ipp8u* pMask, int maskStep,
  5424. Ipp32f* pSrcDst, int srcDstStep,
  5425. IppiSize roiSize ))
  5426. /* ///////////////////////////////////////////////////////////////////////////////////////
  5427. // Name: ippiAddSquare_8u32f_C1IR, ippiAddSquare_8s32f_C1IR,
  5428. // ippiAddSquare_16u32f_C1IR, ippiAddSquare_32f_C1IR,
  5429. // ippiAddSquare_8u32f_C1IMR, ippiAddSquare_8s32f_C1IMR,
  5430. // ippiAddSquare_16u32f_C1IMR, ippiAddSquare_32f_C1IMR
  5431. //
  5432. // Purpose: Add squared image (i.e. multiplied by itself) to accumulator.
  5433. //
  5434. // Return:
  5435. // ippStsNoErr Ok
  5436. // ippStsNullPtrErr One of pointers is NULL
  5437. // ippStsSizeErr The width or height of images is less or equal zero
  5438. // ippStsStepErr Step is too small to fit image.
  5439. // ippStsNotEvenStepErr Step is not multiple of element.
  5440. //
  5441. // Arguments:
  5442. // pSrc Pointer to source image
  5443. // srcStep Step in the source image
  5444. // pMask Pointer to mask
  5445. // maskStep Step in the mask image
  5446. // pSrcDst Pointer to accumulator image
  5447. // srcDstStep Step in the accumulator image
  5448. // roiSize Image size
  5449. */
  5450. IPPAPI(IppStatus, ippiAddSquare_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  5451. Ipp32f* pSrcDst, int srcDstStep,
  5452. IppiSize roiSize ))
  5453. IPPAPI(IppStatus, ippiAddSquare_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  5454. Ipp32f* pSrcDst, int srcDstStep,
  5455. IppiSize roiSize ))
  5456. IPPAPI(IppStatus, ippiAddSquare_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  5457. Ipp32f* pSrcDst, int srcDstStep,
  5458. IppiSize roiSize ))
  5459. IPPAPI(IppStatus, ippiAddSquare_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  5460. const Ipp8u* pMask, int maskStep,
  5461. Ipp32f* pSrcDst, int srcDstStep,
  5462. IppiSize roiSize ))
  5463. IPPAPI(IppStatus, ippiAddSquare_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  5464. const Ipp8u* pMask, int maskStep,
  5465. Ipp32f* pSrcDst, int srcDstStep,
  5466. IppiSize roiSize ))
  5467. IPPAPI(IppStatus, ippiAddSquare_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  5468. const Ipp8u* pMask, int maskStep,
  5469. Ipp32f* pSrcDst, int srcDstStep,
  5470. IppiSize roiSize ))
  5471. /* ///////////////////////////////////////////////////////////////////////////////////////
  5472. // Name: ippiAddProduct_8u32f_C1IR, ippiAddProduct_8s32f_C1IR,
  5473. // ippiAddProduct_16u32f_C1IR, ippiAddProduct_32f_C1IR,
  5474. // ippiAddProduct_8u32f_C1IMR, ippiAddProduct_8s32f_C1IMR,
  5475. // ippiAddProduct_16u32f_C1IMR, ippiAddProduct_32f_C1IMR
  5476. //
  5477. // Purpose: Add product of two images to accumulator.
  5478. //
  5479. // Return:
  5480. // ippStsNoErr Ok
  5481. // ippStsNullPtrErr One of pointers is NULL
  5482. // ippStsSizeErr The width or height of images is less or equal zero
  5483. // ippStsStepErr Step is too small to fit image.
  5484. // ippStsNotEvenStepErr Step is not multiple of element.
  5485. //
  5486. // Arguments:
  5487. // pSrc1 Pointer to first source image
  5488. // src1Step Step in the first source image
  5489. // pSrc2 Pointer to second source image
  5490. // src2Step Step in the second source image
  5491. // pMask Pointer to mask
  5492. // maskStep Step in the mask image
  5493. // pSrcDst Pointer to accumulator image
  5494. // srcDstStep Step in the accumulator image
  5495. // roiSize Image size
  5496. */
  5497. IPPAPI(IppStatus, ippiAddProduct_8u32f_C1IR, (const Ipp8u* pSrc1, int src1Step,
  5498. const Ipp8u* pSrc2, int src2Step,
  5499. Ipp32f* pSrcDst, int srcDstStep,
  5500. IppiSize roiSize ))
  5501. IPPAPI(IppStatus, ippiAddProduct_16u32f_C1IR, (const Ipp16u* pSrc1, int src1Step,
  5502. const Ipp16u* pSrc2, int src2Step,
  5503. Ipp32f* pSrcDst, int srcDstStep,
  5504. IppiSize roiSize ))
  5505. IPPAPI(IppStatus, ippiAddProduct_32f_C1IR, (const Ipp32f* pSrc1, int src1Step,
  5506. const Ipp32f* pSrc2, int src2Step,
  5507. Ipp32f* pSrcDst, int srcDstStep,
  5508. IppiSize roiSize ))
  5509. IPPAPI(IppStatus, ippiAddProduct_8u32f_C1IMR,(const Ipp8u* pSrc1, int src1Step,
  5510. const Ipp8u* pSrc2, int src2Step,
  5511. const Ipp8u* pMask, int maskStep,
  5512. Ipp32f* pSrcDst, int srcDstStep,
  5513. IppiSize roiSize ))
  5514. IPPAPI(IppStatus, ippiAddProduct_16u32f_C1IMR,(const Ipp16u* pSrc1, int src1Step,
  5515. const Ipp16u* pSrc2, int src2Step,
  5516. const Ipp8u* pMask, int maskStep,
  5517. Ipp32f* pSrcDst, int srcDstStep,
  5518. IppiSize roiSize ))
  5519. IPPAPI(IppStatus, ippiAddProduct_32f_C1IMR, (const Ipp32f* pSrc1, int src1Step,
  5520. const Ipp32f* pSrc2, int src2Step,
  5521. const Ipp8u* pMask, int maskStep,
  5522. Ipp32f* pSrcDst, int srcDstStep,
  5523. IppiSize roiSize ))
  5524. /* ///////////////////////////////////////////////////////////////////////////////////////
  5525. // Name: ippiAddWeighted_8u32f_C1IR, ippiAddWeighted_8s32f_C1IR,
  5526. // ippiAddWeighted_16u32f_C1IR, ippiAddWeighted_32f_C1IR,
  5527. // ippiAddWeighted_8u32f_C1IMR, ippiAddWeighted_8s32f_C1IMR,
  5528. // ippiAddWeighted_16u32f_C1IMR,ippiAddWeighted_32f_C1IMR
  5529. // ippiAddWeighted_32f_C1R
  5530. //
  5531. // Purpose: Add image, multiplied by alpha, to accumulator, multiplied by (1 - alpha).
  5532. //
  5533. // Return:
  5534. // ippStsNoErr Ok
  5535. // ippStsNullPtrErr One of pointers is NULL
  5536. // ippStsSizeErr The width or height of images is less or equal zero
  5537. // ippStsStepErr Step is too small to fit image.
  5538. // ippStsNotEvenStepErr Step is not multiple of element.
  5539. //
  5540. // Arguments:
  5541. // pSrc1 Pointer to first source image
  5542. // src1Step Step in the first source image
  5543. // pSrc2 Pointer to second source image
  5544. // src2Step Step in the second source image
  5545. // pMask Pointer to mask
  5546. // maskStep Step in the mask image
  5547. // pSrcDst Pointer to accumulator image
  5548. // srcDstStep Step in the accumulator image
  5549. // pDst Pointer to destination image
  5550. // dstStep Step in the destination image
  5551. // roiSize Image size
  5552. // alpha Weight of source image
  5553. */
  5554. IPPAPI(IppStatus, ippiAddWeighted_8u32f_C1IR, (const Ipp8u* pSrc, int srcStep,
  5555. Ipp32f* pSrcDst, int srcDstStep,
  5556. IppiSize roiSize, Ipp32f alpha ))
  5557. IPPAPI(IppStatus, ippiAddWeighted_16u32f_C1IR, (const Ipp16u* pSrc, int srcStep,
  5558. Ipp32f* pSrcDst, int srcDstStep,
  5559. IppiSize roiSize, Ipp32f alpha ))
  5560. IPPAPI(IppStatus, ippiAddWeighted_32f_C1IR, (const Ipp32f* pSrc, int srcStep,
  5561. Ipp32f* pSrcDst, int srcDstStep,
  5562. IppiSize roiSize, Ipp32f alpha ))
  5563. IPPAPI(IppStatus, ippiAddWeighted_8u32f_C1IMR,(const Ipp8u* pSrc, int srcStep,
  5564. const Ipp8u* pMask, int maskStep,
  5565. Ipp32f* pSrcDst, int srcDstStep,
  5566. IppiSize roiSize, Ipp32f alpha ))
  5567. IPPAPI(IppStatus, ippiAddWeighted_16u32f_C1IMR,(const Ipp16u* pSrc, int srcStep,
  5568. const Ipp8u* pMask, int maskStep,
  5569. Ipp32f* pSrcDst, int srcDstStep,
  5570. IppiSize roiSize, Ipp32f alpha ))
  5571. IPPAPI(IppStatus, ippiAddWeighted_32f_C1IMR, (const Ipp32f* pSrc, int srcStep,
  5572. const Ipp8u* pMask, int maskStep,
  5573. Ipp32f* pSrcDst, int srcDstStep,
  5574. IppiSize roiSize, Ipp32f alpha ))
  5575. /*F////////////////////////////////////////////////////////////////////////////////////////////////
  5576. // Name: ippiCopySubpixIntersect_8u_C1R, ippiCopySubpixIntersect_16u_C1R,
  5577. // ippiCopySubpixIntersect_8u16u_C1R_Sfs, ippiCopySubpixIntersect_16u32f_C1R,
  5578. // ippiCopySubpixIntersect_8u32f_C1R, ippiCopySubpixIntersect_32f_C1R
  5579. //
  5580. // Purpose: finds intersection of centered window in the source image and copies
  5581. // in to destination image with the border
  5582. // border pixel are taken from the source image or replicated if they are outside it
  5583. //
  5584. // Returns:
  5585. // ippStsNoErr Ok
  5586. // ippStsNullPtrErr One of pointers is NULL
  5587. // ippStsSizeErr The width or height of images is less or equal zero
  5588. // ippStsStepErr The steps in images are too small
  5589. // ippStsNotEvenStepErr Step is not multiple of element.
  5590. //
  5591. // Parameters:
  5592. // pSrc Pointer to source image
  5593. // srcStep Step in source image
  5594. // srcRoiSize Source image ROI size.
  5595. // pDst Pointer to destination image
  5596. // dstStep Step in destination image
  5597. // dstRoiSize Destination image ROI size.
  5598. // point Center of dst window in src image (subpixel)
  5599. // pMin Top left corner of dst filled part
  5600. // pMax Bottom right corner of dst filled part
  5601. // scaleFactor Output scale factor, >= 0
  5602. //
  5603. // Notes: For integer point.x or point.y pixels from the last row
  5604. // or column are not copied. Branches are possible.
  5605. //F*/
  5606. IPPAPI(IppStatus, ippiCopySubpixIntersect_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  5607. IppiSize srcRoiSize, Ipp8u* pDst, int dstStep, IppiSize dstRoiSize,
  5608. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  5609. IPPAPI(IppStatus, ippiCopySubpixIntersect_8u32f_C1R, (const Ipp8u* pSrc, int srcStep,
  5610. IppiSize srcRoiSize, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  5611. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  5612. IPPAPI(IppStatus, ippiCopySubpixIntersect_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  5613. IppiSize srcRoiSize, Ipp32f* pDst, int dstStep, IppiSize dstRoiSize,
  5614. IppiPoint_32f point, IppiPoint *pMin, IppiPoint *pMax))
  5615. /****************************************************************************************\
  5616. * Universal Pyramids *
  5617. \****************************************************************************************/
  5618. /* ///////////////////////////////////////////////////////////////////////////////////////
  5619. // Name: ippiPyramidGetSize
  5620. //
  5621. // Purpose: Computes the size of the structure for pyramids and the size
  5622. // of the required work buffer (in bytes)
  5623. //
  5624. // Arguments:
  5625. // pPyrSize Pointer to the size value of pyramid structure
  5626. // pSizeBuf Pointer to the size value of the pyramid external work buffer
  5627. // level Maximal number pyramid level.
  5628. // roiSize Zero level image ROI size.
  5629. // rate Neighbour levels ratio (1<rate<=10)
  5630. //
  5631. // Return:
  5632. // ippStsNoErr Ok
  5633. // ippStsNullPtrErr One of pointers is NULL
  5634. // ippStsSizeErr roiSize has a field with zero or negative value.
  5635. // ippStsBadArgErr level is equal to or less than 0 or if rate has wrong value.
  5636. */
  5637. IPPAPI( IppStatus, ippiPyramidGetSize,(int* pPyrSize, int* pBufSize, int level, IppiSize roiSize, Ipp32f rate))
  5638. /* ///////////////////////////////////////////////////////////////////////////////////////
  5639. // Name: ippiPyramidInit
  5640. //
  5641. // Purpose: Initializes structure for pyramids, calculates ROI for layers.
  5642. //
  5643. // Arguments:
  5644. // pPyr Pointer to the pointer to the pyramid structure.
  5645. // level Maximal number pyramid level.
  5646. // roiSize Zero level image ROI size.
  5647. // rate Neighbour levels ratio (1<rate<=10).
  5648. // pPyrBuffer Pointer to the buffer to initialize structure for pyramids.
  5649. // pBuffer Pointer to the work buffer.
  5650. //
  5651. // Return:
  5652. // ippStsNoErr Ok
  5653. // ippStsNullPtrErr One of pointers is NULL
  5654. // ippStsSizeErr roiSize has a field with zero or negative value.
  5655. // ippStsBadArgErr level is equal to or less than 0 or if rate has wrong value.
  5656. */
  5657. IPPAPI( IppStatus, ippiPyramidInit,( IppiPyramid** pPyr, int level, IppiSize roiSize, Ipp32f rate, Ipp8u* pPyrBuffer, Ipp8u* pBuffer))
  5658. /* ///////////////////////////////////////////////////////////////////////////////////////
  5659. // Name: ippiPyramidLayerDownGetSize_8u_C1R, ippiPyramidLayerDownGetSize_8u_C3R
  5660. // ippiPyramidLayerDownGetSize_16u_C1R, ippiPyramidLayerDownGetSize_16u_C3R
  5661. // ippiPyramidLayerDownGetSize_32f_C1R, ippiPyramidLayerDownGetSize_32f_C3R
  5662. // ippiPyramidLayerUpGetSize_8u_C1R, ippiPyramidLayerUpGetSize_8u_C3R
  5663. // ippiPyramidLayerUpGetSize_16u_C1R, ippiPyramidLayerUpGetSize_16u_C3R
  5664. // ippiPyramidLayerUpGetSizec_32f_C1R, ippiPyramidLayerUpGetSize_32f_C3R
  5665. //
  5666. // Purpose: Calculates the size of structure for creating a lower(an upper) pyramid layer and the size
  5667. // of the temporary buffer (in bytes).
  5668. //
  5669. // Arguments:
  5670. // srcRoi Source image ROI size.
  5671. // dstRoi Destination image ROI size.
  5672. // rate Neighbour levels ratio (1<rate<=10)
  5673. // kerSize Kernel size
  5674. // pStateSize Pointer to the size value of pyramid state structure.
  5675. // pBufSize Pointer to the size value of the external work buffer.
  5676. //
  5677. // Return:
  5678. // ippStsNoErr Ok
  5679. // ippStsNullPtrErr One of pointers is NULL
  5680. // ippStsSizeErr The width or height of images is less or equal zero
  5681. // ippStsBadArgErr Bad rate or kernel size
  5682. //
  5683. */
  5684. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_8u_C1R, (IppiSize srcRoi, Ipp32f rate, int kerSize,
  5685. int* pStateSize, int* pBufSize))
  5686. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_16u_C1R,(IppiSize srcRoi, Ipp32f rate, int kerSize,
  5687. int* pStateSize, int* pBufSize))
  5688. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_32f_C1R,(IppiSize srcRoi, Ipp32f rate, int kerSize,
  5689. int* pStateSize, int* pBufSize))
  5690. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_8u_C3R, (IppiSize srcRoi, Ipp32f rate, int kerSize,
  5691. int* pStateSize, int* pBufSize))
  5692. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_16u_C3R,(IppiSize srcRoi, Ipp32f rate, int kerSize,
  5693. int* pStateSize, int* pBufSize))
  5694. IPPAPI(IppStatus, ippiPyramidLayerDownGetSize_32f_C3R,(IppiSize srcRoi, Ipp32f rate, int kerSize,
  5695. int* pStateSize, int* pBufSize))
  5696. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_8u_C1R, (IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5697. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_16u_C1R,(IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5698. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_32f_C1R,(IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5699. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_8u_C3R, (IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5700. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_16u_C3R,(IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5701. IPPAPI(IppStatus, ippiPyramidLayerUpGetSize_32f_C3R,(IppiSize dstRoi, Ipp32f rate, int kerSize, int* pStateSize))
  5702. /* ///////////////////////////////////////////////////////////////////////////////////////
  5703. // Name: ippiPyramidLayerDownInit_8u_C1R, ippiPyramidLayerDownInit_8u_C3R
  5704. // ippiPyramidLayerDownInit_16u_C1R, ippiPyramidLayerDownInit_16u_C3R
  5705. // ippiPyramidLayerDownInit_32f_C1R, ippiPyramidLayerDownInit_32f_C3R
  5706. // ippiPyramidLayerUpInit_8u_C1R, ippiPyramidLayerUpInit_8u_C3R
  5707. // ippiPyramidLayerUpInit_16u_C1R, ippiPyramidLayerUpInit_16u_C3R
  5708. // ippiPyramidLayerUpInit_32f_C1R, ippiPyramidLayerUpInit_32f_C3R
  5709. //
  5710. // Purpose: Initializesa structure for creating a lower(an upper) pyramid layer.
  5711. //
  5712. // Arguments:
  5713. // ppState Pointer to the pointer to initialized pyramid state structure
  5714. // srcRoi Source image ROI size.
  5715. // dstRoi Destination image ROI size.
  5716. // rate Neighbour levels ratio (1<rate<=10)
  5717. // pKernel Separable symmetric kernel of odd length
  5718. // kerSize Kernel size
  5719. // mode IPPI_INTER_LINEAR - bilinear interpolation
  5720. // StateBuf Pointer to the buffer to initialize state structure for pyramids.
  5721. // pBuffer Pointer to the work buffer.
  5722. //
  5723. // Return:
  5724. // ippStsNoErr Ok
  5725. // ippStsNullPtrErr One of pointers is NULL
  5726. // ippStsSizeErr The width or height of images is less or equal zero
  5727. // ippStsBadArgErr Bad mode, rate or kernel size
  5728. */
  5729. IPPAPI(IppStatus, ippiPyramidLayerDownInit_8u_C1R, (IppiPyramidDownState_8u_C1R** ppState, IppiSize srcRoi,
  5730. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5731. IPPAPI(IppStatus, ippiPyramidLayerDownInit_16u_C1R,(IppiPyramidDownState_16u_C1R** ppState, IppiSize srcRoi,
  5732. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5733. IPPAPI(IppStatus, ippiPyramidLayerDownInit_32f_C1R,(IppiPyramidDownState_32f_C1R** pState, IppiSize srcRoi,
  5734. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5735. IPPAPI(IppStatus, ippiPyramidLayerDownInit_8u_C3R, (IppiPyramidDownState_8u_C3R** ppState, IppiSize srcRoi,
  5736. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5737. IPPAPI(IppStatus, ippiPyramidLayerDownInit_16u_C3R,(IppiPyramidDownState_16u_C3R** ppState, IppiSize srcRoi,
  5738. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5739. IPPAPI(IppStatus, ippiPyramidLayerDownInit_32f_C3R,(IppiPyramidDownState_32f_C3R** ppState, IppiSize srcRoi,
  5740. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode, Ipp8u* StateBuf, Ipp8u* Buffer))
  5741. IPPAPI(IppStatus, ippiPyramidLayerUpInit_8u_C1R, (IppiPyramidUpState_8u_C1R** ppState, IppiSize dstRoi,
  5742. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5743. IPPAPI(IppStatus, ippiPyramidLayerUpInit_16u_C1R,(IppiPyramidUpState_16u_C1R** ppState, IppiSize dstRoi,
  5744. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5745. IPPAPI(IppStatus, ippiPyramidLayerUpInit_32f_C1R,(IppiPyramidUpState_32f_C1R** ppState, IppiSize dstRoi,
  5746. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5747. IPPAPI(IppStatus, ippiPyramidLayerUpInit_8u_C3R, (IppiPyramidUpState_8u_C3R** ppState, IppiSize dstRoi,
  5748. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5749. IPPAPI(IppStatus, ippiPyramidLayerUpInit_16u_C3R,(IppiPyramidUpState_16u_C3R** ppState, IppiSize dstRoi,
  5750. Ipp32f rate, Ipp16s* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5751. IPPAPI(IppStatus, ippiPyramidLayerUpInit_32f_C3R,(IppiPyramidUpState_32f_C3R** ppState, IppiSize dstRoi,
  5752. Ipp32f rate, Ipp32f* pKernel, int kerSize, int mode, Ipp8u* StateBuf))
  5753. /* ///////////////////////////////////////////////////////////////////////////////////////
  5754. // Name: ippiGetPyramidDownROI, ippiGetPyramidUpROI
  5755. //
  5756. // Purpose: Calculate possible size of destination ROI.
  5757. //
  5758. // Return:
  5759. // ippStsNoErr Ok
  5760. // ippStsNullPtrErr One of pointers is NULL
  5761. // ippStsSizeErr Wrong src roi
  5762. // ippStsBadArgErr Wrong rate
  5763. //
  5764. // Arguments:
  5765. // srcRoi Source image ROI size.
  5766. // pDstRoi Pointer to destination image ROI size (down).
  5767. // pDstRoiMin Pointer to minimal destination image ROI size (up).
  5768. // pDstRoiMax Pointer to maximal destination image ROI size (up).
  5769. // rate Neighbour levels ratio (1<rate<=10)
  5770. //
  5771. // Notes: For up case destination size belongs to interval
  5772. // max((int)((float)((src-1)*rate)),src+1)<=dst<=
  5773. // max((int)((float)(src)*rate)),src+1)
  5774. */
  5775. IPPAPI(IppStatus, ippiGetPyramidDownROI,(IppiSize srcRoi, IppiSize *pDstRoi, Ipp32f rate))
  5776. IPPAPI(IppStatus, ippiGetPyramidUpROI,(IppiSize srcRoi, IppiSize *pDstRoiMin, IppiSize *pDstRoiMax, Ipp32f rate))
  5777. /* ///////////////////////////////////////////////////////////////////////////////////////
  5778. // Name: ippiPyramidLayerDown_8u_C1R, ippiPyramidLayerDown_16u_C1R, ippiPyramidLayerDown_32f_C1R
  5779. // ippiPyramidLayerDown_8u_C3R, ippiPyramidLayerDown_16u_C3R, ippiPyramidLayerDown_32f_C3R
  5780. // ippiPyramidLayerUp_8u_C1R, ippiPyramidLayerUp_16u_C1R, ippiPyramidLayerUp_32f_C1R
  5781. // ippiPyramidLayerUp_8u_C3R, ippiPyramidLayerUp_16u_C3R, ippiPyramidLayerUp_32f_C3R
  5782. //
  5783. // Purpose: Perform downsampling/upsampling of the image with 5x5 gaussian.
  5784. //
  5785. // Return:
  5786. // ippStsNoErr Ok
  5787. // ippStsNullPtrErr One of the specified pointers is NULL
  5788. // ippStsSizeErr The srcRoiSize or dstRoiSize has a fild with zero or negativ value
  5789. // ippStsStepErr The steps in images are too small
  5790. // ippStsBadArgErr pState->rate has wrong value
  5791. // ippStsNotEvenStepErr One of the step values is not divisibly by 4 for floating-point
  5792. // images, or by 2 for short-integer images.
  5793. // Arguments:
  5794. // pSrc Pointer to the source image
  5795. // srcStep Step in byte through the source image
  5796. // srcRoiSize Size of the source image ROI in pixel.
  5797. // dstRoiSize Size of the destination image ROI in pixel.
  5798. // pDst Pointer to destination image
  5799. // dstStep Step in byte through the destination image
  5800. // pState Pointer to the pyramid layer structure
  5801. */
  5802. IPPAPI(IppStatus, ippiPyramidLayerDown_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  5803. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_8u_C1R* pState))
  5804. IPPAPI(IppStatus, ippiPyramidLayerDown_8u_C3R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  5805. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_8u_C3R* pState))
  5806. IPPAPI(IppStatus, ippiPyramidLayerDown_16u_C1R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  5807. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_16u_C1R* pState))
  5808. IPPAPI(IppStatus, ippiPyramidLayerDown_16u_C3R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  5809. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_16u_C3R* pState))
  5810. IPPAPI(IppStatus, ippiPyramidLayerDown_32f_C1R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  5811. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_32f_C1R* pState))
  5812. IPPAPI(IppStatus, ippiPyramidLayerDown_32f_C3R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  5813. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidDownState_32f_C3R* pState))
  5814. IPPAPI(IppStatus, ippiPyramidLayerUp_8u_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  5815. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_8u_C1R* pState))
  5816. IPPAPI(IppStatus, ippiPyramidLayerUp_8u_C3R, (const Ipp8u* pSrc, int srcStep, IppiSize srcRoiSize,
  5817. Ipp8u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_8u_C3R* pState))
  5818. IPPAPI(IppStatus, ippiPyramidLayerUp_16u_C1R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  5819. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_16u_C1R* pState))
  5820. IPPAPI(IppStatus, ippiPyramidLayerUp_16u_C3R,(const Ipp16u* pSrc, int srcStep, IppiSize srcRoiSize,
  5821. Ipp16u* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_16u_C3R* pState))
  5822. IPPAPI(IppStatus, ippiPyramidLayerUp_32f_C1R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  5823. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_32f_C1R* pState))
  5824. IPPAPI(IppStatus, ippiPyramidLayerUp_32f_C3R,(const Ipp32f* pSrc, int srcStep, IppiSize srcRoiSize,
  5825. Ipp32f* pDst, int dstStep, IppiSize dstRoiSize, IppiPyramidUpState_32f_C3R* pState))
  5826. /****************************************************************************************\
  5827. * Haar Classifier *
  5828. \****************************************************************************************/
  5829. /* ///////////////////////////////////////////////////////////////////////////////////////
  5830. // Name: ippiHaarClassifierInit ippiTiltedHaarClassifierInit
  5831. //
  5832. // Purpose: Initializes memory for the stage of the Haar classifier.
  5833. //
  5834. // Arguments:
  5835. // pState The pointer to the pointer to the Haar classifier structure.
  5836. // pFeature The pointer to the array of features.
  5837. // pWeight The pointer to the array of feature weights.
  5838. // pThreshold The pointer to the array of classifier thresholds [length].
  5839. // pVal1, pVal2 Pointers to arrays of classifier results [length].
  5840. // pNum The pointer to the array of classifier lengths [length].
  5841. // length The number of classifiers in the stage.
  5842. //
  5843. // Return:
  5844. // ippStsNoErr Ok
  5845. // ippStsNullPtrErr One of pointers is NULL
  5846. // ippStsSizeErr The number of classifiers or features is less or equal zero
  5847. // ippStsbadArgErr The bad feature rectangular
  5848. // ippStsMemAllocErr Memory allocation error
  5849. //
  5850. // Notes: For integer version feature weights pWeight are in Q0, classifier thresholds
  5851. // pThreshold are in QT (see ApplyHaarClassifier), pVal1 and pVal2 are scale as
  5852. // stage thresholds threshold of ApplyHaarClassifier function
  5853. */
  5854. IPPAPI(IppStatus, ippiHaarClassifierInit_32f, (IppiHaarClassifier_32f *pState, const IppiRect* pFeature, const Ipp32f* pWeight,
  5855. const Ipp32f* pThreshold, const Ipp32f* pVal1, const Ipp32f* pVal2, const int* pNum, int length))
  5856. IPPAPI(IppStatus, ippiTiltedHaarClassifierInit_32f, (IppiHaarClassifier_32f *pState, const IppiRect* pFeature, const Ipp32f* pWeight,
  5857. const Ipp32f* pThreshold, const Ipp32f* pVal1, const Ipp32f* pVal2, const int* pNum, int length))
  5858. IPPAPI(IppStatus, ippiHaarClassifierGetSize, ( IppDataType dataType, IppiSize roiSize, const int* pNum, int length, int *pSize ))
  5859. /* ///////////////////////////////////////////////////////////////////////////////////////
  5860. // Name: ippiTiltHaarFeatures_32f, ippiTiltHaarFeatures_32s
  5861. // Purpose: Tilts marked feature on -45 degree
  5862. // Arguments:
  5863. // pMask The mask of feature to tilt.
  5864. // flag 1 - left bottom -45 degree
  5865. // 0 - left top +45 degree
  5866. // pState The pointer to the Haar classifier structure.
  5867. // Return:
  5868. // ippStsNoErr Ok
  5869. // ippStsNullPtrErr One of pointers is NULL
  5870. // Notes: The mask length is equal to the number of classifiers in the classifier
  5871. // If pMask[i] != 0 i-th feature is tilted
  5872. // Classifiers with tilted features require two input integral images and
  5873. // can be used by rippiApplyMixedHaarClassifier functions
  5874. */
  5875. IPPAPI(IppStatus, ippiTiltHaarFeatures_32f, (const Ipp8u *pMask, int flag, IppiHaarClassifier_32f *pState))
  5876. /* ///////////////////////////////////////////////////////////////////////////////////////
  5877. // Name: ippiGetHaarClassifierSize_32f, ippiGetHaarClassifierSize_32s
  5878. // Purpose: Returns the size of the Haar classifier.
  5879. // Arguments:
  5880. // pState Pointer to the Haar classifier structure.
  5881. // pSize Pointer to the returned value of Haar classifier size.
  5882. // Return:
  5883. // ippStsNoErr Ok
  5884. // ippStsNullPtrErr One of pointers is NULL
  5885. */
  5886. IPPAPI(IppStatus, ippiGetHaarClassifierSize_32f, (IppiHaarClassifier_32f* pState, IppiSize* pSize))
  5887. /* ///////////////////////////////////////////////////////////////////////////////////////
  5888. // Name: ippiApplyHaarClassifier, ippiApplyMixedHaarClassifier
  5889. // Purpose: Applies the stage of Haar classifiers to the image.
  5890. // Arguments:
  5891. // pSrc The pointer to the source image of integrals.
  5892. // srcStep The step in bytes through the source image.
  5893. // pNorm The pointer to the source image of norm factors.
  5894. // normStep The step in bytes through the image of norm factors.
  5895. // pMask The pointer to the source and destination image of classification decisions.
  5896. // maskStep The step in bytes through the image of classification decisions.
  5897. // pPositive The pointer to the number of positive decisions.
  5898. // roiSize The size of source and destination images ROI in pixels.
  5899. // threshold The stage threshold value.
  5900. // pState The pointer to the Haar classifier structure.
  5901. // scaleFactor Scale factor for classifier threshold*norm, <= 0
  5902. // Return:
  5903. // ippStsNoErr Ok
  5904. // ippStsNullPtrErr One of pointers is NULL
  5905. // ippStsSizeErr The number of classifiers or features is less or equal zero
  5906. // ippStsSizeErr The width or height of images is less or equal zero
  5907. // ippStsStepErr The steps in images are too small
  5908. // ippStsNotEvenStepErr Step is not multiple of element.
  5909. */
  5910. IPPAPI(IppStatus, ippiApplyHaarClassifier_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  5911. const Ipp32f* pNorm, int normStep, Ipp8u* pMask, int maskStep, IppiSize roiSize, int *pPositive, Ipp32f threshold, IppiHaarClassifier_32f *pState))
  5912. IPPAPI(IppStatus, ippiApplyMixedHaarClassifier_32f_C1R, (const Ipp32f* pSrc, int srcStep, const Ipp32f* pTilt, int tiltStep,
  5913. const Ipp32f* pNorm, int normStep, Ipp8u* pMask, int maskStep, IppiSize roiSize, int *pPositive, Ipp32f threshold, IppiHaarClassifier_32f *pState))
  5914. /*F///////////////////////////////////////////////////////////////////////////////////////
  5915. // Name: ippiMinEigenValGetBufferSize_8u32f_C1R, ippiMinEigenValGetBufferSize_32f_C1R
  5916. //
  5917. // Purpose: Calculates size of temporary buffer, required to run one of MinEigenVal***
  5918. // functions.
  5919. //
  5920. // Return:
  5921. // ippStsNoErr Ok
  5922. // ippStsNullPtrErr One of pointers is NULL
  5923. // ippStsSizeErr The width is less or equal zero or bad window size
  5924. //
  5925. // Parameters:
  5926. // roiSize roiSize size in pixels
  5927. // apertureSize Linear size of derivative filter aperture
  5928. // avgWindow Linear size of averaging window
  5929. // bufferSize Output parameter. Calculated buffer size.
  5930. //F*/
  5931. IPPAPI(IppStatus, ippiMinEigenValGetBufferSize_8u32f_C1R, ( IppiSize roiSize, int apertureSize,
  5932. int avgWindow, int* bufferSize ))
  5933. IPPAPI(IppStatus, ippiMinEigenValGetBufferSize_32f_C1R, ( IppiSize roiSize, int apertureSize,
  5934. int avgWindow, int* bufferSize ))
  5935. /*F///////////////////////////////////////////////////////////////////////////////////////
  5936. // Name: ippiMinEigenVal_8u32f_C1R, ippiMinEigenVal_32f_C1R
  5937. //
  5938. // Purpose: Calculate minimal eigen value of 2x2 autocorrelation gradient matrix
  5939. // for every pixel. Pixels with relatively large minimal eigen values
  5940. // are strong corners on the picture.
  5941. //
  5942. // Return:
  5943. // ippStsNoErr Ok
  5944. // ippStsNullPtrErr One of pointers is NULL
  5945. // ippStsSizeErr The width or height of images is less or equal zero
  5946. // or bad window size
  5947. // ippStsStepErr The steps in images are too small
  5948. // ippStsNotEvenStepErr Step is not multiple of element.
  5949. //
  5950. // Parameters:
  5951. // pSrc Source image
  5952. // srcStep Its step
  5953. // pMinEigenVal Image, filled with minimal eigen values for every pixel
  5954. // minValStep Its step
  5955. // roiSize ROI size
  5956. // kernType Kernel type (Scharr 3x3 or Sobel 3x3, 5x5)
  5957. // apertureSize Linear size of derivative filter aperture
  5958. // avgWindow Linear size of averaging window
  5959. // pBuffer Preallocated temporary buffer, which size can be calculated
  5960. // using ippiMinEigenValGetSize function
  5961. //F*/
  5962. IPPAPI(IppStatus, ippiMinEigenVal_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  5963. Ipp32f* pMinEigenVal, int minValStep,
  5964. IppiSize roiSize, IppiKernelType kernType,
  5965. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  5966. IPPAPI(IppStatus, ippiMinEigenVal_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  5967. Ipp32f* pMinEigenVal, int minValStep,
  5968. IppiSize roiSize, IppiKernelType kernType,
  5969. int apertureSize, int avgWindow, Ipp8u* pBuffer ))
  5970. /*F///////////////////////////////////////////////////////////////////////////////////////
  5971. // Name: ippiMinMaxIndx_8u_C1R, ippiMinMaxIndx_8s_C1R,
  5972. // ippiMinMaxIndx_16u_C1R, ippiMinMaxIndx_32f_C1R,
  5973. // ippiMinMaxIndx_8u_C3CR, ippiMinMaxIndx_8s_C3CR,
  5974. // ippiMinMaxIndx_16u_C3CR, ippiMinMaxIndx_32f_C3CR,
  5975. //
  5976. // Purpose: Finds minimum and maximum values in the image and their coordinates
  5977. //
  5978. // Return:
  5979. // ippStsNoErr Ok
  5980. // ippStsNullPtrErr One of pointers is NULL
  5981. // ippStsSizeErr The width or height of images is less or equal zero
  5982. // ippStsStepErr The steps in images are too small
  5983. // ippStsNotEvenStepErr Step is not multiple of element.
  5984. //
  5985. // Parameters:
  5986. // pSrc Pointer to image
  5987. // srcStep Image step
  5988. // roiSize Size of image ROI
  5989. // coi Index of color channel (1..3) (if color image)
  5990. // pMinVal Pointer to minimum value
  5991. // pMaxVal Pointer to maximum value
  5992. // pMinIndex Minimum's coordinates
  5993. // pMaxIndex Maximum's coordinates
  5994. //
  5995. // Notes:
  5996. // Any of output parameters is optional
  5997. //F*/
  5998. IPPAPI(IppStatus, ippiMinMaxIndx_16u_C1R,( const Ipp16u* pSrc, int srcStep, IppiSize roiSize,
  5999. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6000. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6001. IPPAPI(IppStatus, ippiMinMaxIndx_32f_C1R,( const Ipp32f* pSrc, int step, IppiSize roiSize,
  6002. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6003. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6004. IPPAPI(IppStatus, ippiMinMaxIndx_8u_C1R,( const Ipp8u* pSrc, int srcStep, IppiSize roiSize,
  6005. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6006. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6007. /* ///////////////////////////////////////////////////////////////////////////////////////
  6008. // Name: ippiFilterGaussianGetBufferSize
  6009. //
  6010. // Purpose: Computes the size of the working buffer for the Gaussian filter
  6011. //
  6012. // Return:
  6013. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  6014. // ippStsNullPtrErr One of the pointers is NULL.
  6015. // ippStsSizeErr maxRoiSize has a field with zero or negative value.
  6016. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  6017. // ippStsBadArgErr Indicates an error if kernelSize is even or is less than 3.
  6018. // ippStsChannelErr Indicates an error when numChannels has an illegal value.
  6019. //
  6020. // Arguments:
  6021. // maxRoiSize Maximal size of the image ROI in pixels.
  6022. // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3).
  6023. // dataType Data type of the source and destination images.
  6024. // numChannels Number of channels in the images. Possible values are 1 and 3.
  6025. // pSpecSize Pointer to the computed size (in bytes) of the Gaussian
  6026. // specification structure.
  6027. // pBufferSize Pointer to the computed size (in bytes) of the external buffer.
  6028. */
  6029. IPPAPI(IppStatus, ippiFilterGaussianGetBufferSize,(IppiSize maxRoiSize, Ipp32u KernelSize,
  6030. IppDataType dataType, int numChannels, int *pSpecSize, int* pBufferSize))
  6031. /* ///////////////////////////////////////////////////////////////////////////////////////
  6032. // Name: ippiFilterGaussianInit
  6033. //
  6034. // Purpose: initialization of Spec for Gaussian filter
  6035. //
  6036. // Return:
  6037. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  6038. // ippStsNullPtrErr One of the pointers is NULL.
  6039. // ippStsSizeErr roiSize has a field with zero or negative value.
  6040. // ippStsDataTypeErr Indicates an error when borderType has an illegal value.
  6041. // ippStsBadArgErr kernelSize is even or is less than 3.
  6042. // ippStsChannelErr Indicates an error when numChannels has an illegal value.
  6043. // ippStsBorderErr Indicates an error condition if borderType has a illegal
  6044. // value.
  6045. //
  6046. // Arguments:
  6047. // roiSize Size of the image ROI in pixels.
  6048. // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3).
  6049. // sigma Standard deviation of the Gaussian kernel.
  6050. // borderType One of border supported types.
  6051. // dataType Data type of the source and destination images.
  6052. // numChannels Number of channels in the images. Possible values are 1 and 3.
  6053. // pSpec Pointer to the Spec.
  6054. // pBuffer Pointer to the buffer:
  6055. */
  6056. IPPAPI(IppStatus, ippiFilterGaussianInit,(IppiSize roiSize, Ipp32u KernelSize, Ipp32f sigma,
  6057. IppiBorderType borderType, IppDataType dataType, int numChannels,
  6058. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6059. /* ///////////////////////////////////////////////////////////////////////////////////////
  6060. // Name: ippiFilterGaussianBorder
  6061. //
  6062. // Purpose: Applies Gaussian filter with borders
  6063. //
  6064. // Return:
  6065. // ippStsNoErr Ok. Any other value indicates an error or a warning.
  6066. // ippStsNullPtrErr One of the specified pointers is NULL.
  6067. // ippStsSizeErr roiSize has a field with zero or negative value.
  6068. // ippStsStepErr Indicates an error condition if srcStep or dstStep is less
  6069. // than roiSize.width * <pixelSize>.
  6070. // ippStsNotEvenStepErr One of the step values is not divisible by 4 for floating-point images.
  6071. // ippStsBadArgErr kernelSize is less than 3 or sigma is less or equal than 0.
  6072. //
  6073. // Arguments:
  6074. // pSrc Pointer to the source image ROI.
  6075. // srcStep Distance in bytes between starts of consecutive lines in the source image.
  6076. // pDst Pointer to the destination image ROI.
  6077. // dstStep Distance in bytes between starts of consecutive lines in the destination image.
  6078. // roiSize Size of the source and destination image ROI.
  6079. // borderValue Constant value to assign to pixels of the constant border. if border type equals ippBorderConstant
  6080. // pSpec Pointer to the Gaussian specification structure.
  6081. // pBuffer Pointer to the working buffer.
  6082. */
  6083. IPPAPI(IppStatus, ippiFilterGaussianBorder_32f_C1R,(const Ipp32f* pSrc, int srcStep,
  6084. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f borderValue,
  6085. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6086. IPPAPI(IppStatus, ippiFilterGaussianBorder_16u_C1R,(const Ipp16u * pSrc, int srcStep,
  6087. Ipp16u * pDst, int dstStep, IppiSize roiSize, Ipp16u borderValue,
  6088. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6089. IPPAPI(IppStatus, ippiFilterGaussianBorder_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  6090. Ipp16s* pDst, int dstStep, IppiSize roiSize, Ipp16s borderValue,
  6091. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6092. IPPAPI(IppStatus, ippiFilterGaussianBorder_8u_C1R,(const Ipp8u* pSrc, int srcStep,
  6093. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp8u borderValue,
  6094. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6095. IPPAPI(IppStatus, ippiFilterGaussianBorder_32f_C3R,(const Ipp32f* pSrc, int srcStep,
  6096. Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f borderValue[3],
  6097. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6098. IPPAPI(IppStatus, ippiFilterGaussianBorder_16u_C3R,(const Ipp16u * pSrc, int srcStep,
  6099. Ipp16u * pDst, int dstStep, IppiSize roiSize, Ipp16u borderValue[3],
  6100. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6101. IPPAPI(IppStatus, ippiFilterGaussianBorder_16s_C3R,(const Ipp16s* pSrc, int srcStep,
  6102. Ipp16s* pDst, int dstStep, IppiSize roiSize, Ipp16s borderValue[3],
  6103. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6104. IPPAPI(IppStatus, ippiFilterGaussianBorder_8u_C3R,(const Ipp8u* pSrc, int srcStep,
  6105. Ipp8u* pDst, int dstStep, IppiSize roiSize, Ipp8u borderValue[3],
  6106. IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer))
  6107. /****************************************************************************************\
  6108. * Image Integrals *
  6109. \****************************************************************************************/
  6110. /* /////////////////////////////////////////////////////////////////////////////////////
  6111. // Name: ippiIntegral, ippiTiltedIntegral
  6112. // ippiSqrIntegral, ippiTiltedSqrIntegral
  6113. //
  6114. // Purpose: calculates pixel sum on subimage
  6115. //
  6116. // Returns:
  6117. // ippStsNoErr Ok
  6118. // ippStsNullPtrErr One of pointers is NULL
  6119. // ippStsSizeErr The width or height of images is less or equal zero
  6120. // ippStsStepErr The steps in images are too small
  6121. // ippStsNotEvenStepErr Step is not multiple of element.
  6122. //
  6123. // Parameters:
  6124. // pSrc The pointer to source image
  6125. // srcStep The step in source image
  6126. // pDst The pointer to destination integral image
  6127. // dstStep The step in destination image
  6128. // pSq The pointer to destination square integral image
  6129. // sqStep The step in destination image
  6130. // roiSize The source and destination image ROI size.
  6131. // val The value to add to pDst image pixels.
  6132. // valSqr The value to add to pSq image pixels.
  6133. */
  6134. IPPAPI(IppStatus, ippiIntegral_8u32s_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize srcRoiSize, Ipp32s val))
  6135. IPPAPI(IppStatus, ippiIntegral_8u32f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize srcRoiSize, Ipp32f val))
  6136. IPPAPI(IppStatus, ippiIntegral_32f_C1R, (const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize srcRoiSize))
  6137. IPPAPI(IppStatus, ippiTiltedIntegral_8u32s_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, IppiSize roiSize, Ipp32s val))
  6138. IPPAPI(IppStatus, ippiTiltedIntegral_8u32f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, IppiSize roiSize, Ipp32f val))
  6139. IPPAPI(IppStatus, ippiSqrIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, Ipp32s* pSqr, int sqrStep, IppiSize roi, Ipp32s val, Ipp32s valSqr))
  6140. IPPAPI(IppStatus, ippiSqrIntegral_8u32s64f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize, Ipp32s val, Ipp64f valSqr))
  6141. IPPAPI(IppStatus, ippiSqrIntegral_8u32f64f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize, Ipp32f val, Ipp64f valSqr))
  6142. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32s_C1R, (const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, Ipp32s* pSqr, int sqrStep, IppiSize roi, Ipp32s val, Ipp32s valSqr))
  6143. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32s64f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32s* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize, Ipp32s val, Ipp64f valSqr))
  6144. IPPAPI(IppStatus, ippiTiltedSqrIntegral_8u32f64f_C1R,(const Ipp8u* pSrc, int srcStep, Ipp32f* pDst, int dstStep, Ipp64f* pSqr, int sqrStep, IppiSize roiSize, Ipp32f val, Ipp64f valSqr))
  6145. /* /////////////////////////////////////////////////////////////////////////////
  6146. //
  6147. // Name: ippiHarrisCorner
  6148. // Purpose: Performs Harris corner detector operations
  6149. //
  6150. // Parameters:
  6151. // pSrc Pointer to the source image
  6152. // srcStep Step through the source image
  6153. // pDst Pointer to the destination image
  6154. // dstStep Step through the destination image in pixels.
  6155. // roiSize Size of the source and destination image ROI.
  6156. // filterType Type of derivative operator
  6157. // filterMask Predefined mask of IppiMaskSize type.
  6158. // avgWndSize Size of a rectangle Window for computing an average value
  6159. // k Harris Corner free coefficient
  6160. // scale Destination image scale factor
  6161. // border Type of the border
  6162. // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant
  6163. // pBuffer Pointer to the work buffer
  6164. //
  6165. // Return Values:
  6166. // ippStsNoErr Indicates no error.
  6167. // ippStsNullPtrErr Indicates an error condition if pSrc, pDst or pBufferSize is NULL.
  6168. // ippStsSizeErr Indicates an error in the two cases:
  6169. // if roiSize is negative, or equal to zero;
  6170. // if avgWndSize is equal to zero.
  6171. // ippStsNotEvenStepErr Indicated an error when dstStep is not divisible by 4.
  6172. // ippStsFilterTypeErr Indicates an error when filterType has illegal value.
  6173. // ippStsMaskSizeErr Indicates an error condition if mask has an illegal value.
  6174. // ippStsBorderErr Indicates an error when borderType has illegal value.
  6175. // ippStsNanArg Indicates an error when one of k or scale is not a number
  6176. // ippStsSizeWrn Indicates a warning when avgWndSize is more
  6177. // than either image width or image height.
  6178. */
  6179. IPPAPI(IppStatus, ippiHarrisCorner_8u32f_C1R, (
  6180. const Ipp8u *pSrc, int srcStep, Ipp32f *pDst, int dstStep, IppiSize roiSize,
  6181. IppiDifferentialKernel filterType, IppiMaskSize filterMask, Ipp32u avgWndSize, float k,
  6182. float scale, IppiBorderType borderType, Ipp8u borderValue, Ipp8u* pBuffer))
  6183. IPPAPI(IppStatus, ippiHarrisCorner_32f_C1R, (
  6184. const Ipp32f *pSrc, int srcStep, Ipp32f *pDst, int dstStep, IppiSize roiSize,
  6185. IppiDifferentialKernel filterType, IppiMaskSize filterMask, Ipp32u avgWndSize, float k,
  6186. float scale, IppiBorderType borderType, Ipp32f borderValue, Ipp8u* pBuffer))
  6187. /* /////////////////////////////////////////////////////////////////////////////
  6188. // Name: ippiHarrisCornerGetBufferSize
  6189. //
  6190. // Purpose: Computes the size of the external buffer for ippiHarrisCorner function
  6191. //
  6192. // Parameters:
  6193. // roiSize Size of the source and destination ROI in pixels.
  6194. // filterMask Linear size of derivative filter aperture.
  6195. // avgWndSize Neighborhood block size for smoothing
  6196. // dataType Data type of the source image.
  6197. // numChannels Number of channels in the images. Possible values is 1.
  6198. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  6199. //
  6200. // Return Values:
  6201. // ippStsNoErr Indicates no error.
  6202. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  6203. // ippStsSizeErr Indicates an error in the two cases:
  6204. // if roiSize is negative, or equal to zero;
  6205. // if avgWndSize is equal to zero.
  6206. // ippStsFilterTypeErr Indicates an error when filterType has illegal value.
  6207. // ippStsMaskSizeErr Indicates an error condition if mask has a wrong value.
  6208. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  6209. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  6210. // ippStsSizeWrn Indicates a warning when avgWndSize is more
  6211. // than either image width or image height.
  6212. */
  6213. IPPAPI(IppStatus, ippiHarrisCornerGetBufferSize, (IppiSize roiSize, IppiMaskSize filterMask,
  6214. Ipp32u avgWndSize, IppDataType dataType, int numChannels, int* pBufferSize))
  6215. /*F/////////////////////////////////////////////////////////////////////////////////////
  6216. // Name: ippiRectStdDev_32s32f_C1R, ippiRectStdDev_32f_C1R
  6217. // ippiTiltedRectStdDev_32s32f_C1R, ippiTiltedRectStdDev_32f_C1R
  6218. // ippiRectStdDev_32s_C1RSfs, ippiTiltedRectStdDev_32s_C1RSfs
  6219. //
  6220. // Purpose: Calculates standard deviation on rectangular window
  6221. //
  6222. // Returns:
  6223. // ippStsNoErr Ok
  6224. // ippStsNullPtrErr One of pointers is NULL
  6225. // ippStsSizeErr The width or height of images is less or equal zero
  6226. // ippStsStepErr The steps in images are too small
  6227. // ippStsNotEvenStepErr Step is not multiple of element.
  6228. //
  6229. // Parameters:
  6230. // pSrc The pointer to source image of integrals
  6231. // srcStep The step in source image
  6232. // pSqr The pointer to destination square integral image
  6233. // sqrStep The step in destination image
  6234. // pDst The pointer to destination image
  6235. // dstStep The step in destination image
  6236. // roiSize The destination image ROI size.
  6237. // rect The rectangular window for standard deviation calculation.
  6238. // scaleFactor Output scale factor
  6239. //
  6240. // Notes:
  6241. //F*/
  6242. IPPAPI(IppStatus, ippiRectStdDev_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  6243. const Ipp64f* pSqr, int sqrStep, Ipp32f* pDst, int dstStep,
  6244. IppiSize roiSize, IppiRect rect))
  6245. /*F///////////////////////////////////////////////////////////////////////////////////////
  6246. // Name: ippiAbsDiff_8u_C1R, ippiAbsDiff_8u_C3R, ippiAbsDiff_16u_C1R, ippiAbsDiff_32f_C1R,
  6247. //
  6248. // Purpose: Calculate absolute difference between corresponding pixels of the two images
  6249. // or between image pixels and scalar.
  6250. //
  6251. // Return:
  6252. // ippStsNoErr Ok
  6253. // ippStsNullPtrErr One of pointers is NULL
  6254. // ippStsSizeErr The width or height of images is less or equal zero
  6255. // ippStsStepErr The steps in images are too small
  6256. // ippStsNotEvenStepErr Step is not multiple of element.
  6257. //
  6258. // Parameters:
  6259. // pSrc1 Source image
  6260. // src1Step Its step
  6261. // pSrc2 Second source image
  6262. // src2Step Its step
  6263. // pDst Destination image
  6264. // dstStep Its step
  6265. // roiSize ROI size
  6266. //F*/
  6267. IPPAPI(IppStatus, ippiAbsDiff_8u_C1R, ( const Ipp8u* pSrc1, int src1Step,
  6268. const Ipp8u* pSrc2, int src2Step,
  6269. Ipp8u* pDst, int dstStep, IppiSize roiSize ))
  6270. IPPAPI(IppStatus, ippiAbsDiff_16u_C1R, ( const Ipp16u* pSrc1, int src1Step,
  6271. const Ipp16u* pSrc2, int src2Step,
  6272. Ipp16u* pDst, int dstStep, IppiSize roiSize ))
  6273. IPPAPI(IppStatus, ippiAbsDiff_32f_C1R, ( const Ipp32f* pSrc1, int src1Step,
  6274. const Ipp32f* pSrc2, int src2Step,
  6275. Ipp32f* pDst, int dstStep, IppiSize roiSize ))
  6276. /*F///////////////////////////////////////////////////////////////////////////////////////
  6277. // Name: ippiMean_8u_C1MR, ippiMean_8s_C1MR, ippiMean_16u_C1MR, ippiMean_32f_C1MR,
  6278. // ippiMean_8u_C3CMR, ippiMean_8s_C3CMR, ippiMean_16u_C3CMR, ippiMean_32f_C3CMR
  6279. //
  6280. // Purpose: Find mean value for selected region
  6281. //
  6282. // Return:
  6283. // ippStsNoErr Ok
  6284. // ippStsNullPtrErr One of pointers is NULL
  6285. // ippStsSizeErr The width or height of images is less or equal zero
  6286. // ippStsStepErr The steps in images are too small
  6287. // ippStsNotEvenStepErr Step is not multiple of element.
  6288. // ippStsCOIErr COI index is illegal (coi<1 || coi>3)
  6289. //
  6290. // Parameters:
  6291. // pSrc Pointer to image
  6292. // srcStep Image step
  6293. // pMask Pointer to mask image
  6294. // maskStep Step in the mask image
  6295. // roiSize Size of image ROI
  6296. // coi Index of color channel (1..3) (if color image)
  6297. // pMean Returned mean value
  6298. //
  6299. // Notes:
  6300. //F*/
  6301. IPPAPI( IppStatus, ippiMean_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  6302. const Ipp8u* pMask, int maskStep,
  6303. IppiSize roiSize, Ipp64f* pMean ))
  6304. IPPAPI( IppStatus, ippiMean_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  6305. const Ipp8u* pMask, int maskStep,
  6306. IppiSize roiSize, int coi, Ipp64f* pMean ))
  6307. IPPAPI( IppStatus, ippiMean_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  6308. const Ipp8u* pMask, int maskStep,
  6309. IppiSize roiSize, Ipp64f* pMean ))
  6310. IPPAPI( IppStatus, ippiMean_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  6311. const Ipp8u* pMask, int maskStep,
  6312. IppiSize roiSize, int coi, Ipp64f* pMean ))
  6313. IPPAPI( IppStatus, ippiMean_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6314. const Ipp8u* pMask, int maskStep,
  6315. IppiSize roiSize, Ipp64f* pMean ))
  6316. IPPAPI( IppStatus, ippiMean_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  6317. const Ipp8u* pMask, int maskStep,
  6318. IppiSize roiSize, int coi, Ipp64f* pMean ))
  6319. /*F///////////////////////////////////////////////////////////////////////////////////////
  6320. // Name: ippiMean_StdDev_8u_C1MR, ippiMean_StdDev_8s_C1MR,
  6321. // ippiMean_StdDev_16u_C1MR, ippiMean_StdDev_32f_C1MR,
  6322. // ippiMean_StdDev_8u_C3CMR, ippiMean_StdDev_8s_C3CMR,
  6323. // ippiMean_StdDev_16u_C3CMR, ippiMean_StdDev_32f_C3CMR
  6324. //
  6325. // Purpose: Find mean and standard deviation values for selected region
  6326. //
  6327. // Return:
  6328. // ippStsNoErr Ok
  6329. // ippStsNullPtrErr One of pointers is NULL
  6330. // ippStsSizeErr The width or height of images is less or equal zero
  6331. // ippStsStepErr The steps in images are too small
  6332. // ippStsNotEvenStepErr Step is not multiple of element.
  6333. //
  6334. // Parameters:
  6335. // pSrc Pointer to image
  6336. // srcStep Image step
  6337. // pMask Pointer to mask image
  6338. // maskStep Step in the mask image
  6339. // roiSize Size of image ROI
  6340. // coi Index of color channel (1..3) (if color image)
  6341. // pMean Returned mean value
  6342. // pStdDev Returned standard deviation
  6343. //
  6344. // Notes:
  6345. //F*/
  6346. IPPAPI( IppStatus, ippiMean_StdDev_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  6347. const Ipp8u* pMask, int maskStep,
  6348. IppiSize roiSize,
  6349. Ipp64f* pMean, Ipp64f* pStdDev ))
  6350. IPPAPI( IppStatus, ippiMean_StdDev_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  6351. const Ipp8u* pMask, int maskStep,
  6352. IppiSize roiSize, int coi,
  6353. Ipp64f* pMean, Ipp64f* pStdDev ))
  6354. IPPAPI( IppStatus, ippiMean_StdDev_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  6355. const Ipp8u* pMask, int maskStep,
  6356. IppiSize roiSize,
  6357. Ipp64f* pMean, Ipp64f* pStdDev ))
  6358. IPPAPI( IppStatus, ippiMean_StdDev_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  6359. const Ipp8u* pMask, int maskStep,
  6360. IppiSize roiSize, int coi,
  6361. Ipp64f* pMean, Ipp64f* pStdDev ))
  6362. IPPAPI( IppStatus, ippiMean_StdDev_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6363. const Ipp8u* pMask, int maskStep,
  6364. IppiSize roiSize,
  6365. Ipp64f* pMean, Ipp64f* pStdDev ))
  6366. IPPAPI( IppStatus, ippiMean_StdDev_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  6367. const Ipp8u* pMask, int maskStep,
  6368. IppiSize roiSize, int coi,
  6369. Ipp64f* pMean, Ipp64f* pStdDev ))
  6370. /*F///////////////////////////////////////////////////////////////////////////////////////
  6371. // Name: ippiMean_StdDev_8u_C1R, ippiMean_StdDev_8s_C1R,
  6372. // ippiMean_StdDev_16u_C1R, ippiMean_StdDev_32f_C1R,
  6373. // ippiMean_StdDev_8u_C3CR, ippiMean_StdDev_8s_C3CR,
  6374. // ippiMean_StdDev_16u_C3CR, ippiMean_StdDev_32f_C3CR
  6375. //
  6376. // Purpose: Find mean and standard deviation values for selected region
  6377. //
  6378. // Return:
  6379. // ippStsNoErr Ok
  6380. // ippStsNullPtrErr One of pointers is NULL
  6381. // ippStsSizeErr The width or height of images is less or equal zero
  6382. // ippStsStepErr The steps in images are too small
  6383. // ippStsNotEvenStepErr Step is not multiple of element.
  6384. // ippStsCOIErr COI index is illegal (coi<1 || coi>3)
  6385. //
  6386. // Parameters:
  6387. // pSrc Pointer to image
  6388. // srcStep Image step
  6389. // roiSize Size of image ROI
  6390. // coi Index of color channel (1..3) (if color image)
  6391. // pMean Returned mean value
  6392. // pStdDev Returned standard deviation
  6393. //
  6394. // Notes:
  6395. //F*/
  6396. IPPAPI( IppStatus, ippiMean_StdDev_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  6397. IppiSize roiSize,
  6398. Ipp64f* pMean, Ipp64f* pStdDev ))
  6399. IPPAPI( IppStatus, ippiMean_StdDev_8u_C3CR, ( const Ipp8u* pSrc, int srcStep,
  6400. IppiSize roiSize, int coi,
  6401. Ipp64f* pMean, Ipp64f* pStdDev ))
  6402. IPPAPI( IppStatus, ippiMean_StdDev_16u_C1R, ( const Ipp16u* pSrc, int srcStep,
  6403. IppiSize roiSize,
  6404. Ipp64f* pMean, Ipp64f* pStdDev ))
  6405. IPPAPI( IppStatus, ippiMean_StdDev_16u_C3CR, ( const Ipp16u* pSrc, int srcStep,
  6406. IppiSize roiSize, int coi,
  6407. Ipp64f* pMean, Ipp64f* pStdDev ))
  6408. IPPAPI( IppStatus, ippiMean_StdDev_32f_C1R, ( const Ipp32f* pSrc, int srcStep,
  6409. IppiSize roiSize,
  6410. Ipp64f* pMean, Ipp64f* pStdDev ))
  6411. IPPAPI( IppStatus, ippiMean_StdDev_32f_C3CR, ( const Ipp32f* pSrc, int srcStep,
  6412. IppiSize roiSize, int coi,
  6413. Ipp64f* pMean, Ipp64f* pStdDev ))
  6414. /*F///////////////////////////////////////////////////////////////////////////////////////
  6415. // Name: ippiMinMaxIndx_8u_C1MR, ippiMinMaxIndx_8s_C1MR,
  6416. // ippiMinMaxIndx_16u_C1MR, ippiMinMaxIndx_32f_C1MR,
  6417. // ippiMinMaxIndx_8u_C3CMR, ippiMinMaxIndx_8s_C3CMR,
  6418. // ippiMinMaxIndx_16u_C3CMR, ippiMinMaxIndx_32f_C3CMR,
  6419. //
  6420. // Purpose: Finds minimum and maximum values in the image and their coordinates
  6421. //
  6422. // Return:
  6423. // ippStsNoErr Ok
  6424. // ippStsNullPtrErr One of pointers is NULL
  6425. // ippStsSizeErr The width or height of images is less or equal zero
  6426. // ippStsStepErr The steps in images are too small
  6427. // ippStsNotEvenStepErr Step is not multiple of element.
  6428. //
  6429. // Parameters:
  6430. // pSrc Pointer to image
  6431. // srcStep Image step
  6432. // pMask Pointer to mask image
  6433. // maskStep Step in the mask image
  6434. // roiSize Size of image ROI
  6435. // coi Index of color channel (1..3) (if color image)
  6436. // pMinVal Pointer to minimum value
  6437. // pMaxVal Pointer to maximum value
  6438. // pMinIndex Minimum's coordinates
  6439. // pMaxIndex Maximum's coordinates
  6440. //
  6441. // Notes:
  6442. // Any of output parameters is optional
  6443. //F*/
  6444. IPPAPI(IppStatus, ippiMinMaxIndx_8u_C1MR,( const Ipp8u* pSrc, int srcStep,
  6445. const Ipp8u* pMask, int maskStep,
  6446. IppiSize roiSize,
  6447. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6448. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6449. IPPAPI(IppStatus, ippiMinMaxIndx_16u_C1MR,( const Ipp16u* pSrc, int srcStep,
  6450. const Ipp8u* pMask, int maskStep,
  6451. IppiSize roiSize,
  6452. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6453. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6454. IPPAPI( IppStatus, ippiMinMaxIndx_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6455. const Ipp8u* pMask, int maskStep,
  6456. IppiSize roiSize,
  6457. Ipp32f* pMinVal, Ipp32f* pMaxVal,
  6458. IppiPoint* pMinIndex, IppiPoint* pMaxIndex ))
  6459. /*F///////////////////////////////////////////////////////////////////////////////////////
  6460. // Names: ippiNorm_Inf_8u_C1MR, ippiNorm_Inf_8s_C1MR,
  6461. // ippiNorm_Inf_16u_C1MR, ippiNorm_Inf_32f_C1MR,
  6462. // ippiNorm_Inf_8u_C3CMR, ippiNorm_Inf_8s_C3CMR,
  6463. // ippiNorm_Inf_16u_C3CMR, ippiNorm_Inf_32f_C3CMR,
  6464. // ippiNormDiff_Inf_8u_C1MR, ippiNormDiff_Inf_8s_C1MR,
  6465. // ippiNormDiff_Inf_16u_C1MR, ippiNormDiff_Inf_32f_C1MR,
  6466. // ippiNormDiff_Inf_8u_C3CMR, ippiNormDiff_Inf_8s_C3CMR,
  6467. // ippiNormDiff_Inf_16u_C3CMR, ippiNormDiff_Inf_32f_C3CMR,
  6468. // ippiNormRel_Inf_8u_C1MR, ippiNormRel_Inf_8s_C1MR,
  6469. // ippiNormRel_Inf_16u_C1MR, ippiNormRel_Inf_32f_C1MR,
  6470. // ippiNormRel_Inf_8u_C3CMR, ippiNormRel_Inf_8s_C3CMR,
  6471. // ippiNormRel_Inf_16u_C3CMR, ippiNormRel_Inf_32f_C3CMR,
  6472. //
  6473. // ippiNorm_L1_8u_C1MR, ippiNorm_L1_8s_C1MR,
  6474. // ippiNorm_L1_16u_C1MR, ippiNorm_L1_32f_C1MR,
  6475. // ippiNorm_L1_8u_C3CMR, ippiNorm_L1_8s_C3CMR,
  6476. // ippiNorm_L1_16u_C3CMR, ippiNorm_L1_32f_C3CMR,
  6477. // ippiNormDiff_L1_8u_C1MR, ippiNormDiff_L1_8s_C1MR,
  6478. // ippiNormDiff_L1_16u_C1MR, ippiNormDiff_L1_32f_C1MR,
  6479. // ippiNormDiff_L1_8u_C3CMR, ippiNormDiff_L1_8s_C3CMR,
  6480. // ippiNormDiff_L1_16u_C3CMR, ippiNormDiff_L1_32f_C3CMR,
  6481. // ippiNormRel_L1_8u_C1MR, ippiNormRel_L1_8s_C1MR,
  6482. // ippiNormRel_L1_16u_C1MR, ippiNormRel_L1_32f_C1MR,
  6483. // ippiNormRel_L1_8u_C3CMR, ippiNormRel_L1_8s_C3CMR,
  6484. // ippiNormRel_L1_16u_C3CMR, ippiNormRel_L1_32f_C3CMR,
  6485. //
  6486. // ippiNorm_L2_8u_C1MR, ippiNorm_L2_8s_C1MR,
  6487. // ippiNorm_L2_16u_C1MR, ippiNorm_L2_32f_C1MR,
  6488. // ippiNorm_L2_8u_C3CMR, ippiNorm_L2_8s_C3CMR,
  6489. // ippiNorm_L2_16u_C3CMR, ippiNorm_L2_32f_C3CMR,
  6490. // ippiNormDiff_L2_8u_C1MR, ippiNormDiff_L2_8s_C1MR,
  6491. // ippiNormDiff_L2_16u_C1MR, ippiNormDiff_L2_32f_C1MR,
  6492. // ippiNormDiff_L2_8u_C3CMR, ippiNormDiff_L2_8s_C3CMR,
  6493. // ippiNormDiff_L2_16u_C3CMR, ippiNormDiff_L2_32f_C3CMR,
  6494. // ippiNormRel_L2_8u_C1MR, ippiNormRel_L2_8s_C1MR,
  6495. // ippiNormRel_L2_16u_C1MR, ippiNormRel_L2_32f_C1MR,
  6496. // ippiNormRel_L2_8u_C3CMR, ippiNormRel_L2_8s_C3CMR,
  6497. // ippiNormRel_L2_16u_C3CMR, ippiNormRel_L2_32f_C3CMR
  6498. //
  6499. // Purpose: Calculates ordinary, differential or relative norms of one or two images
  6500. // in an arbitrary image region.
  6501. //
  6502. // Returns:
  6503. // ippStsNoErr Ok
  6504. // ippStsNullPtrErr One of pointers is NULL
  6505. // ippStsSizeErr The width or height of images is less or equal zero
  6506. // ippStsStepErr The steps in images are too small
  6507. // ippStsNotEvenStepErr Step is not multiple of element.
  6508. //
  6509. // Parameters:
  6510. // pSrc, pSrc1 Pointers to source and mask images
  6511. // pSrc2, pMask
  6512. // srcStep, src1Step Their steps
  6513. // src2Step, maskStep
  6514. // roiSize Their size or ROI size
  6515. // coi COI index (1..3) (if 3-channel images)
  6516. // pNorm The pointer to calculated norm
  6517. //
  6518. // Notes:
  6519. //F*/
  6520. /* ///////////////////////////////// 8uC1 flavor ////////////////////////////////////// */
  6521. IPPAPI( IppStatus, ippiNorm_Inf_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  6522. const Ipp8u* pMask,int maskStep,
  6523. IppiSize roiSize, Ipp64f* pNorm ) )
  6524. IPPAPI( IppStatus, ippiNorm_Inf_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  6525. const Ipp8u* pMask,int maskStep,
  6526. IppiSize roiSize, Ipp64f* pNorm ) )
  6527. IPPAPI( IppStatus, ippiNorm_Inf_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6528. const Ipp8u* pMask, int maskStep,
  6529. IppiSize roiSize, Ipp64f* pNorm ) )
  6530. IPPAPI( IppStatus, ippiNorm_Inf_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  6531. const Ipp8u* pMask,int maskStep,
  6532. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6533. IPPAPI( IppStatus, ippiNorm_Inf_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  6534. const Ipp8u* pMask,int maskStep,
  6535. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6536. IPPAPI( IppStatus, ippiNorm_Inf_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  6537. const Ipp8u* pMask, int maskStep,
  6538. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6539. IPPAPI( IppStatus, ippiNormDiff_Inf_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6540. const Ipp8u* pSrc2, int src2Step,
  6541. const Ipp8u* pMask, int maskStep,
  6542. IppiSize roiSize, Ipp64f* pNorm ) )
  6543. IPPAPI( IppStatus, ippiNormDiff_Inf_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6544. const Ipp16u* pSrc2, int src2Step,
  6545. const Ipp8u* pMask, int maskStep,
  6546. IppiSize roiSize, Ipp64f* pNorm ) )
  6547. IPPAPI( IppStatus, ippiNormDiff_Inf_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6548. const Ipp32f* pSrc2, int src2Step,
  6549. const Ipp8u* pMask, int maskStep,
  6550. IppiSize roiSize, Ipp64f* pNorm ) )
  6551. IPPAPI( IppStatus, ippiNormDiff_Inf_8u_C3CMR, (const Ipp8u* pSrc1, int src1Step,
  6552. const Ipp8u* pSrc2, int src2Step,
  6553. const Ipp8u* pMask, int maskStep,
  6554. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6555. IPPAPI( IppStatus, ippiNormDiff_Inf_16u_C3CMR, (const Ipp16u* pSrc1, int src1Step,
  6556. const Ipp16u* pSrc2, int src2Step,
  6557. const Ipp8u* pMask, int maskStep,
  6558. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6559. IPPAPI( IppStatus, ippiNormDiff_Inf_32f_C3CMR, (const Ipp32f* pSrc1, int src1Step,
  6560. const Ipp32f* pSrc2, int src2Step,
  6561. const Ipp8u* pMask, int maskStep,
  6562. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6563. IPPAPI( IppStatus, ippiNormRel_Inf_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6564. const Ipp8u* pSrc2, int src2Step,
  6565. const Ipp8u* pMask, int maskStep,
  6566. IppiSize roiSize, Ipp64f* pNorm ) )
  6567. IPPAPI( IppStatus, ippiNormRel_Inf_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6568. const Ipp16u* pSrc2, int src2Step,
  6569. const Ipp8u* pMask, int maskStep,
  6570. IppiSize roiSize, Ipp64f* pNorm ) )
  6571. IPPAPI( IppStatus, ippiNormRel_Inf_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6572. const Ipp32f* pSrc2, int src2Step,
  6573. const Ipp8u* pMask, int maskStep,
  6574. IppiSize roiSize, Ipp64f* pNorm ) )
  6575. IPPAPI( IppStatus, ippiNorm_L1_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  6576. const Ipp8u* pMask,int maskStep,
  6577. IppiSize roiSize, Ipp64f* pNorm ) )
  6578. IPPAPI( IppStatus, ippiNorm_L1_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  6579. const Ipp8u* pMask,int maskStep,
  6580. IppiSize roiSize, Ipp64f* pNorm ) )
  6581. IPPAPI( IppStatus, ippiNorm_L1_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6582. const Ipp8u* pMask, int maskStep,
  6583. IppiSize roiSize, Ipp64f* pNorm ) )
  6584. IPPAPI( IppStatus, ippiNorm_L1_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  6585. const Ipp8u* pMask,int maskStep,
  6586. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6587. IPPAPI( IppStatus, ippiNorm_L1_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  6588. const Ipp8u* pMask,int maskStep,
  6589. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6590. IPPAPI( IppStatus, ippiNorm_L1_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  6591. const Ipp8u* pMask, int maskStep,
  6592. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6593. IPPAPI( IppStatus, ippiNormDiff_L1_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6594. const Ipp8u* pSrc2, int src2Step,
  6595. const Ipp8u* pMask, int maskStep,
  6596. IppiSize roiSize, Ipp64f* pNorm ) )
  6597. IPPAPI( IppStatus, ippiNormDiff_L1_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6598. const Ipp16u* pSrc2, int src2Step,
  6599. const Ipp8u* pMask, int maskStep,
  6600. IppiSize roiSize, Ipp64f* pNorm ) )
  6601. IPPAPI( IppStatus, ippiNormDiff_L1_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6602. const Ipp32f* pSrc2, int src2Step,
  6603. const Ipp8u* pMask, int maskStep,
  6604. IppiSize roiSize, Ipp64f* pNorm ) )
  6605. IPPAPI( IppStatus, ippiNormDiff_L1_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  6606. const Ipp8u* pSrc2, int src2Step,
  6607. const Ipp8u* pMask, int maskStep,
  6608. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6609. IPPAPI( IppStatus, ippiNormDiff_L1_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  6610. const Ipp16u* pSrc2, int src2Step,
  6611. const Ipp8u* pMask, int maskStep,
  6612. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6613. IPPAPI( IppStatus, ippiNormDiff_L1_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  6614. const Ipp32f* pSrc2, int src2Step,
  6615. const Ipp8u* pMask, int maskStep,
  6616. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6617. IPPAPI( IppStatus, ippiNormRel_L1_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6618. const Ipp8u* pSrc2, int src2Step,
  6619. const Ipp8u* pMask, int maskStep,
  6620. IppiSize roiSize, Ipp64f* pNorm ) )
  6621. IPPAPI( IppStatus, ippiNormRel_L1_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6622. const Ipp16u* pSrc2, int src2Step,
  6623. const Ipp8u* pMask, int maskStep,
  6624. IppiSize roiSize, Ipp64f* pNorm ) )
  6625. IPPAPI( IppStatus, ippiNormRel_L1_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6626. const Ipp32f* pSrc2, int src2Step,
  6627. const Ipp8u* pMask, int maskStep,
  6628. IppiSize roiSize, Ipp64f* pNorm ) )
  6629. IPPAPI( IppStatus, ippiNorm_L2_8u_C1MR, ( const Ipp8u* pSrc, int srcStep,
  6630. const Ipp8u* pMask,int maskStep,
  6631. IppiSize roiSize, Ipp64f* pNorm ) )
  6632. IPPAPI( IppStatus, ippiNorm_L2_16u_C1MR, ( const Ipp16u* pSrc, int srcStep,
  6633. const Ipp8u* pMask,int maskStep,
  6634. IppiSize roiSize, Ipp64f* pNorm ) )
  6635. IPPAPI( IppStatus, ippiNorm_L2_32f_C1MR, ( const Ipp32f* pSrc, int srcStep,
  6636. const Ipp8u* pMask, int maskStep,
  6637. IppiSize roiSize, Ipp64f* pNorm ) )
  6638. IPPAPI( IppStatus, ippiNorm_L2_8u_C3CMR, ( const Ipp8u* pSrc, int srcStep,
  6639. const Ipp8u* pMask,int maskStep,
  6640. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6641. IPPAPI( IppStatus, ippiNorm_L2_16u_C3CMR, ( const Ipp16u* pSrc, int srcStep,
  6642. const Ipp8u* pMask,int maskStep,
  6643. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6644. IPPAPI( IppStatus, ippiNorm_L2_32f_C3CMR, ( const Ipp32f* pSrc, int srcStep,
  6645. const Ipp8u* pMask, int maskStep,
  6646. IppiSize roiSize, int coi, Ipp64f* pNorm ) )
  6647. IPPAPI( IppStatus, ippiNormDiff_L2_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6648. const Ipp8u* pSrc2, int src2Step,
  6649. const Ipp8u* pMask, int maskStep,
  6650. IppiSize roiSize, Ipp64f* pNorm ) )
  6651. IPPAPI( IppStatus, ippiNormDiff_L2_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6652. const Ipp16u* pSrc2, int src2Step,
  6653. const Ipp8u* pMask, int maskStep,
  6654. IppiSize roiSize, Ipp64f* pNorm ) )
  6655. IPPAPI( IppStatus, ippiNormDiff_L2_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6656. const Ipp32f* pSrc2, int src2Step,
  6657. const Ipp8u* pMask, int maskStep,
  6658. IppiSize roiSize, Ipp64f* pNorm ) )
  6659. IPPAPI( IppStatus, ippiNormDiff_L2_8u_C3CMR, ( const Ipp8u* pSrc1, int src1Step,
  6660. const Ipp8u* pSrc2, int src2Step,
  6661. const Ipp8u* pMask, int maskStep,
  6662. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6663. IPPAPI( IppStatus, ippiNormDiff_L2_16u_C3CMR, ( const Ipp16u* pSrc1, int src1Step,
  6664. const Ipp16u* pSrc2, int src2Step,
  6665. const Ipp8u* pMask, int maskStep,
  6666. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6667. IPPAPI( IppStatus, ippiNormDiff_L2_32f_C3CMR, ( const Ipp32f* pSrc1, int src1Step,
  6668. const Ipp32f* pSrc2, int src2Step,
  6669. const Ipp8u* pMask, int maskStep,
  6670. IppiSize roiSize, int coi, Ipp64f* pNorm ))
  6671. IPPAPI( IppStatus, ippiNormRel_L2_8u_C1MR, ( const Ipp8u* pSrc1, int src1Step,
  6672. const Ipp8u* pSrc2, int src2Step,
  6673. const Ipp8u* pMask, int maskStep,
  6674. IppiSize roiSize, Ipp64f* pNorm ) )
  6675. IPPAPI( IppStatus, ippiNormRel_L2_16u_C1MR, ( const Ipp16u* pSrc1, int src1Step,
  6676. const Ipp16u* pSrc2, int src2Step,
  6677. const Ipp8u* pMask, int maskStep,
  6678. IppiSize roiSize, Ipp64f* pNorm ) )
  6679. IPPAPI( IppStatus, ippiNormRel_L2_32f_C1MR, ( const Ipp32f* pSrc1, int src1Step,
  6680. const Ipp32f* pSrc2, int src2Step,
  6681. const Ipp8u* pMask, int maskStep,
  6682. IppiSize roiSize, Ipp64f* pNorm ) )
  6683. /*F///////////////////////////////////////////////////////////////////////////////////////
  6684. // Name: ippiCannyGetSize
  6685. //
  6686. // Purpose: Calculates size of temporary buffer, required to run Canny function.
  6687. //
  6688. // Return:
  6689. // ippStsNoErr Ok
  6690. // ippStsNullPtrErr Pointer bufferSize is NULL
  6691. // ippStsSizeErr roiSize has a field with zero or negative value
  6692. //
  6693. // Parameters:
  6694. // roiSize Size of image ROI in pixel
  6695. // bufferSize Pointer to the variable that returns the size of the temporary buffer
  6696. //F*/
  6697. IPPAPI( IppStatus, ippiCannyGetSize, ( IppiSize roiSize, int* bufferSize ))
  6698. /*F///////////////////////////////////////////////////////////////////////////////////////
  6699. // Name: ippiCanny_16s8u_C1IR, ippiCanny_32f8u_C1IR
  6700. //
  6701. // Purpose: Creates binary image of source's image edges,
  6702. // using derivatives of the first order.
  6703. //
  6704. // Return:
  6705. // ippStsNoErr Ok
  6706. // ippStsNullPtrErr One of pointers is NULL
  6707. // ippStsSizeErr The width or height of images is less or equal zero
  6708. // ippStsStepErr The steps in images are too small
  6709. // ippStsNotEvenStepErr Step is not multiple of element.
  6710. // ippStsBadArgErr Bad thresholds
  6711. //
  6712. // Parameters:
  6713. // pSrcDx Pointers to the source image ( first derivatives with respect to X )
  6714. // srcDxStep Step in bytes through the source image pSrcDx
  6715. // pSrcDy Pointers to the source image ( first derivatives with respect to Y )
  6716. // srcDyStep Step in bytes through the source image pSrcDy
  6717. //
  6718. // roiSize Size of the source images ROI in pixels
  6719. // lowThresh Low threshold for edges detection
  6720. // highThresh Upper threshold for edges detection
  6721. // pBuffer Pointer to the pre-allocated temporary buffer, which size can be
  6722. // calculated using ippiCannyGetSize function
  6723. //F*/
  6724. IPPAPI(IppStatus, ippiCanny_16s8u_C1R, ( Ipp16s* pSrcDx, int srcDxStep,
  6725. Ipp16s* pSrcDy, int srcDyStep,
  6726. Ipp8u* pDstEdges, int dstEdgeStep,
  6727. IppiSize roiSize,
  6728. Ipp32f lowThresh,
  6729. Ipp32f highThresh,
  6730. Ipp8u* pBuffer ))
  6731. /*F///////////////////////////////////////////////////////////////////////////////////////
  6732. // Name: ippiDistanceTransform_3x3_8u32f_C1R, ippiDistanceTransform_5x5_8u32f_C1R,
  6733. // ippiDistanceTransform_3x3_8u16u_C1R, ippiDistanceTransform_5x5_8u16u_C1R,
  6734. // ippiDistanceTransform_3x3_8u_C1R, ippiDistanceTransform_5x5_8u_C1R,
  6735. // ippiDistanceTransform_3x3_8u_C1IR, ippiDistanceTransform_5x5_8u_C1IR,
  6736. // ippiTrueDistanceTransform_8u32f_C1R
  6737. //
  6738. // Purpose: For every non-zero pixel in the source image, the functions calculate
  6739. // distance between that pixel and nearest zero pixel.
  6740. //
  6741. // Return:
  6742. // ippStsNoErr Ok
  6743. // ippStsNullPtrErr One of pointers is NULL
  6744. // ippStsSizeErr The width or height of images is less or equal zero
  6745. // ippStsStepErr The steps in images are too small
  6746. // ippStsNotEvenStepErr Step is not multiple of element.
  6747. // ippStsCoeffErr Zero mask coefficient
  6748. //
  6749. // Parameters:
  6750. // pSrc Source image
  6751. // pSrcDst Pointer to the input and output image
  6752. // srcStep Its step
  6753. // pDst Output image with distances
  6754. // dstStep Its step
  6755. // roiSize ROI size
  6756. // pMetrics Array that determines metrics used.
  6757. // scaleFactor Scale factor
  6758. // pBuffer The pointer to the working buffer
  6759. //
  6760. //F*/
  6761. IPPAPI(IppStatus, ippiDistanceTransform_5x5_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  6762. Ipp32f* pDst, int dstStep,
  6763. IppiSize roiSize, Ipp32f* pMetrics ))
  6764. IPPAPI(IppStatus, ippiTrueDistanceTransform_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  6765. Ipp32f* pDst, int dstStep,
  6766. IppiSize roiSize, Ipp8u* pBuffer ))
  6767. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u_C1R, ( const Ipp8u* pSrc, int srcStep,
  6768. Ipp8u* pDst, int dstStep,
  6769. IppiSize roiSize, Ipp32s* pMetrics ))
  6770. IPPAPI(IppStatus, ippiDistanceTransform_3x3_8u32f_C1R, ( const Ipp8u* pSrc, int srcStep,
  6771. Ipp32f* pDst, int dstStep,
  6772. IppiSize roiSize, Ipp32f* pMetrics ))
  6773. /* ///////////////////////////////////////////////////////////////////////////////////////////////////
  6774. // Name: ippiTrueDistanceTransformGetBufferSize_8u32f_C1R
  6775. //
  6776. // Purpose: Get size of external buffer.
  6777. //
  6778. // Return:
  6779. // ippStsNoErr Ok
  6780. // ippStsNullPtrErr One of pointers is NULL
  6781. // ippStsSizeErr Indicates an error condition if roiSize has a field with zero
  6782. // or negative value.
  6783. //
  6784. // Parameters:
  6785. // roiSize The image ROI size
  6786. // pBufferSize The pointer to the buffer size
  6787. */
  6788. IPPAPI(IppStatus, ippiTrueDistanceTransformGetBufferSize_8u32f_C1R, (IppiSize roiSize, int* pBufferSize))
  6789. /****************************************************************************************\
  6790. * Morphological Operations *
  6791. \****************************************************************************************/
  6792. /* ///////////////////////////////////////////////////////////////////////////////////////
  6793. // Name: ippiMorphologyBorderGetSize_16u_C1R, ippiMorphologyBorderGetSize_16s_C1R,
  6794. // ippiMorphologyBorderGetSize_1u_C1R, ippiMorphologyBorderGetSize_8u_C1R,
  6795. // ippiMorphologyBorderGetSize_8u_C3R, ippiMorphologyBorderGetSize_8u_C4R,
  6796. // ippiMorphologyBorderGetSize_32f_C1R, ippiMorphologyBorderGetSize_32f_C3R
  6797. // ippiMorphologyBorderGetSize_32f_C4R
  6798. //
  6799. //
  6800. // Purpose: Gets the size of the internal state or specification structure for morphological operations.
  6801. //
  6802. // Return:
  6803. // ippStsNoErr Ok.
  6804. // ippStsNullPtrErr One of the pointers is NULL.
  6805. // ippStsSizeErr Width of the image, or width or height of the structuring
  6806. // element is less than,or equal to zero.
  6807. //
  6808. // Parameters:
  6809. // roiWidth Width of the image ROI in pixels.
  6810. // pMask Pointer to the structuring element (mask).
  6811. // maskSize Size of the structuring element.
  6812. // pSize Pointer to the state structure length.
  6813. // pSpecSize Pointer to the specification structure size.
  6814. // pBufferSize Pointer to the buffer size value for the morphological initialization function.
  6815. */
  6816. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_8u_C1R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6817. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_8u_C3R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6818. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_8u_C4R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6819. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_32f_C1R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6820. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_32f_C3R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6821. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_32f_C4R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6822. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_16u_C1R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6823. IPPAPI(IppStatus, ippiMorphologyBorderGetSize_16s_C1R,(IppiSize roiSize, IppiSize maskSize, int* pSpecSize, int* pBufferSize))
  6824. /* ///////////////////////////////////////////////////////////////////////////////////////
  6825. // Name: ippiMorphologyBorderInit_16u_C1R, ippiMorphologyBorderInit_16s_C1R
  6826. // ippiMorphologyBorderInit_1u_C1R, ippiMorphologyBorderInit_8u_C1R
  6827. // ippiMorphologyBorderInit_8u_C3R, ippiMorphologyBorderInit_8u_C4R
  6828. // ippiMorphologyBorderInit_32f_C1R, ippiMorphologyBorderInit_32f_C3R,
  6829. // ippiMorphologyBorderInit_32f_C4R,
  6830. //
  6831. // Purpose: Initialize the internal state or specification structure for morphological operation.
  6832. //
  6833. // Return:
  6834. // ippStsNoErr Ok.
  6835. // ippStsNullPtrErr One of the pointers is NULL.
  6836. // ippStsSizeErr Width of the image or width or height of the structuring
  6837. // element is less than, or equal to zero.
  6838. // ippStsAnchorErr Anchor point is outside the structuring element.
  6839. //
  6840. // Parameters:
  6841. // roiWidth Width of the image ROI in pixels.
  6842. // pMask Pointer to the structuring element (mask).
  6843. // maskSize Size of the structuring element.
  6844. // anchor Anchor of the structuring element.
  6845. // pState Pointer to the morphology state structure.
  6846. // pMorphSpec Pointer to the morphology specification structure.
  6847. // pBuffer Pointer to the external work buffer.
  6848. */
  6849. IPPAPI(IppStatus, ippiMorphologyBorderInit_16u_C1R,(IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6850. IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6851. IPPAPI(IppStatus, ippiMorphologyBorderInit_16s_C1R,(IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6852. IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6853. IPPAPI(IppStatus, ippiMorphologyBorderInit_8u_C1R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6854. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6855. IPPAPI(IppStatus, ippiMorphologyBorderInit_8u_C3R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6856. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6857. IPPAPI(IppStatus, ippiMorphologyBorderInit_8u_C4R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6858. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6859. IPPAPI(IppStatus, ippiMorphologyBorderInit_32f_C1R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6860. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6861. IPPAPI(IppStatus, ippiMorphologyBorderInit_32f_C3R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6862. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6863. IPPAPI(IppStatus, ippiMorphologyBorderInit_32f_C4R,( IppiSize roiSize, const Ipp8u* pMask, IppiSize maskSize,
  6864. IppiMorphState* pMorphSpec, Ipp8u* pBuffer ))
  6865. /* ///////////////////////////////////////////////////////////////////////////////////////
  6866. // Name: ippiDilateBorder_8u_C1R, ippiDilateBorder_8u_C3R,
  6867. // ippiDilateBorder_8u_C4R, ippiDilateBorder_32f_C1R,
  6868. // ippiDilateBorder_32f_C3R, ippiDilateBorder_32f_C4R
  6869. //
  6870. // ippiErodeBorder_8u_C1R, ippiErodeBorder_8u_C3R,
  6871. // ippiErodeBorder_8u_C4R, ippiErodeBorder_32f_C1R,
  6872. // ippiErodeBorder_32f_C3R, ippiErodeBorder_32f_C4R,
  6873. //
  6874. // ippiDilateBorder_16u_C1R, ippiDilateBorder_16s_C1R,
  6875. // ippiDilateBorder_1u_C1R
  6876. //
  6877. // Purpose: Perform erosion/dilation of the image arbitrary shape structuring element.
  6878. //
  6879. // Return:
  6880. // ippStsNoErr Ok.
  6881. // ippStsNullPtrErr One of the pointers is NULL.
  6882. // ippStsSizeErr The ROI width or height is less than 1,
  6883. // or ROI width is bigger than ROI width in the state structure.
  6884. // ippStsStepErr Step is too small to fit the image.
  6885. // ippStsNotEvenStepErr Step is not multiple of the element.
  6886. // ippStsBadArgErr Incorrect border type.
  6887. //
  6888. // Parameters:
  6889. // pSrc Pointer to the source image.
  6890. // srcStep Step in the source image.
  6891. // pDst Pointer to the destination image.
  6892. // dstStep Step in the destination image.
  6893. // roiSize ROI size.
  6894. // borderType Type of border (ippBorderRepl now).
  6895. // borderValue Value for the constant border.
  6896. // pState Pointer to the morphology state structure.
  6897. // pMorphSpec Pointer to the morphology specification structure.
  6898. // pBuffer Pointer to the external work buffer.
  6899. */
  6900. IPPAPI(IppStatus, ippiDilateBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  6901. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6902. IppiBorderType borderType, Ipp8u borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6903. IPPAPI(IppStatus, ippiDilateBorder_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  6904. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6905. IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6906. IPPAPI(IppStatus, ippiDilateBorder_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  6907. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6908. IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6909. IPPAPI(IppStatus, ippiDilateBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  6910. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6911. IppiBorderType borderType, Ipp32f borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6912. IPPAPI(IppStatus, ippiDilateBorder_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  6913. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6914. IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6915. IPPAPI(IppStatus, ippiDilateBorder_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  6916. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6917. IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6918. IPPAPI(IppStatus, ippiDilateBorder_16u_C1R,(const Ipp16u* pSrc, int srcStep,
  6919. Ipp16u* pDst, int dstStep, IppiSize roiSize,
  6920. IppiBorderType borderType, Ipp16u borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6921. IPPAPI(IppStatus, ippiDilateBorder_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  6922. Ipp16s* pDst, int dstStep, IppiSize roiSize,
  6923. IppiBorderType borderType, Ipp16s borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6924. IPPAPI(IppStatus, ippiErodeBorder_8u_C1R, (const Ipp8u* pSrc, int srcStep,
  6925. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6926. IppiBorderType borderType, Ipp8u borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6927. IPPAPI(IppStatus, ippiErodeBorder_8u_C3R, (const Ipp8u* pSrc, int srcStep,
  6928. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6929. IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6930. IPPAPI(IppStatus, ippiErodeBorder_8u_C4R, (const Ipp8u* pSrc, int srcStep,
  6931. Ipp8u* pDst, int dstStep, IppiSize roiSize,
  6932. IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6933. IPPAPI(IppStatus, ippiErodeBorder_32f_C1R, (const Ipp32f* pSrc, int srcStep,
  6934. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6935. IppiBorderType borderType, Ipp32f borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6936. IPPAPI(IppStatus, ippiErodeBorder_32f_C3R, (const Ipp32f* pSrc, int srcStep,
  6937. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6938. IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6939. IPPAPI(IppStatus, ippiErodeBorder_32f_C4R, (const Ipp32f* pSrc, int srcStep,
  6940. Ipp32f* pDst, int dstStep, IppiSize roiSize,
  6941. IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6942. IPPAPI(IppStatus, ippiErodeBorder_16u_C1R,(const Ipp16u* pSrc, int srcStep,
  6943. Ipp16u* pDst, int dstStep, IppiSize roiSize,
  6944. IppiBorderType borderType, Ipp16u borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6945. IPPAPI(IppStatus, ippiErodeBorder_16s_C1R,(const Ipp16s* pSrc, int srcStep,
  6946. Ipp16s* pDst, int dstStep, IppiSize roiSize,
  6947. IppiBorderType borderType, Ipp16s borderValue, const IppiMorphState* pMorphSpec, Ipp8u* pBuffer))
  6948. /* ///////////////////////////////////////////////////////////////////////////////////////
  6949. // Name: ippiUpdateMotionHistory_8u32f_C1IR, ippiUpdateMotionHistory_16u32f_C1IR
  6950. // ippiUpdateMotionHistory_32f_C1IR
  6951. //
  6952. // Purpose: Sets motion history image (MHI) pixels to the current time stamp
  6953. // when the corrensonding pixels in the silhoette image are non zero.
  6954. // Else (silhouette pixels are zero) MHI pixels are
  6955. // cleared if their values are too small (less than timestamp - mhiDuration),
  6956. // i.e. they were updated far ago last time. Else MHI pixels remain unchanged.
  6957. //
  6958. // Return:
  6959. // ippStsNoErr Ok
  6960. // ippStsNullPtrErr One of pointers is NULL
  6961. // ippStsSizeErr The width or height of images is less or equal zero
  6962. // ippStsStepErr The steps in images are too small
  6963. // ippStsNotEvenStepErr Step is not multiple of element.
  6964. // ippStsOutOfRangeErr Maximal duration is negative
  6965. //
  6966. // Arguments:
  6967. // pSilhouette The pointer to silhouette image
  6968. // silhStep The step in silhouette image
  6969. // pMHI The pointer to motion history image
  6970. // mhiStep The step in mhi image
  6971. // roiSize ROI size
  6972. // timestamp Current time stamp (milliseconds)
  6973. // mhiDuration Maximal duration of motion track (milliseconds)
  6974. */
  6975. IPPAPI(IppStatus, ippiUpdateMotionHistory_8u32f_C1IR,
  6976. ( const Ipp8u* pSilhouette, int silhStep,
  6977. Ipp32f* pMHI, int mhiStep, IppiSize roiSize,
  6978. Ipp32f timestamp, Ipp32f mhiDuration ))
  6979. /*
  6980. // Name: ippiHoughLine_Region_8u32f_C1R
  6981. //
  6982. //
  6983. // Purpose: Perform Hough transform algorithm in defined region
  6984. //
  6985. //
  6986. // Arguments:
  6987. // pSrc Pointer to the source image ROI
  6988. // srcStep Distance in bytes between starts of consecutive lines in the source image
  6989. // roiSize The size of source ROI.
  6990. // pLine Pointer to output array of detected lines
  6991. // dstRoi Bottom left and top right corners of searched lines. All founded lines must be
  6992. // in this area. (line[n].rho>=dstRoi[0].rho && line[n].theta>=dstRoi[0].theta &&
  6993. // line[n].rho<=dstRoi[1].rho && line[n].theta<=dstRoi[1].theta)
  6994. // maxLineCount Size of output array pLine in elements
  6995. // pLineCount Number of detected lines. If founded more than maxLineCount lines than function returns "ippStsDstSizeLessExpected" status
  6996. // delta Discretization step, delta.rho - distance resolution in pixels, delta.theta - angle resolution in radians
  6997. // threshold Threshold for a line is detected (if accumulator value > threshold)
  6998. // pBuffer Pointer to the pre-allocated temporary buffer
  6999. //
  7000. // Return:
  7001. // ippStsNoErr Ok
  7002. // ippStsNullPtrErr pSrc or pLine or pLineCount or pBuffer is NULL
  7003. // ippStsStepErr srcStep is not valid
  7004. // ippStsSizeErr roiSize has a field with zero or negative value or maxLineCount is zero or negative
  7005. // ippStsBadArgErr threshold or is less than or equal to zero or delta.rho less 0 or more ROI width+height or
  7006. // delta.theta less 0 or more PI or dstRoi[0].rho more dstRoi[1].rho or dstRoi[0].theta more dstRoi[1].theta
  7007. // ippStsDstSizeLessExpected Ok, but lines detected more than maxLineCount
  7008. //
  7009. */
  7010. IPPAPI(IppStatus, ippiHoughLine_Region_8u32f_C1R, (const Ipp8u* pSrc, int srcStep, IppiSize roiSize,
  7011. IppPointPolar* pLine, IppPointPolar dstRoi[2], int maxLineCount, int* pLineCount, IppPointPolar delta, int threshold, Ipp8u* pBuffer))
  7012. /* ///////////////////////////////////////////////////////////////////////////////////////
  7013. // Name: ippiHoughLineGetSize_8u_C1R()
  7014. //
  7015. //
  7016. // Purpose: Calculate the size of temporary buffer for ippiHoughLine_8u32f_C1R function.
  7017. //
  7018. // Arguments:
  7019. // roiSize The size of source ROI.
  7020. // delta Discretization step, delta.rho - distance resolution in pixels, delta.theta - angle resolution in radians
  7021. // maxLineCount The size of detected line buffer
  7022. // pBufSize Pointer to the computed size of the temporary buffer
  7023. //
  7024. // Return:
  7025. // ippStsNoErr Ok
  7026. // ippStsNullPtrErr pBufSize is NULL
  7027. // ippStsSizeErr The roiSize or delta has a field with zero or negative value
  7028. // ippStsOverflow The size of buffer too big. Overflow.
  7029. //
  7030. */
  7031. IPPAPI(IppStatus, ippiHoughLineGetSize_8u_C1R, (IppiSize roiSize, IppPointPolar delta, int maxLineCount, int* pBufSize))
  7032. /* /////////////////////////////////////////////////////////////////////////////
  7033. // Name: ippiFilterSpeckleGetBufferSize
  7034. //
  7035. // Purpose: Computes the size of the external buffer for ippiFilterSpeckle function
  7036. //
  7037. // Parameters:
  7038. // dstRoiSize Size of destination ROI in pixels.
  7039. // dataType Data type of the source and destination images.
  7040. // numChannels Number of channels in the images. Possible value is 1.
  7041. // pBufferSize Pointer to the size (in bytes) of the external work buffer.
  7042. //
  7043. // Return Values:
  7044. // ippStsNoErr Indicates no error.
  7045. // ippStsNullPtrErr Indicates an error when pBufferSize is NULL.
  7046. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  7047. // ippStsDataTypeErr Indicates an error when dataType has an illegal value.
  7048. // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value.
  7049. */
  7050. IPPAPI(IppStatus, ippiMarkSpecklesGetBufferSize, (IppiSize roiSize,
  7051. IppDataType dataType, int numChannels, int* pBufferSize))
  7052. /* /////////////////////////////////////////////////////////////////////////////
  7053. //
  7054. // Name: rippiFilterSpeckle
  7055. // Purpose: Performs filtering of small noise blobs (speckles)
  7056. // in the image
  7057. //
  7058. // Parameters:
  7059. // pSrcDst Pointer to the source and destination image
  7060. // srcDstStep Step through the source and destination image
  7061. // roiSize Size of the source and destination image ROI.
  7062. // speckleVal The disparity value used to paint-off the speckles
  7063. // maxSpeckleSize The maximum speckle size to consider it a speckle.
  7064. // maxPixDiff Maximum difference between neighbor pixels to put them into the same blob.
  7065. // norm Specifies type of the norm to form the mask for marker propagation:
  7066. // ippiNormInf Infinity norm (8-connectivity);
  7067. // ippiNormL1 L1 norm (4-connectivity).
  7068. // pBuffer Pointer to the work buffer
  7069. //
  7070. // Return Values:
  7071. // ippStsNoErr Indicates no error.
  7072. // ippStsNullPtrErr Indicates an error condition if pSrc, pDst or pBufferSize is NULL.
  7073. // ippStsSizeErr Indicates an error when roiSize is negative, or equal to zero.
  7074. // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4
  7075. // for floating-point images, or by 2 for short-integer images.
  7076. // ippStsNanArg Indicates an error when one of speckleVal or maxPixDiff is not a number
  7077. // ippStsNormErr Indicates an error when norm is incorrect or not supported
  7078. */
  7079. IPPAPI(IppStatus, ippiMarkSpeckles_16s_C1IR, (Ipp16s *pSrcDst, int srcDstStep, IppiSize roiSize,
  7080. Ipp16s speckleVal, int maxSpeckleSize, Ipp16s maxPixDiff, IppiNorm norm, Ipp8u* pBuffer))
  7081. IPPAPI(IppStatus, ippiMarkSpeckles_8u_C1IR, (Ipp8u *pSrcDst, int srcDstStep, IppiSize roiSize,
  7082. Ipp8u speckleVal, int maxSpeckleSize, Ipp8u maxPixDiff, IppiNorm norm, Ipp8u* pBuffer))
  7083. /* =============================================================================
  7084. ippCC
  7085. ============================================================================= */
  7086. /* /////////////////////////////////////////////////////////////////////////////
  7087. // Name: ippccGetLibVersion
  7088. // Purpose: getting of the library version
  7089. // Returns: the structure of information about version
  7090. // of ippCC library
  7091. // Parameters:
  7092. //
  7093. // Notes: not necessary to release the returned structure
  7094. */
  7095. IPPAPI( const IppLibraryVersion*, ippccGetLibVersion, (void) )
  7096. /* /////////////////////////////////////////////////////////////////////////////
  7097. // Name: ippiBGRToLab_8u_C3R and ippiLabToBGR_8u_C3R
  7098. // ippiBGRToLab_8u16u_C3R and ippiLabToBGR_16u8u_C3R
  7099. // Purpose: Converts an RGB image to CIE Lab color model and vice-versa
  7100. // Parameters:
  7101. // pSrc Pointer to the source image ROI
  7102. // srcStep Step through the source image (bytes)
  7103. // pDst Pointer to the destination image ROI
  7104. // dstStep Step through the destination image (bytes)
  7105. // roiSize Size of the ROI
  7106. // Returns:
  7107. // ippStsNullPtrErr if src == NULL or dst == NULL
  7108. // ippStsSizeErr if imgSize.width <= 0 || imgSize.height <= 0
  7109. // ippStsNoErr otherwise
  7110. // Reference:
  7111. // Computer graphics: principles and practices. James D. Foley... [et al.]. 2nd ed.
  7112. // Addison-Wesley, c1990.p.(584)
  7113. //
  7114. // At first an RGB image is converted to the XYZ color model (see the function
  7115. // ippRGBToXYZ_8u_C3R), then to the CIELab with the white point D65 and CIE chromaticity
  7116. // coordinates of white point (xn,yn) = (0.312713, 0.329016)
  7117. // L = 116. *((Y/Yn)^(1/3)) - 16 for Y/Yn > 0.008856
  7118. // L = 903.3*(Y/Yn) for Y/Yn <= 0.008856
  7119. // a = 500. * (f(X/Xn) - f(Y/Yn))
  7120. // b = 200. * (f(Y/Yn) - f(Z/Zn))
  7121. // where f(t)=t^(1/3) for t > 0.008856
  7122. // f(t)=7.787*t+16/116 for t <= 0.008856
  7123. // These values are quantized and scaled to the 8-bit range of 0 to 255 for ippiBGRToLab_8u_C3R.
  7124. // L = L * 255. / 100.
  7125. // a = (a + 128.)
  7126. // b = (a + 128.)
  7127. // and they are quantized and scaled to the 16-bit range of 0 to 65535 for ippiBGRToLab_8u16u_C3R
  7128. // L = L * 65535. / 100.
  7129. // a = (a + 128.)* 255
  7130. // b = (a + 128.)* 255
  7131. // where:
  7132. // normalizing multipliers
  7133. // Yn = 1.0 * 255
  7134. // Xn = 0.950455 * 255
  7135. // Zn = 1.088753 * 255
  7136. //
  7137. // L component values are in the range [0..100], a and b component values are
  7138. // in the range [-128..127].
  7139. //
  7140. // The CIELab to RGB conversion is performed as follows. At first
  7141. // a Lab image is converted to the XYZ image
  7142. // for ippiLabToBGR_8u_C3R
  7143. // L = L * 100./ 255.
  7144. // a = (a - 128.)
  7145. // b = (a - 128.)
  7146. // or for ippiLabToBGR_16u8u_C3R
  7147. // L = L * 100./ 65535.
  7148. // a = (a / 255 - 128.)
  7149. // b = (b / 255 - 128.)
  7150. // X = Xn * ( P + a / 500 )^3
  7151. // Y = Yn * P^3
  7152. // Z = Zn * ( P - b / 200 )^3
  7153. // where P = (L + 16) / 116
  7154. // Then the XYZ image is converted to the RGB color model (see the function
  7155. // ippXYZToRGB_8u_C3R).
  7156. //
  7157. */
  7158. IPPAPI(IppStatus, ippiBGRToLab_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst,int dstStep, IppiSize roiSize))
  7159. IPPAPI(IppStatus, ippiLabToBGR_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst,int dstStep, IppiSize roiSize))
  7160. /* /////////////////////////////////////////////////////////////////////////////
  7161. // Name: ippiColorToGray
  7162. // Purpose: Converts an RGB image to gray scale (custom coefficients)
  7163. // Parameters:
  7164. // pSrc Pointer to the source image , points to point(0,0)
  7165. // pDst Pointer to the destination image , points to point(0,0)
  7166. // roiSize Size of the ROI in pixels. Since the function performs point
  7167. // operations (without a border), the ROI may be the whole image.
  7168. // srcStep Step in bytes through the source image to jump on the next line
  7169. // dstStep Step in bytes through the destination image to jump on the next line
  7170. // coeffs[3] User-defined vector of coefficients.
  7171. // The sum of the coefficients should be less than or equal to 1
  7172. // Returns:
  7173. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7174. // ippStsSizeErr roiSize has a field with zero or negative value
  7175. // ippStsNoErr No errors
  7176. //
  7177. // The following equation is used to convert an RGB image to gray scale:
  7178. //
  7179. // Y = coeffs[0] * R + coeffs[1] * G + coeffs[2] * B;
  7180. //
  7181. //
  7182. */
  7183. IPPAPI(IppStatus,ippiColorToGray_8u_C3C1R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7184. IPPAPI(IppStatus,ippiColorToGray_16u_C3C1R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7185. IPPAPI(IppStatus,ippiColorToGray_32f_C3C1R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7186. IPPAPI(IppStatus,ippiColorToGray_8u_AC4C1R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7187. IPPAPI(IppStatus,ippiColorToGray_16u_AC4C1R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7188. IPPAPI(IppStatus,ippiColorToGray_32f_AC4C1R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep,IppiSize roiSize,const Ipp32f coeffs[3]))
  7189. /* /////////////////////////////////////////////////////////////////////////////
  7190. // Name: ippiRGBToGray
  7191. // Purpose: Converts an RGB image to gray scale (fixed coefficients)
  7192. // Parameters:
  7193. // pSrc Pointer to the source image , points to point(0,0)
  7194. // pDst Pointer to the destination image , points to point(0,0)
  7195. // roiSize Size of the ROI in pixels. Since the function performs point
  7196. // operations (without a border), the ROI may be the whole image.
  7197. // srcStep Step in bytes through the source image to jump on the next line
  7198. // dstStep Step in bytes through the destination image to jump on the next line
  7199. // Returns:
  7200. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7201. // ippStsSizeErr roiSize has a field with zero or negative value
  7202. // ippStsNoErr No errors
  7203. // Reference:
  7204. // Jack Keith
  7205. // Video Demystified: A Handbook for the Digital Engineer, 2nd ed.
  7206. // 1996.p.(82)
  7207. //
  7208. // The transform coefficients of equation below correspond to the standard for
  7209. // NTSC red, green and blue CRT phosphors (1953) that are standardized in the
  7210. // ITU-R Recommendation BT. 601-2 (formerly CCIR Rec. 601-2).
  7211. //
  7212. // The basic equation to compute non-linear video luma (monochrome) from non-linear
  7213. // (gamma-corrected) RGB(R'G'B') is:
  7214. //
  7215. // Y' = 0.299 * R' + 0.587 * G' + 0.114 * B';
  7216. //
  7217. //
  7218. */
  7219. IPPAPI(IppStatus,ippiRGBToGray_8u_C3C1R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep,IppiSize roiSize))
  7220. IPPAPI(IppStatus,ippiRGBToGray_16u_C3C1R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep,IppiSize roiSize))
  7221. IPPAPI(IppStatus,ippiRGBToGray_32f_C3C1R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep,IppiSize roiSize))
  7222. IPPAPI(IppStatus,ippiRGBToGray_8u_AC4C1R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep,IppiSize roiSize))
  7223. IPPAPI(IppStatus,ippiRGBToGray_16u_AC4C1R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep,IppiSize roiSize))
  7224. IPPAPI(IppStatus,ippiRGBToGray_32f_AC4C1R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep,IppiSize roiSize))
  7225. /* /////////////////////////////////////////////////////////////////////////////
  7226. // Name: ippiRGBToLUV, ippiLUVToRGB
  7227. // Purpose: Converts an RGB image to the LUV color model and vice versa.
  7228. // Parameters:
  7229. // pSrc Pointer to the source image ROI
  7230. // srcStep Step through the source image (bytes)
  7231. // pDst Pointer to the destination image ROI
  7232. // dstStep Step through the destination image (bytes)
  7233. // dstRoiSize size of the ROI
  7234. // Returns:
  7235. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7236. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  7237. // ippStsSizeErr roiSize has a field with zero or negative value
  7238. // ippStsNoErr No errors
  7239. // Reference:
  7240. // Computer Graphics: Principles and Practices. James D. Foley... [et al]. 2nd edition.
  7241. // Addison-Wesley, 1990.p.(584)
  7242. //
  7243. // At first an RGB image is converted to the XYZ format image (see the functions
  7244. // ippiRGBToXYZ), then to the CIELUV with the white point D65 and CIE chromaticity
  7245. // coordinates of white point (xn,yn) = (0.312713, 0.329016), and Yn = 1.0 - the luminance of white point.
  7246. //
  7247. // L = 116. * (Y/Yn)**1/3. - 16.
  7248. // U = 13. * L * ( u - un )
  7249. // V = 13. * L * ( v - vn )
  7250. // These are quantized and limited to the 8-bit range of 0 to 255.
  7251. // L = L * 255. / 100.
  7252. // U = ( U + 134. ) * 255. / 354.
  7253. // V = ( V + 140. ) * 255. / 256.
  7254. // where:
  7255. // u' = 4.*X / (X + 15.*Y + 3.*Z)
  7256. // v' = 9.*Y / (X + 15.*Y + 3.*Z)
  7257. // un = 4.*xn / ( -2.*xn + 12.*yn + 3. )
  7258. // vn = 9.*yn / ( -2.*xn + 12.*yn + 3. ).
  7259. // xn, yn is the CIE chromaticity coordinates of white point.
  7260. // Yn = 255. is the luminance of white point.
  7261. //
  7262. // The L component values are in the range [0..100], the U component values are
  7263. // in the range [-134..220], and the V component values are in the range [-140..122].
  7264. //
  7265. // The CIELUV to RGB conversion is performed as following. At first
  7266. // a LUV image is converted to the XYZ image
  7267. // L = L * 100./ 255.
  7268. // U = ( U * 354./ 255.) - 134.
  7269. // V = ( V * 256./ 255.) - 140.
  7270. // u = U / ( 13.* L ) + un
  7271. // v = V / ( 13.* L ) + vn
  7272. // Y = (( L + 16. ) / 116. )**3.
  7273. // Y *= Yn
  7274. // X = -9.* Y * u / (( u - 4.)* v - u * v )
  7275. // Z = ( 9.*Y - 15*v*Y - v*X ) / 3. * v
  7276. // where:
  7277. // un = 4.*xn / ( -2.*xn + 12.*yn + 3. )
  7278. // vn = 9.*yn / ( -2.*xn + 12.*yn + 3. ).
  7279. // xn, yn is the CIE chromaticity coordinates of white point.
  7280. // Yn = 255. is the luminance of white point.
  7281. //
  7282. // Then the XYZ image is converted to the RGB image (see the functions
  7283. // ippiXYZToRGB).
  7284. //
  7285. */
  7286. IPPAPI(IppStatus, ippiRGBToLUV_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7287. IPPAPI(IppStatus, ippiLUVToRGB_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7288. IPPAPI(IppStatus, ippiRGBToLUV_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7289. IPPAPI(IppStatus, ippiLUVToRGB_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7290. IPPAPI(IppStatus, ippiRGBToLUV_16s_C3R,(const Ipp16s* pSrc,int srcStep,Ipp16s* pDst, int dstStep, IppiSize roiSize))
  7291. IPPAPI(IppStatus, ippiLUVToRGB_16s_C3R,(const Ipp16s* pSrc,int srcStep,Ipp16s* pDst, int dstStep, IppiSize roiSize))
  7292. IPPAPI(IppStatus, ippiRGBToLUV_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7293. IPPAPI(IppStatus, ippiLUVToRGB_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7294. /* /////////////////////////////////////////////////////////////////////////////
  7295. // Name: ippiRGBToXYZ, ippiXYZToRGB
  7296. // Purpose: Converts an RGB image to the XYZ color model and vice versa.
  7297. // Parameters:
  7298. // pSrc Pointer to the source image ROI
  7299. // srcStep Step through the source image (bytes)
  7300. // pDst Pointer to the destination image ROI
  7301. // dstStep Step through the destination image (bytes)
  7302. // dstRoiSize size of the ROI
  7303. // Returns:
  7304. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7305. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  7306. // ippStsSizeErr roiSize has a field with zero or negative value
  7307. // ippStsNoErr No errors
  7308. // Reference:
  7309. // David F. Rogers
  7310. // Procedural Elements for Computer Graphics.
  7311. // 1985.
  7312. //
  7313. // The basic equations to convert between Rec. 709 RGB (with its D65 white point) and CIE XYZ are:
  7314. //
  7315. // X = 0.412453 * R + 0.35758 * G + 0.180423 * B
  7316. // Y = 0.212671 * R + 0.71516 * G + 0.072169 * B
  7317. // Z = 0.019334 * R + 0.119193* G + 0.950227 * B
  7318. //
  7319. // R = 3.240479 * X - 1.53715 * Y - 0.498535 * Z
  7320. // G =-0.969256 * X + 1.875991 * Y + 0.041556 * Z
  7321. // B = 0.055648 * X - 0.204043 * Y + 1.057311 * Z
  7322. // Equations are given above in assumption that the X,Y,Z,R,G, and B
  7323. // values are in the range [0..1].
  7324. // Y, C1, C2, R, G, B - are scaled to the range:
  7325. // [0..1] for the 32f depth,
  7326. // [0..IPP_MAX_8u] for the 8u depth,
  7327. // [0..IPP_MAX_16u] for the 16u depth,
  7328. // [IPP_MIN_16s..IPP_MAX_16s] for the 16s depth.
  7329. //
  7330. */
  7331. IPPAPI(IppStatus, ippiRGBToXYZ_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7332. IPPAPI(IppStatus, ippiXYZToRGB_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7333. IPPAPI(IppStatus, ippiRGBToXYZ_16u_C3R,(const Ipp16u* pSrc, int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7334. IPPAPI(IppStatus, ippiXYZToRGB_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7335. IPPAPI(IppStatus, ippiRGBToXYZ_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7336. IPPAPI(IppStatus, ippiXYZToRGB_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7337. /* ////////////////////////////////////////////////////////////////////////////
  7338. // Name: ippiRGBToHSV, ippiHSVToRGB
  7339. // Purpose: Converts an RGB image to the HSV color model and vice versa
  7340. // Parameters:
  7341. // pSrc Pointer to the source image , points to point(0,0)
  7342. // pDst Pointer to the destination image , points to point(0,0)
  7343. // roiSize Size of the ROI in pixels.
  7344. // srcStep Step in bytes through the source image to jump on the next line
  7345. // dstStep Step in bytes through the destination image to jump on the next line
  7346. // Returns:
  7347. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7348. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  7349. // ippStsSizeErr roiSize has a field with zero or negative value
  7350. // ippStsNoErr No errors
  7351. // Reference:
  7352. // David F.Rogers
  7353. // Procedural Elements for Computer Graphics
  7354. // 1985.pp.(401-403)
  7355. //
  7356. // H is the hue red at 0 degrees, which has range [0 .. 360 degrees],
  7357. // S is the saturation,
  7358. // V is the value
  7359. // The RGB to HSV conversion algorithm in pseudo code:
  7360. // Value:
  7361. // V = max(R,G,B);
  7362. // Saturation:
  7363. // temp = min(R,G,B);
  7364. // if V = 0 then // achromatic case
  7365. // S = 0
  7366. // H = 0
  7367. // else // chromatics case
  7368. // S = (V - temp)/V
  7369. // Hue:
  7370. // Cr = (V - R) / (V - temp)
  7371. // Cg = (V - G) / (V - temp)
  7372. // Cb = (V - B) / (V - temp)
  7373. // if R = V then H = Cb - Cg
  7374. // if G = V then H = 2 + Cr - Cb
  7375. // if B = V then H = 4 + Cg - Cr
  7376. // H = 60*H
  7377. // if H < 0 then H = H + 360
  7378. //
  7379. // The HSV to RGB conversion algorithm in pseudo code:
  7380. // if S = 0 then
  7381. // R = G = B = V
  7382. // else
  7383. // if H = 360 then
  7384. // H = 0
  7385. // else
  7386. // H = H/60
  7387. // I = floor(H)
  7388. // F = H - I;
  7389. // M = V * ( 1 - S);
  7390. // N = V * ( 1 - S * F);
  7391. // K = V * ( 1 - S * (1 - F));
  7392. // if(I == 0)then{ R = V;G = K;B = M;}
  7393. // if(I == 1)then{ R = N;G = V;B = M;}
  7394. // if(I == 2)then{ R = M;G = V;B = K;}
  7395. // if(I == 3)then{ R = M;G = N;B = V;}
  7396. // if(I == 4)then{ R = K;G = M;B = V;}
  7397. // if(I == 5)then{ R = V;G = M;B = N;}
  7398. //
  7399. // in the range [0..IPP_MAX_8u ] for the 8u depth,
  7400. // in the range [0..IPP_MAX_16u] for the 16u depth,
  7401. //
  7402. */
  7403. IPPAPI(IppStatus, ippiRGBToHSV_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7404. IPPAPI(IppStatus, ippiHSVToRGB_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7405. IPPAPI(IppStatus, ippiRGBToHSV_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7406. IPPAPI(IppStatus, ippiHSVToRGB_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7407. /* ////////////////////////////////////////////////////////////////////////////
  7408. // Name: ippiRGBToHLS, ippiHLSToRGB
  7409. // ippiBGRToHLS, ippiHLSToBGR
  7410. // Purpose: Converts an RGB(BGR) image to the HLS color model and vice versa
  7411. // Parameters:
  7412. // pSrc Pointer to the source image , points to point(0,0)
  7413. // pDst Pointer to the destination image , points to point(0,0)
  7414. // roiSize Size of the ROI in pixels. Since the function performs point
  7415. // operations (without a border), the ROI may be the whole image.
  7416. // srcStep Step in bytes through the source image to jump on the next line
  7417. // dstStep Step in bytes through the destination image to jump on the next line
  7418. // Returns:
  7419. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7420. // ippStsStepErr srcStep or dstStep is less than or equal to zero
  7421. // ippStsSizeErr roiSize has a field with zero or negative value
  7422. // ippStsNoErr No errors
  7423. // RGB and HLS values for the 32f data type should be in the range [0..1]
  7424. // Reference:
  7425. // David F.Rogers
  7426. // Procedural Elements for Computer Graphics
  7427. // 1985.pp.(403-406)
  7428. //
  7429. // H is the hue red at 0 degrees, which has range [0 .. 360 degrees],
  7430. // L is the lightness,
  7431. // S is the saturation,
  7432. //
  7433. // The RGB to HLS conversion algorithm in pseudo code:
  7434. // Lightness:
  7435. // M1 = max(R,G,B); M2 = max(R,G,B); L = (M1+M2)/2
  7436. // Saturation:
  7437. // if M1 = M2 then // achromatic case
  7438. // S = 0
  7439. // H = 0
  7440. // else // chromatics case
  7441. // if L <= 0.5 then
  7442. // S = (M1-M2) / (M1+M2)
  7443. // else
  7444. // S = (M1-M2) / (2-M1-M2)
  7445. // Hue:
  7446. // Cr = (M1-R) / (M1-M2)
  7447. // Cg = (M1-G) / (M1-M2)
  7448. // Cb = (M1-B) / (M1-M2)
  7449. // if R = M2 then H = Cb - Cg
  7450. // if G = M2 then H = 2 + Cr - Cb
  7451. // if B = M2 then H = 4 + Cg - Cr
  7452. // H = 60*H
  7453. // if H < 0 then H = H + 360
  7454. //
  7455. // The HSL to RGB conversion algorithm in pseudo code:
  7456. // if L <= 0.5 then
  7457. // M2 = L *(1 + S)
  7458. // else
  7459. // M2 = L + S - L * S
  7460. // M1 = 2 * L - M2
  7461. // if S = 0 then
  7462. // R = G = B = L
  7463. // else
  7464. // h = H + 120
  7465. // if h > 360 then
  7466. // h = h - 360
  7467. // if h < 60 then
  7468. // R = ( M1 + ( M2 - M1 ) * h / 60)
  7469. // else if h < 180 then
  7470. // R = M2
  7471. // else if h < 240 then
  7472. // R = M1 + ( M2 - M1 ) * ( 240 - h ) / 60
  7473. // else
  7474. // R = M1
  7475. // h = H
  7476. // if h < 60 then
  7477. // G = ( M1 + ( M2 - M1 ) * h / 60
  7478. // else if h < 180 then
  7479. // G = M2
  7480. // else if h < 240 then
  7481. // G = M1 + ( M2 - M1 ) * ( 240 - h ) / 60
  7482. // else
  7483. // G = M1
  7484. // h = H - 120
  7485. // if h < 0 then
  7486. // h += 360
  7487. // if h < 60 then
  7488. // B = ( M1 + ( M2 - M1 ) * h / 60
  7489. // else if h < 180 then
  7490. // B = M2
  7491. // else if h < 240 then
  7492. // B = M1 + ( M2 - M1 ) * ( 240 - h ) / 60
  7493. // else
  7494. // B = M1
  7495. //
  7496. // H,L,S,R,G,B are scaled to the range:
  7497. // [0..1] for the 32f depth,
  7498. // [0..IPP_MAX_8u] for the 8u depth,
  7499. // [0..IPP_MAX_16u] for the 16u depth,
  7500. // [IPP_MIN_16S..IPP_MAX_16s] for the 16s depth.
  7501. //
  7502. */
  7503. IPPAPI(IppStatus, ippiRGBToHLS_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7504. IPPAPI(IppStatus, ippiHLSToRGB_8u_C3R,(const Ipp8u* pSrc,int srcStep,Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7505. IPPAPI(IppStatus, ippiRGBToHLS_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7506. IPPAPI(IppStatus, ippiHLSToRGB_16u_C3R,(const Ipp16u* pSrc,int srcStep,Ipp16u* pDst, int dstStep, IppiSize roiSize))
  7507. IPPAPI(IppStatus, ippiRGBToHLS_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7508. IPPAPI(IppStatus, ippiHLSToRGB_32f_C3R,(const Ipp32f* pSrc,int srcStep,Ipp32f* pDst, int dstStep, IppiSize roiSize))
  7509. /* /////////////////////////////////////////////////////////////////////////////
  7510. // Name: ippiRGBToYUV_8u_C3R, ippiYUVToRGB_8u_C3R.ippiRGBToYUV_8u_C3R
  7511. // ippiRGBToYUV_8u_AC4R, ippiYUVToRGB_8u_AC4R.
  7512. // ippiRGBToYUV_8u_P3R, ippiYUVToRGB_8u_P3R.
  7513. // ippiRGBToYUV_8u_C3P3R,ippiYUVToRGB_8u_P3C3R.
  7514. // Purpose: Converts an RGB image to the YUV color model and vice versa.
  7515. // Parameters:
  7516. // pSrc Pointer to the source image (for pixel-order data).An array of pointers
  7517. // to separate source color planes (for plane-order data)
  7518. // pDst Pointer to the destination image (for pixel-order data).An array of
  7519. // pointers to separate destination color planes (for of plane-order data)
  7520. // roiSize Size of ROI in pixels.
  7521. // srcStep Step in bytes through the source image to jump on the next line
  7522. // dstStep Step in bytes through the destination image to jump on the next line
  7523. // Returns:
  7524. // ippStsNullPtrErr pSrc == NULL, or pDst == NULL
  7525. // ippStsStepErr, srcStep or dstStep is less than or equal to zero
  7526. // ippStsSizeErr roiSize has a field with zero or negative value
  7527. // ippStsNoErr No errors
  7528. // Reference:
  7529. // Jack Keith
  7530. // Video Demystified: A Handbook for the Digital Engineer, 2nd ed.
  7531. // 1996.pp.(40-41)
  7532. //
  7533. // The YUV color space is the basic color space used by the PAL, NTSC, and
  7534. // SECAM composite color video standards.
  7535. //
  7536. // These functions operate with gamma-corrected images.
  7537. // The basic equations for conversion between gamma-corrected RGB(R'G'B')and YUV are:
  7538. //
  7539. // Y' = 0.299*R' + 0.587*G' + 0.114*B'
  7540. // U = -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B' - Y' )
  7541. // V = 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R' - Y' )
  7542. //
  7543. // R' = Y' + 1.140 * V
  7544. // G' = Y' - 0.394 * U - 0.581 * V
  7545. // B' = Y' + 2.032 * U
  7546. //
  7547. // For digital RGB values in the range [0 .. 255], Y has a range [0..255],
  7548. // U a range [-112 .. +112], and V a range [-157..+157].
  7549. //
  7550. // These equations are usually scaled to simplify the implementation in an actual
  7551. // NTSC or PAL digital encoder or decoder.
  7552. //
  7553. */
  7554. IPPAPI(IppStatus, ippiRGBToYUV_8u_C3R,(const Ipp8u* pSrc, int srcStep , Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7555. IPPAPI(IppStatus, ippiYUVToRGB_8u_C3R,(const Ipp8u* pSrc, int srcStep , Ipp8u* pDst, int dstStep, IppiSize roiSize))
  7556. #ifdef __cplusplus
  7557. }
  7558. #endif
  7559. #endif /* __IPPICV_H__ */