1 /* 2 // Copyright 2014-2019 Intel Corporation All Rights Reserved. 3 // 4 // The source code, information and material ("Material") contained herein is 5 // owned by Intel Corporation or its suppliers or licensors, and title 6 // to such Material remains with Intel Corporation or its suppliers or 7 // licensors. The Material contains proprietary information of Intel 8 // or its suppliers and licensors. The Material is protected by worldwide 9 // copyright laws and treaty provisions. No part of the Material may be used, 10 // copied, reproduced, modified, published, uploaded, posted, transmitted, 11 // distributed or disclosed in any way without Intel's prior express written 12 // permission. No license under any patent, copyright or other intellectual 13 // property rights in the Material is granted to or conferred upon you, 14 // either expressly, by implication, inducement, estoppel or otherwise. 15 // Any license under such intellectual property rights must be express and 16 // approved by Intel in writing. 17 // 18 // Unless otherwise agreed by Intel in writing, 19 // you may not remove or alter this notice or any other notice embedded in 20 // Materials by Intel or Intel's suppliers or licensors in any way. 21 // 22 */ 23 24 #if !defined( __IPPICV_L_H__ ) 25 #define __IPPICV_L_H__ 26 27 #ifdef __cplusplus 28 extern "C" { 29 #endif 30 31 #include "ippicv_defs_l.h" 32 #include "ippicv_types_l.h" 33 #include "ippicv_redefs.h" 34 #include "ippversion.h" 35 36 37 /* ============================================================================= 38 ippCore 39 ============================================================================= */ 40 41 42 /* ///////////////////////////////////////////////////////////////////////////// 43 // Functions to allocate memory 44 ///////////////////////////////////////////////////////////////////////////// */ 45 /* ///////////////////////////////////////////////////////////////////////////// 46 // Name: ippMalloc_L 47 // Purpose: 64-byte aligned memory allocation 48 // Parameter: 49 // len number of bytes 50 // Returns: pointer to allocated memory 51 // 52 // Notes: the memory allocated by ippMalloc has to be free by ippFree 53 // function only. 54 */ 55 IPPAPI(void*, ippMalloc_L, (IppSizeL length)) 56 57 58 59 /* ============================================================================= 60 ippVM 61 ============================================================================= */ 62 63 64 65 66 /* ============================================================================= 67 ippSP 68 ============================================================================= */ 69 70 /* ///////////////////////////////////////////////////////////////////////////// 71 // Name: ippsMalloc*_L 72 // Purpose: 64-byte aligned memory allocation 73 // Parameter: 74 // len number of elements (according to their type) 75 // Returns: pointer to allocated memory 76 // 77 // Notes: the memory allocated by ippsMalloc has to be free by ippsFree 78 // function only. 79 */ 80 81 IPPAPI(Ipp8u*, ippsMalloc_8u_L, (IppSizeL len)) 82 83 84 /* ============================================================================= 85 ippIP 86 ============================================================================= */ 87 88 /* //////////////////////////////////////////////////////////////////////////// 89 // Name: ippiCopy..L 90 // 91 // Purpose: copy pixel values from the source image to the destination image 92 // 93 // 94 // Returns: 95 // ippStsNullPtrErr One of the pointers is NULL 96 // ippStsSizeErr roiSize has a field with zero or negative value 97 // ippStsNoErr OK 98 // 99 // Parameters: 100 // pSrc Pointer to the source image buffer 101 // srcStep Step in bytes through the source image buffer 102 // pDst Pointer to the destination image buffer 103 // dstStep Step in bytes through the destination image buffer 104 // roiSize Size of the ROI 105 // pMask Pointer to the mask image buffer 106 // maskStep Step in bytes through the mask image buffer 107 */ 108 109 IPPAPI(IppStatus, ippiCopy_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize)) 110 111 /* //////////////////////////////////////////////////////////////////////////// 112 // Name: ippiCopyReplicateBorder 113 // 114 // Purpose: Copies pixel values between two buffers and adds 115 // the replicated border pixels. 116 // 117 // Returns: 118 // ippStsNullPtrErr One of the pointers is NULL 119 // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value 120 // 2). topBorderHeight or leftBorderWidth is less than zero 121 // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth 122 // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight 123 // ippStsStepErr srcStep or dstStep is less than or equal to zero 124 // ippStsNoErr OK 125 // 126 // Parameters: 127 // pSrc Pointer to the source image buffer 128 // srcStep Step in bytes through the source image 129 // pDst Pointer to the destination image buffer 130 // dstStep Step in bytes through the destination image 131 // scrRoiSize Size of the source ROI in pixels 132 // dstRoiSize Size of the destination ROI in pixels 133 // topBorderHeight Height of the top border in pixels 134 // leftBorderWidth Width of the left border in pixels 135 */ 136 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 137 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 138 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 139 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 140 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 141 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 142 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 143 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 144 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 145 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 146 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 147 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 148 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C1IR_L,(const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 149 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 150 IPPAPI(IppStatus, ippiCopyReplicateBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 151 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 152 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 153 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 154 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 155 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 156 IPPAPI(IppStatus, ippiCopyReplicateBorder_32f_C4IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 157 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 158 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 159 IPPAPI(IppStatus, ippiCopyReplicateBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 160 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 161 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 162 IPPAPI(IppStatus, ippiCopyReplicateBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 163 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 164 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 165 IPPAPI(IppStatus, ippiCopyReplicateBorder_16s_C4IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 166 167 /* //////////////////////////////////////////////////////////////////////////// 168 // Name: ippiCopyWrapBorder 169 // 170 // Purpose: Copies pixel values between two buffers and adds the border pixels. 171 // 172 // Returns: 173 // ippStsNullPtrErr One of the pointers is NULL 174 // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value 175 // 2). topBorderHeight or leftBorderWidth is less than zero 176 // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth 177 // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight 178 // ippStsStepErr srcStep or dstStep is less than or equal to zero 179 // ippStsNoErr OK 180 // 181 // Parameters: 182 // pSrc Pointer to the source image buffer 183 // srcStep Step in bytes through the source image 184 // pDst Pointer to the destination image buffer 185 // dstStep Step in bytes through the destination image 186 // scrRoiSize Size of the source ROI in pixels 187 // dstRoiSize Size of the destination ROI in pixels 188 // topBorderHeight Height of the top border in pixels 189 // leftBorderWidth Width of the left border in pixels 190 */ 191 IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 192 IPPAPI(IppStatus, ippiCopyWrapBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 193 IPPAPI(IppStatus, ippiCopyWrapBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 194 IPPAPI(IppStatus, ippiCopyWrapBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 195 196 /* //////////////////////////////////////////////////////////////////////////// 197 // Name: ippiCopyConstBorder 198 // 199 // Purpose: Copies pixel values between two buffers and adds 200 // the border pixels with constant value. 201 // 202 // Returns: 203 // ippStsNullPtrErr One of the pointers is NULL 204 // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value 205 // 2). topBorderHeight or leftBorderWidth is less than zero 206 // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth 207 // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight 208 // ippStsStepErr srcStep or dstStep is less than or equal to zero 209 // ippStsNoErr OK 210 // 211 // Parameters: 212 // pSrc Pointer to the source image buffer 213 // srcStep Step in bytes through the source image 214 // pDst Pointer to the destination image buffer 215 // dstStep Step in bytes through the destination image 216 // srcRoiSize Size of the source ROI in pixels 217 // dstRoiSize Size of the destination ROI in pixels 218 // topBorderHeight Height of the top border in pixels 219 // leftBorderWidth Width of the left border in pixels 220 // value Constant value to assign to the border pixels 221 */ 222 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp8u value)) 223 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp8u value[3])) 224 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp8u value[4])) 225 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16s value)) 226 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16s value[3])) 227 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16s value[4])) 228 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32s value)) 229 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32s value[3])) 230 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32s value[4])) 231 232 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp16u value)) 233 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16u value[3])) 234 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp16u value[4])) 235 236 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, Ipp32f value)) 237 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32f value[3])) 238 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth, const Ipp32f value[4])) 239 240 241 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C1IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value)) 242 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C3IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[3])) 243 IPPAPI(IppStatus, ippiCopyConstBorder_8u_C4IR_L, (Ipp8u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp8u value[4])) 244 245 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C1IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value)) 246 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C3IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[3])) 247 IPPAPI(IppStatus, ippiCopyConstBorder_16u_C4IR_L, (Ipp16u* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16u value[4])) 248 249 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C1IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value)) 250 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C3IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[3])) 251 IPPAPI(IppStatus, ippiCopyConstBorder_16s_C4IR_L, (Ipp16s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp16s value[4])) 252 253 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C1IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value)) 254 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C3IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[3])) 255 IPPAPI(IppStatus, ippiCopyConstBorder_32s_C4IR_L, (Ipp32s* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32s value[4])) 256 257 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C1IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value)) 258 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C3IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value[3])) 259 IPPAPI(IppStatus, ippiCopyConstBorder_32f_C4IR_L, (Ipp32f* pSrcDst, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth, const Ipp32f value[4])) 260 261 262 /* //////////////////////////////////////////////////////////////////////////// 263 // Name: ippiCopyMirrorBorder 264 // 265 // Purpose: Copies pixel values between two buffers and adds 266 // the mirror border pixels. 267 // 268 // Returns: 269 // ippStsNullPtrErr One of the pointers is NULL 270 // ippStsSizeErr 1). srcRoiSize or dstRoiSize has a field with negative or zero value 271 // 2). topBorderHeight or leftBorderWidth is less than zero 272 // 3). dstRoiSize.width < srcRoiSize.width + leftBorderWidth 273 // 4). dstRoiSize.height < srcRoiSize.height + topBorderHeight 274 // ippStsStepErr srcStep or dstStep is less than or equal to zero 275 // ippStsNoErr OK 276 // 277 // Parameters: 278 // pSrc Pointer to the source image buffer 279 // srcStep Step in bytes through the source image 280 // pDst Pointer to the destination image buffer 281 // dstStep Step in bytes through the destination image 282 // scrRoiSize Size of the source ROI in pixels 283 // dstRoiSize Size of the destination ROI in pixels 284 // topBorderHeight Height of the top border in pixels 285 // leftBorderWidth Width of the left border in pixels 286 */ 287 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 288 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 289 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp8u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 290 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 291 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 292 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 293 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 294 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 295 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4R_L, (const Ipp32s* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32s* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 296 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C1IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 297 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C3IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 298 IPPAPI(IppStatus, ippiCopyMirrorBorder_8u_C4IR_L, (const Ipp8u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 299 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C1IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 300 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C3IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 301 IPPAPI(IppStatus, ippiCopyMirrorBorder_16s_C4IR_L, (const Ipp16s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 302 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C1IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 303 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C3IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 304 IPPAPI(IppStatus, ippiCopyMirrorBorder_32s_C4IR_L, (const Ipp32s* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 305 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 306 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 307 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4IR_L, (const Ipp16u* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 308 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 309 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 310 IPPAPI(IppStatus, ippiCopyMirrorBorder_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp16u* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 311 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 312 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 313 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, IppiSizeL srcRoiSize, Ipp32f* pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftBorderWidth)) 314 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C1IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 315 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C3IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 316 IPPAPI(IppStatus, ippiCopyMirrorBorder_32f_C4IR_L, (const Ipp32f* pSrc, IppSizeL srcDstStep, IppiSizeL srcRoiSize, IppiSizeL dstRoiSize, IppSizeL topBorderHeight, IppSizeL leftborderwidth)) 317 318 /* ///////////////////////////////////////////////////////////////////////////// 319 // Bilateral filter functions with Border 320 ///////////////////////////////////////////////////////////////////////////// 321 // Name: ippiFilterBilateralBorderGetBufferSize_L 322 // Purpose: to define buffer size for bilateral filter 323 // Parameters: 324 // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss. 325 // dstRoiSize Roi size (in pixels) of destination image what will be applied 326 // for processing. 327 // radius Radius of circular neighborhood what defines pixels for calculation. 328 // dataType Data type of the source and destination images. Possible values 329 // are Ipp8u and Ipp32f. 330 // numChannels Number of channels in the images. Possible values are 1 and 3. 331 // distMethod The type of method for definition of distance beetween pixel untensity. 332 // Possible value is ippDistNormL1. 333 // pSpecSize Pointer to the size (in bytes) of the spec. 334 // pBufferSize Pointer to the size (in bytes) of the external work buffer. 335 // Return: 336 // ippStsNoErr OK 337 // ippStsNullPtrErr any pointer is NULL 338 // ippStsSizeErr size of dstRoiSize is less or equal 0 339 // ippStsMaskSizeErr radius is less or equal 0 340 // ippStsNotSupportedModeErr filter or distMethod is not supported 341 // ippStsDataTypeErr Indicates an error when dataType has an illegal value. 342 // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value. 343 */ 344 IPPAPI(IppStatus, ippiFilterBilateralBorderGetBufferSize_L , (IppiFilterBilateralType filter, IppiSizeL dstRoiSize, int radius, IppDataType dataType, int numChannels, IppiDistanceMethodType distMethodType, IppSizeL *pSpecSize, IppSizeL *pBufferSize)) 345 346 /* ///////////////////////////////////////////////////////////////////////////// 347 // Name: ippiFilterBilateralBorderInit_L 348 // Purpose: initialization of Spec for bilateral filter with border 349 // Parameters: 350 // filter Type of bilateral filter. Possible value is ippiFilterBilateralGauss. 351 // dstRoiSize Roi size (in pixels) of destination image what will be applied 352 // for processing. 353 // radius Radius of circular neighborhood what defines pixels for calculation. 354 // dataType Data type of the source and destination images. Possible values 355 // are Ipp8u and Ipp32f. 356 // numChannels Number of channels in the images. Possible values are 1 and 3. 357 // distMethodType The type of method for definition of distance between pixel intensity. 358 // Possible value is ippDistNormL1. 359 // valSquareSigma square of Sigma for factor function for pixel intensity 360 // posSquareSigma square of Sigma for factor function for pixel position 361 // pSpec pointer to Spec 362 // Return: 363 // ippStsNoErr OK 364 // ippStsNullPtrErr pointer ro Spec is NULL 365 // ippStsSizeErr size of dstRoiSize is less or equal 0 366 // ippStsMaskSizeErr radius is less or equal 0 367 // ippStsNotSupportedModeErr filter or distMethod is not supported 368 // ippStsDataTypeErr Indicates an error when dataType has an illegal value. 369 // ippStsNumChannelsErr Indicates an error when numChannels has an illegal value. 370 // ippStsBadArgErr valSquareSigma or posSquareSigma is less or equal 0 371 */ 372 IPPAPI(IppStatus, ippiFilterBilateralBorderInit_L ,(IppiFilterBilateralType filter, IppiSizeL dstRoiSize, int radius, IppDataType dataType, int numChannels, IppiDistanceMethodType distMethod, Ipp32f valSquareSigma, Ipp32f posSquareSigma, IppiFilterBilateralSpec *pSpec)) 373 374 /* ///////////////////////////////////////////////////////////////////////////// 375 // Name: ippiFilterBilateralBorder_8u_C1R 376 // ippiFilterBilateralBorder_8u_C3R 377 // Purpose: bilateral filter 378 // Parameters: 379 // pSrc Pointer to the source image 380 // srcStep Step through the source image 381 // pDst Pointer to the destination image 382 // dstStep Step through the destination image 383 // dstRoiSize Size of the destination ROI 384 // borderType Type of border. 385 // borderValue Pointer to constant value to assign to pixels of the constant border. This parameter is applicable 386 // only to the ippBorderConst border type. If this pointer is NULL than the constant value is equal 0. 387 // pSpec Pointer to filter spec 388 // pBuffer Pointer to work buffer 389 // Return: 390 // ippStsNoErr OK 391 // ippStsNullPtrErr pointer to Src, Dst, Spec or Buffer is NULL 392 // ippStsSizeErr size of dstRoiSize is less or equal 0 393 // ippStsContextMatchErr filter Spec is not match 394 // ippStsNotEvenStepErr Indicated an error when one of the step values is not divisible by 4 395 // for floating-point images. 396 // ippStsBorderErr Indicates an error when borderType has illegal value. 397 */ 398 IPPAPI(IppStatus, ippiFilterBilateralBorder_8u_C1R_L, (const Ipp8u *pSrc, IppSizeL srcStep, Ipp8u *pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppiBorderType borderType, Ipp8u *pBorderValue, const IppiFilterBilateralSpec *pSpec, Ipp8u* pBuffer)) 399 IPPAPI(IppStatus, ippiFilterBilateralBorder_8u_C3R_L, (const Ipp8u *pSrc, IppSizeL srcStep, Ipp8u *pDst, IppSizeL dstStep, IppiSizeL dstRoiSize, IppiBorderType borderType, Ipp8u *pBorderValue, const IppiFilterBilateralSpec *pSpec, Ipp8u* pBuffer)) 400 401 402 /* ///////////////////////////////////////////////////////////////////////////// 403 // Resize Transform Functions 404 ///////////////////////////////////////////////////////////////////////////// */ 405 406 /* ///////////////////////////////////////////////////////////////////////////// 407 // Name: ippiResizeGetSize_L 408 // Purpose: Computes the size of Spec structure and temporal buffer for Resize transform 409 // 410 // Parameters: 411 // srcSize Size of the input image (in pixels) 412 // dstSize Size of the output image (in pixels) 413 // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} and ipp64f only for Linear interpolation 414 // numChannels Number of channels, possible values are 1 or 3 or 4 415 // interpolation Interpolation method 416 // antialiasing Supported values: 417 // 0 - resizing without antialiasing 418 // 1 - resizing with antialiasing 419 // pSpecSize Pointer to the size (in bytes) of the Spec structure 420 // pInitBufSize Pointer to the size (in bytes) of the temporal buffer 421 // 422 // Return Values: 423 // ippStsNoErr Indicates no error 424 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 425 // ippStsNoOperation Indicates a warning if width or height of any image is zero 426 // ippStsSizeErr Indicates an error in the following cases: 427 // - if width or height of the source or destination image is negative, 428 // - if the source image size is less than a filter size of the chosen 429 // interpolation method (except ippSuper) 430 // - if one of the specified dimensions of the source image is less than 431 // the corresponding dimension of the destination image (for ippSuper method only) 432 // ippStsExceededSizeErr Indicates an error in the following cases: 433 // - if one of the calculated sizes exceeds maximum of IppSizeL type positive value 434 // (the size of the one of the processed images is too large) 435 // - if one of width or height of the destination image or the source image with borders 436 // exceeds 536870911 (0x1FFFFFFF) 437 // ippStsInterpolationErr Indicates an error if interpolation has an illegal value 438 // ippStsDataTypeErr Indicates an error when dataType has an illegal value 439 // ippStsNoAntialiasing Indicates a warning if specified interpolation does not support antialiasing 440 // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported 441 // 442 // Notes: 443 // 1. Supported interpolation methods are ippNearest, ippLinear, ippCubic, ippLanczos and ippSuper. 444 // 2. If antialiasing value is equal to 1, use the ippResizeAntialiasing<Filter>Init functions, otherwise, use ippResize<Filter>Init 445 // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1, 446 // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4. 447 */ 448 IPPAPI(IppStatus, ippiResizeGetSize_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiInterpolationType interpolation, Ipp32u antialiasing, IppSizeL* pSpecSize, IppSizeL* pInitBufSize)) 449 450 /* ///////////////////////////////////////////////////////////////////////////// 451 // Name: ippiResizeGetBufferSize_L 452 // Purpose: Computes the size of external buffer for Resize transform 453 // 454 // Parameters: 455 // pSpec Pointer to the Spec structure for resize filter 456 // dstSize Size of the output image (in pixels) 457 // numChannels Number of channels, possible values are 1 or 3 or 4 458 // pBufSize Pointer to the size (in bytes) of the external buffer 459 // 460 // Return Values: 461 // ippStsNoErr Indicates no error 462 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 463 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 464 // ippStsNumChannelsErr Indicates an error if numChannels has illegal value 465 // ippStsExceededSizeErr Indicates an error if one of the calculated sizes exceeds maximum of IppSizeL type 466 // positive value (the size of the one of the processed images is too large) 467 // ippStsSizeWrn Indicates a warning if the destination image size is more than 468 // the destination image origin size 469 */ 470 IPPAPI(IppStatus, ippiResizeGetBufferSize_L, (const IppiResizeSpec* pSpec, IppiSizeL dstSize, Ipp32u numChannels, IppSizeL* pBufSize)) 471 472 /* ///////////////////////////////////////////////////////////////////////////// 473 // Name: ippiResizeGetBorderSize_L 474 // Purpose: Computes the size of possible borders for Resize transform 475 // 476 // Parameters: 477 // pSpec Pointer to the Spec structure for resize filter 478 // borderSize Size of necessary borders (for memory allocation) 479 // 480 // Return Values: 481 // ippStsNoErr Indicates no error 482 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 483 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 484 */ 485 IPPAPI(IppStatus, ippiResizeGetBorderSize_L, (const IppiResizeSpec* pSpec, IppiBorderSize* pBorderSize)) 486 487 /* ///////////////////////////////////////////////////////////////////////////// 488 // Name: ippiResizeGetSrcOffset 489 // Purpose: Computes the offset of input image for Resize transform by tile processing 490 // 491 // Parameters: 492 // pSpec Pointer to the Spec structure for resize filter 493 // dstOffset Offset of the tiled destination image respective 494 // to the destination image origin 495 // srcOffset Pointer to the computed offset of input image 496 // 497 // Return Values: 498 // ippStsNoErr Indicates no error 499 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 500 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 501 // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the 502 // destination image origin 503 */ 504 IPPAPI (IppStatus, ippiResizeGetSrcOffset_L, (const IppiResizeSpec* pSpec, IppiPointL dstOffset, IppiPointL* srcOffset)) 505 506 /* ///////////////////////////////////////////////////////////////////////////// 507 // Name: ippiResizeGetSrcRoi 508 // Purpose: Computes the ROI of input image 509 // for Resize transform by tile processing 510 // 511 // Parameters: 512 // pSpec Pointer to the Spec structure for resize filter 513 // dstRoiOffset Offset of the destination image ROI 514 // dstRoiSize Size of the ROI of destination image 515 // srcRoiOffset Pointer to the computed offset of source image ROI 516 // srcRoiSize Pointer to the computed ROI size of source image 517 // 518 // Return Values: 519 // ippStsNoErr Indicates no error 520 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 521 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 522 // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside 523 // the destination image origin 524 // ippStsSizeErr Indicates an error in the following cases: 525 // - if width or height of the destination image ROI size 526 // is negative or equal to 0, 527 // IppStsSizeWrn Indicates a warning if the destination ROI exceeds with 528 // the destination image origin 529 */ 530 IPPAPI (IppStatus, ippiResizeGetSrcRoi_L, (const IppiResizeSpec* pSpec, IppiPointL dstRoiOffset, IppiSizeL dstRoiSize, IppiPointL* srcRoiOffset, IppiSizeL* srcRoiSize)) 531 532 /* ///////////////////////////////////////////////////////////////////////////// 533 // Name: ippiResizeNearestInit_L 534 // ippiResizeLinearInit_L 535 // ippiResizeCubicInit_L 536 // ippiResizeLanczosInit_L 537 // ippiResizeSuperInit_L 538 // 539 // Purpose: Initializes the Spec structure for the Resize transform 540 // by different interpolation methods 541 // 542 // Parameters: 543 // srcSize Size of the input image (in pixels) 544 // dstSize Size of the output image (in pixels) 545 // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} and ipp64f only for Linear interpolation 546 // numChannels Number of channels, possible values are 1 or 3 or 4 547 // valueB The first parameter (B) for specifying Cubic filters 548 // valueC The second parameter (C) for specifying Cubic filters 549 // numLobes The parameter for specifying Lanczos (2 or 3) or Hahn (3 or 4) filters 550 // pInitBuf Pointer to the temporal buffer for several filter initialization 551 // pSpec Pointer to the Spec structure for resize filter 552 // 553 // Return Values: 554 // ippStsNoErr Indicates no error 555 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 556 // ippStsNoOperation Indicates a warning if width or height of any image is zero 557 // ippStsSizeErr Indicates an error in the following cases: 558 // - if width or height of the source or destination image is negative, 559 // - if the source image size is less than a filter size of the chosen 560 // interpolation method (except ippiResizeSuperInit). 561 // - if one of the specified dimensions of the source image is less than 562 // the corresponding dimension of the destination image 563 // (for ippiResizeSuperInit only). 564 // ippStsExceededSizeErr Indicates an error if one of width or height of the destination image or 565 // the source image with borders exceeds 536870911 (0x1FFFFFFF) 566 // ippStsDataTypeErr Indicates an error when dataType has an illegal value. 567 // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported. 568 // 569 // Notes/References: 570 // 1. The equation shows the family of cubic filters: 571 // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1 572 // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C)) / 6 for 1 <= |x| < 2 573 // 0 elsewhere 574 // 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. 575 // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics" 576 // http://www.mentallandscape.com/Papers_siggraph88.pdf 577 // 578 // 2. Hahn filter does not supported now. 579 // 3. The implemented interpolation algorithms have the following filter sizes: Nearest Neighbor 1x1, 580 // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4, 3-lobed Lanczos 6x6. 581 */ 582 IPPAPI(IppStatus, ippiResizeNearestInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) 583 IPPAPI(IppStatus, ippiResizeLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) 584 IPPAPI(IppStatus, ippiResizeCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) 585 IPPAPI(IppStatus, ippiResizeLanczosInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32u numLobes, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) 586 IPPAPI(IppStatus, ippiResizeSuperInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec)) 587 588 /* ///////////////////////////////////////////////////////////////////////////// 589 // Name: ippiResizeNearest 590 // ippiResizeLinear 591 // ippiResizeCubic 592 // ippiResizeLanczos 593 // ippiResizeSuper 594 // 595 // Purpose: Changes an image size by different interpolation methods 596 // 597 // Parameters: 598 // pSrc Pointer to the source image 599 // srcStep Distance (in bytes) between of consecutive lines in the source image 600 // pDst Pointer to the destination image 601 // dstStep Distance (in bytes) between of consecutive lines in the destination image 602 // border Type of the border 603 // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant 604 // pSpec Pointer to the Spec structure for resize filter 605 // pBuffer Pointer to the work buffer 606 // 607 // Return Values: 608 // ippStsNoErr Indicates no error 609 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 610 // ippStsNoOperation Indicates a warning if width or height of output image is zero 611 // ippStsBorderErr Indicates an error if border type has an illegal value 612 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 613 // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported 614 // ippStsSizeErr Indicates an error if width or height of the destination image 615 // is negative 616 // ippStsStepErr Indicates an error if the step value is not data type multiple 617 // ippStsSizeWrn Indicates a warning if the destination image size is more than 618 // the destination image origin size 619 // 620 // Notes: 621 // 1. Supported border types are ippBorderInMem and ippBorderRepl 622 // (except Nearest Neighbor and Super Sampling methods). 623 // 2. Hahn filter does not supported now. 624 */ 625 IPPAPI(IppStatus, ippiResizeNearest_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 626 IPPAPI(IppStatus, ippiResizeNearest_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 627 IPPAPI(IppStatus, ippiResizeNearest_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 628 IPPAPI(IppStatus, ippiResizeNearest_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 629 IPPAPI(IppStatus, ippiResizeNearest_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 630 IPPAPI(IppStatus, ippiResizeNearest_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 631 IPPAPI(IppStatus, ippiResizeNearest_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 632 IPPAPI(IppStatus, ippiResizeNearest_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 633 IPPAPI(IppStatus, ippiResizeNearest_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 634 IPPAPI(IppStatus, ippiResizeNearest_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 635 IPPAPI(IppStatus, ippiResizeNearest_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 636 IPPAPI(IppStatus, ippiResizeNearest_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 637 638 IPPAPI (IppStatus, ippiResizeLinear_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 639 IPPAPI (IppStatus, ippiResizeLinear_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 640 IPPAPI (IppStatus, ippiResizeLinear_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 641 IPPAPI (IppStatus, ippiResizeLinear_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 642 IPPAPI (IppStatus, ippiResizeLinear_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 643 IPPAPI (IppStatus, ippiResizeLinear_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 644 IPPAPI (IppStatus, ippiResizeLinear_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 645 IPPAPI (IppStatus, ippiResizeLinear_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 646 IPPAPI (IppStatus, ippiResizeLinear_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 647 IPPAPI (IppStatus, ippiResizeLinear_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 648 IPPAPI (IppStatus, ippiResizeLinear_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 649 IPPAPI (IppStatus, ippiResizeLinear_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 650 IPPAPI (IppStatus, ippiResizeLinear_64f_C1R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 651 IPPAPI (IppStatus, ippiResizeLinear_64f_C3R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 652 IPPAPI (IppStatus, ippiResizeLinear_64f_C4R_L, (const Ipp64f* pSrc, IppSizeL srcStep, Ipp64f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp64f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 653 654 IPPAPI (IppStatus, ippiResizeCubic_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 655 IPPAPI (IppStatus, ippiResizeCubic_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 656 IPPAPI (IppStatus, ippiResizeCubic_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 657 IPPAPI (IppStatus, ippiResizeCubic_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 658 IPPAPI (IppStatus, ippiResizeCubic_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 659 IPPAPI (IppStatus, ippiResizeCubic_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 660 IPPAPI (IppStatus, ippiResizeCubic_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 661 IPPAPI (IppStatus, ippiResizeCubic_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 662 IPPAPI (IppStatus, ippiResizeCubic_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 663 IPPAPI (IppStatus, ippiResizeCubic_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 664 IPPAPI (IppStatus, ippiResizeCubic_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 665 IPPAPI (IppStatus, ippiResizeCubic_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 666 667 IPPAPI (IppStatus, ippiResizeLanczos_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 668 IPPAPI (IppStatus, ippiResizeLanczos_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 669 IPPAPI (IppStatus, ippiResizeLanczos_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 670 IPPAPI (IppStatus, ippiResizeLanczos_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 671 IPPAPI (IppStatus, ippiResizeLanczos_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 672 IPPAPI (IppStatus, ippiResizeLanczos_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 673 IPPAPI (IppStatus, ippiResizeLanczos_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 674 IPPAPI (IppStatus, ippiResizeLanczos_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 675 IPPAPI (IppStatus, ippiResizeLanczos_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 676 IPPAPI (IppStatus, ippiResizeLanczos_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 677 IPPAPI (IppStatus, ippiResizeLanczos_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 678 IPPAPI (IppStatus, ippiResizeLanczos_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, const Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 679 680 IPPAPI (IppStatus, ippiResizeSuper_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 681 IPPAPI (IppStatus, ippiResizeSuper_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 682 IPPAPI (IppStatus, ippiResizeSuper_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 683 IPPAPI (IppStatus, ippiResizeSuper_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 684 IPPAPI (IppStatus, ippiResizeSuper_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 685 IPPAPI (IppStatus, ippiResizeSuper_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 686 IPPAPI (IppStatus, ippiResizeSuper_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 687 IPPAPI (IppStatus, ippiResizeSuper_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 688 IPPAPI (IppStatus, ippiResizeSuper_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 689 IPPAPI (IppStatus, ippiResizeSuper_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 690 IPPAPI (IppStatus, ippiResizeSuper_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 691 IPPAPI (IppStatus, ippiResizeSuper_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 692 693 /* ///////////////////////////////////////////////////////////////////////////// 694 // Name: ippiResizeNearestAntialiasingInit_L 695 // ippiResizeLinearAntialiasingInit_L 696 // ippiResizeCubicAntialiasingInit_L 697 // 698 // Purpose: Initializes the Spec structure for the Resize transform 699 // with antialiasing by different interpolation methods 700 // 701 // Parameters: 702 // srcSize Size of the input image (in pixels) 703 // dstSize Size of the output image (in pixels) 704 // dataType Data type {ipp8u|ipp16u|ipp16s|ipp32f} 705 // valueB The first parameter (B) for specifying Cubic filters 706 // valueC The second parameter (C) for specifying Cubic filters 707 // numLobes The parameter for specifying Lanczos (2 or 3) or Hahn (3 or 4) filters 708 // pInitBuf Pointer to the temporal buffer for several filter initialization 709 // pSpec Pointer to the Spec structure for resize filter 710 // 711 // Return Values: 712 // ippStsNoErr Indicates no error 713 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 714 // ippStsNoOperation Indicates a warning if width or height of any image is zero 715 // ippStsSizeErr Indicates an error if width or height of the source image is negative 716 // ippStsExceededSizeErr Indicates an error if one of width or height of the destination image or 717 // the source image with borders exceeds 536870911 (0x1FFFFFFF) 718 // ippStsNotSupportedModeErr Indicates an error if the requested mode is not supported. 719 // 720 // Notes/References: 721 // 1. The equation shows the family of cubic filters: 722 // ((12-9B-6C)*|x|^3 + (-18+12B+6C)*|x|^2 + (6-2B) ) / 6 for |x| < 1 723 // K(x) = (( -B-6C)*|x|^3 + ( 6B+30C)*|x|^2 + (-12B-48C)*|x| + (8B+24C)) / 6 for 1 <= |x| < 2 724 // 0 elsewhere 725 // 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. 726 // Mitchell, Don P.; Netravali, Arun N. (Aug. 1988). "Reconstruction filters in computer graphics" 727 // http://www.mentallandscape.com/Papers_siggraph88.pdf 728 // 729 // 2. Hahn filter does not supported now. 730 // 3. The implemented interpolation algorithms have the following filter sizes: 731 // Linear 2x2, Cubic 4x4, 2-lobed Lanczos 4x4, 3-lobed Lanczos 6x6. 732 */ 733 734 IPPAPI (IppStatus, ippiResizeAntialiasingLinearInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) 735 IPPAPI (IppStatus, ippiResizeAntialiasingCubicInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32f valueB, Ipp32f valueC, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) 736 IPPAPI (IppStatus, ippiResizeAntialiasingLanczosInit_L, (IppiSizeL srcSize, IppiSizeL dstSize, IppDataType dataType, Ipp32u numLobes, IppiResizeSpec* pSpec, Ipp8u* pInitBuf)) 737 738 739 /* ///////////////////////////////////////////////////////////////////////////// 740 // Name: ippiResizeAntialiasing 741 // 742 // Purpose: Changes an image size by different interpolation methods with antialiasing technique 743 // 744 // Parameters: 745 // pSrc Pointer to the source image 746 // srcStep Distance (in bytes) between of consecutive lines in the source image 747 // pDst Pointer to the destination image 748 // dstStep Distance (in bytes) between of consecutive lines in the destination image 749 // dstOffset Offset of tiled image respectively destination image origin 750 // dstSize Size of the destination image (in pixels) 751 // border Type of the border 752 // borderValue Pointer to the constant value(s) if border type equals ippBorderConstant 753 // pSpec Pointer to the Spec structure for resize filter 754 // pBuffer Pointer to the work buffer 755 // 756 // Return Values: 757 // ippStsNoErr Indicates no error 758 // ippStsNullPtrErr Indicates an error if one of the specified pointers is NULL 759 // ippStsBorderErr Indicates an error if border type has an illegal value 760 // ippStsContextMatchErr Indicates an error if pointer to an invalid pSpec structure is passed 761 // ippStsNotSupportedModeErr Indicates an error if requested mode is currently not supported 762 // ippStsStepErr Indicates an error if the step value is not data type multiple 763 // ippStsOutOfRangeErr Indicates an error if the destination image offset point is outside the 764 // destination image origin 765 // ippStsSizeWrn Indicates a warning if the destination image size is more than 766 // the destination image origin size 767 // 768 // Notes: 769 // 1. Supported border types are ippBorderInMemory and ippBorderReplicate. 770 // 2. Hahn filter does not supported now. 771 */ 772 IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 773 IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 774 IPPAPI (IppStatus, ippiResizeAntialiasing_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp8u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 775 IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C1R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 776 IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C3R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 777 IPPAPI (IppStatus, ippiResizeAntialiasing_16u_C4R_L, (const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16u* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 778 IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C1R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 779 IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C3R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 780 IPPAPI (IppStatus, ippiResizeAntialiasing_16s_C4R_L, (const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp16s* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 781 IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 782 IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 783 IPPAPI (IppStatus, ippiResizeAntialiasing_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, IppiPointL dstOffset, IppiSizeL dstSize, IppiBorderType border, Ipp32f* pBorderValue, const IppiResizeSpec* pSpec, Ipp8u* pBuffer)) 784 785 786 787 /* ============================================================================= 788 ippCV 789 ============================================================================= */ 790 791 /* /////////////////////////////////////////////////////////////////////////////////////// 792 // Name: ippiFilterGaussianGetBufferSize 793 // 794 // Purpose: Computes the size of the working buffer for the Gaussian filter 795 // 796 // Return: 797 // ippStsNoErr Ok. Any other value indicates an error or a warning. 798 // ippStsNullPtrErr One of the pointers is NULL. 799 // ippStsSizeErr maxRoiSize has a field with zero or negative value. 800 // ippStsDataTypeErr Indicates an error when dataType has an illegal value. 801 // ippStsBadArgErr Indicates an error if kernelSize is even or is less than 3. 802 // ippStsChannelErr Indicates an error when numChannels has an illegal value. 803 // 804 // Arguments: 805 // maxRoiSize Maximal size of the image ROI in pixels. 806 // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). 807 // dataType Data type of the source and destination images. 808 // numChannels Number of channels in the images. Possible values are 1 and 3. 809 // pSpecSize Pointer to the computed size (in bytes) of the Gaussian 810 // specification structure. 811 // pBufferSize Pointer to the computed size (in bytes) of the external buffer. 812 */ 813 IPPAPI(IppStatus, ippiFilterGaussianGetBufferSize_L,(IppiSizeL maxRoiSize, int kernelSize, 814 IppDataType dataType, IppiBorderType borderType, int numChannels, IppSizeL* pBufferSize)) 815 816 /* /////////////////////////////////////////////////////////////////////////////////////// 817 // Name: ippiFilterGaussianGetSpecSize_L 818 // 819 // Purpose: Computes the size of the working buffer for the Gaussian filter GaussianSpec 820 // 821 // Return: 822 // ippStsNoErr Ok. Any other value indicates an error or a warning. 823 // ippStsNullPtrErr One of the pointers is NULL. 824 // ippStsSizeErr maxRoiSize has a field with zero or negative value. 825 // ippStsDataTypeErr Indicates an error when dataType has an illegal value. 826 // ippStsBadArgErr Indicates an error if kernelSize is even or is less than 3. 827 // ippStsChannelErr Indicates an error when numChannels has an illegal value. 828 // 829 // Arguments: 830 // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). 831 // dataType Data type of the source and destination images. 832 // numChannels Number of channels in the images. Possible values are 1 and 3. 833 // pSpecSize Pointer to the computed size (in bytes) of the Gaussian 834 // specification structure. 835 // pInitBufferSize Pointer to the computed size (in bytes) of the external buffer for the Gaussian filter GaussianSpec. 836 */ 837 IPPAPI(IppStatus, ippiFilterGaussianGetSpecSize_L,(int kernelSize, IppDataType dataType, int numChannels, IppSizeL *pSpecSize, IppSizeL* pInitBufferSize)) 838 839 840 /* /////////////////////////////////////////////////////////////////////////////////////// 841 // Name: ippiFilterGaussianInit 842 // 843 // Purpose: initialization of Spec for Gaussian filter 844 // 845 // Return: 846 // ippStsNoErr Ok. Any other value indicates an error or a warning. 847 // ippStsNullPtrErr One of the pointers is NULL. 848 // ippStsSizeErr roiSize has a field with zero or negative value. 849 // ippStsDataTypeErr Indicates an error when borderType has an illegal value. 850 // ippStsBadArgErr kernelSize is even or is less than 3. 851 // ippStsChannelErr Indicates an error when numChannels has an illegal value. 852 // ippStsBorderErr Indicates an error condition if borderType has a illegal 853 // value. 854 // 855 // Arguments: 856 // roiSize Size of the image ROI in pixels. 857 // kernelSize Size of the Gaussian kernel (odd, greater or equal to 3). 858 // sigma Standard deviation of the Gaussian kernel. 859 // borderType One of border supported types. 860 // dataType Data type of the source and destination images. 861 // numChannels Number of channels in the images. Possible values are 1 and 3. 862 // pSpec Pointer to the Spec. 863 // pBuffer Pointer to the buffer: 864 */ 865 866 867 IPPAPI(IppStatus, ippiFilterGaussianInit_L,(IppiSizeL roiSize, int kernelSize, Ipp32f sigma, IppiBorderType borderType, IppDataType dataType, int numChannels, 868 IppFilterGaussianSpec* pSpec, Ipp8u* pInitBuffer)) 869 870 871 /* /////////////////////////////////////////////////////////////////////////////////////// 872 // Name: ippiFilterGaussian 873 // 874 // Purpose: Applies Gaussian filter with borders 875 // 876 // Return: 877 // ippStsNoErr Ok. Any other value indicates an error or a warning. 878 // ippStsNullPtrErr One of the specified pointers is NULL. 879 // ippStsSizeErr roiSize has a field with zero or negative value. 880 // ippStsStepErr Indicates an error condition if srcStep or dstStep is less 881 // than roiSize.width * <pixelSize>. 882 // ippStsNotEvenStepErr One of the step values is not divisible by 4 for floating-point images. 883 // ippStsBadArgErr kernelSize is less than 3 or sigma is less or equal than 0. 884 // 885 // Arguments: 886 // pSrc Pointer to the source image ROI. 887 // srcStep Distance in bytes between starts of consecutive lines in the source image. 888 // pDst Pointer to the destination image ROI. 889 // dstStep Distance in bytes between starts of consecutive lines in the destination image. 890 // roiSize Size of the source and destination image ROI. 891 // borderType One of border supported types. 892 // borderValue Constant value to assign to pixels of the constant border. if border type equals ippBorderConstant 893 // pSpec Pointer to the Gaussian specification structure. 894 // pBuffer Pointer to the working buffer. 895 */ 896 897 ////////////////////////////////////////////////////////////////////////////////////////// 898 899 IPPAPI(IppStatus, ippiFilterGaussian_32f_C1R_L,(const Ipp32f* pSrc, IppSizeL srcStep, 900 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp32f borderValue[1], 901 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 902 903 IPPAPI(IppStatus, ippiFilterGaussian_16u_C1R_L,(const Ipp16u * pSrc, IppSizeL srcStep, 904 Ipp16u * pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16u borderValue[1], 905 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 906 907 IPPAPI(IppStatus, ippiFilterGaussian_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, 908 Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16s borderValue[1], 909 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 910 911 IPPAPI(IppStatus, ippiFilterGaussian_8u_C1R_L,(const Ipp8u* pSrc, IppSizeL srcStep, 912 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], 913 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 914 915 IPPAPI(IppStatus, ippiFilterGaussian_32f_C3R_L,(const Ipp32f* pSrc, IppSizeL srcStep, 916 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp32f borderValue[3], 917 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 918 919 IPPAPI(IppStatus, ippiFilterGaussian_16u_C3R_L,(const Ipp16u * pSrc, IppSizeL srcStep, 920 Ipp16u * pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16u borderValue[3], 921 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 922 923 IPPAPI(IppStatus, ippiFilterGaussian_16s_C3R_L,(const Ipp16s* pSrc, IppSizeL srcStep, 924 Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp16s borderValue[3], 925 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 926 927 IPPAPI(IppStatus, ippiFilterGaussian_8u_C3R_L,(const Ipp8u* pSrc, IppSizeL srcStep, 928 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[3], 929 IppFilterGaussianSpec* pSpec, Ipp8u* pBuffer)) 930 931 /****************************************************************************************\ 932 * Morphological Operations * 933 \****************************************************************************************/ 934 935 /* /////////////////////////////////////////////////////////////////////////////////////// 936 // Name: ippiDilateGetBufferSize_L, ippiErodeGetBufferSize_L 937 // 938 // 939 // Purpose: Gets the size of the internal state or specification structure for morphological operations. 940 // 941 // Return: 942 // ippStsNoErr Ok. 943 // ippStsNullPtrErr One of the pointers is NULL. 944 // ippStsSizeErr Width of the image, or width or height of the structuring 945 // element is less than,or equal to zero. 946 // 947 // Parameters: 948 // roiSize Size of the source and destination image ROI in pixels. 949 // maskSize Size of the structuring element. 950 // dataType The type of data 951 // numChannels The number of channels 952 // pBufferSize Pointer to the buffer size value for the morphological initialization function. 953 */ 954 955 IPPAPI(IppStatus, ippiDilateGetBufferSize_L, (IppiSizeL roiSize, IppiSizeL maskSize, IppDataType datatype, int numChannels, IppSizeL* pBufferSize)) 956 957 IPPAPI(IppStatus, ippiErodeGetBufferSize_L, (IppiSizeL roiSize, IppiSizeL maskSize, IppDataType datatype, int numChannels, IppSizeL* pBufferSize)) 958 959 960 /* /////////////////////////////////////////////////////////////////////////////////////// 961 // Name: ippiDilateGetSpecSize_L, ippiErodeGetSpecSize_L 962 // 963 // 964 // Purpose: Gets the size of the internal state or specification structure for morphological operations. 965 // 966 // Return: 967 // ippStsNoErr Ok. 968 // ippStsNullPtrErr One of the pointers is NULL. 969 // ippStsSizeErr Width of the image, or width or height of the structuring 970 // element is less than,or equal to zero. 971 // 972 // Parameters: 973 // roiSize Size of the source and destination image ROI in pixels. 974 // maskSize Size of the structuring element. 975 // pSpecSize Pointer to the specification structure size. 976 */ 977 978 IPPAPI(IppStatus, ippiDilateGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppSizeL* pSpecSize)) 979 IPPAPI(IppStatus, ippiErodeGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppSizeL* pSpecSize)) 980 981 982 /* /////////////////////////////////////////////////////////////////////////////////////// 983 // Name: ippiDilateInit_L, ippiErodeInit_L 984 // 985 // Purpose: Initialize the internal state or specification structure for morphological operation. 986 // 987 // Return: 988 // ippStsNoErr Ok. 989 // ippStsNullPtrErr One of the pointers is NULL. 990 // ippStsSizeErr Width of the image or width or height of the structuring 991 // element is less than, or equal to zero. 992 // ippStsAnchorErr Anchor point is outside the structuring element. 993 // 994 // Parameters: 995 // roiSize Size of the source and destination image ROI in pixels. 996 // pMask Pointer to the structuring element (mask). 997 // maskSize Size of the structuring element. 998 // pMorphSpec Pointer to the morphology specification structure. 999 */ 1000 1001 1002 IPPAPI(IppStatus, ippiDilateInit_L,(IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppiMorphStateL* pMorphSpec)) 1003 IPPAPI(IppStatus, ippiErodeInit_L,(IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppiMorphStateL* pMorphSpec)) 1004 1005 1006 /* /////////////////////////////////////////////////////////////////////////////////////// 1007 // Name: ippiDilate_8u_C1R, ippiDilate_8u_C3R, 1008 // ippiDilate_8u_C4R, ippiDilate_32f_C1R, 1009 // ippiDilate_32f_C3R, ippiDilate_32f_C4R 1010 // 1011 // ippiErode_8u_C1R, ippiErode_8u_C3R, 1012 // ippiErode_8u_C4R, ippiErode_32f_C1R, 1013 // ippiErode_32f_C3R, ippiErode_32f_C4R, 1014 // 1015 // ippiDilate_16u_C1R, ippiDilate_16s_C1R, 1016 // ippiDilate_1u_C1R 1017 // 1018 // Purpose: Perform erosion/dilation of the image arbitrary shape structuring element. 1019 // 1020 // Return: 1021 // ippStsNoErr Ok. 1022 // ippStsNullPtrErr One of the pointers is NULL. 1023 // ippStsSizeErr The ROI width or height is less than 1, 1024 // or ROI width is bigger than ROI width in the state structure. 1025 // ippStsStepErr Step is too small to fit the image. 1026 // ippStsNotEvenStepErr Step is not multiple of the element. 1027 // ippStsBadArgErr Incorrect border type. 1028 // 1029 1030 // Parameters: 1031 // pSrc Pointer to the source image. 1032 // srcStep Step in the source image. 1033 // pDst Pointer to the destination image. 1034 // dstStep Step in the destination image. 1035 // roiSize Size of the source and destination image ROI in pixels. 1036 // borderType Type of border (ippBorderRepl now). 1037 // borderValue Pointer to the vector of values for the constant border. 1038 // pMorphSpec Pointer to the morphology specification structure. 1039 // pBuffer Pointer to the external work buffer. 1040 */ 1041 1042 IPPAPI(IppStatus, ippiDilate_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1043 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1044 IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1045 IPPAPI(IppStatus, ippiDilate_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1046 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1047 IppiBorderType borderType, const Ipp8u borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1048 IPPAPI(IppStatus, ippiDilate_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1049 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1050 IppiBorderType borderType, const Ipp8u borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1051 IPPAPI(IppStatus, ippiDilate_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1052 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1053 IppiBorderType borderType, const Ipp32f borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1054 IPPAPI(IppStatus, ippiDilate_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1055 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1056 IppiBorderType borderType, const Ipp32f borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1057 IPPAPI(IppStatus, ippiDilate_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1058 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1059 IppiBorderType borderType, const Ipp32f borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1060 IPPAPI(IppStatus, ippiDilate_1u_C1R_L,( const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1061 IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer )) 1062 IPPAPI(IppStatus, ippiDilate_16u_C1R_L,(const Ipp16u* pSrc, IppSizeL srcStep, 1063 Ipp16u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1064 IppiBorderType borderType, const Ipp16u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1065 IPPAPI(IppStatus, ippiDilate_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, 1066 Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1067 IppiBorderType borderType, const Ipp16s borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1068 1069 IPPAPI(IppStatus, ippiErode_8u_C1R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1070 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1071 IppiBorderType borderType,const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1072 IPPAPI(IppStatus, ippiErode_8u_C3R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1073 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1074 IppiBorderType borderType, const Ipp8u borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1075 IPPAPI(IppStatus, ippiErode_8u_C4R_L, (const Ipp8u* pSrc, IppSizeL srcStep, 1076 Ipp8u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1077 IppiBorderType borderType, const Ipp8u borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1078 IPPAPI(IppStatus, ippiErode_32f_C1R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1079 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1080 IppiBorderType borderType, const Ipp32f borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1081 IPPAPI(IppStatus, ippiErode_32f_C3R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1082 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1083 IppiBorderType borderType, const Ipp32f borderValue[3], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1084 IPPAPI(IppStatus, ippiErode_32f_C4R_L, (const Ipp32f* pSrc, IppSizeL srcStep, 1085 Ipp32f* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1086 IppiBorderType borderType, const Ipp32f borderValue[4], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1087 IPPAPI(IppStatus, ippiErode_16u_C1R_L,(const Ipp16u* pSrc, IppSizeL srcStep, 1088 Ipp16u* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1089 IppiBorderType borderType, const Ipp16u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1090 IPPAPI(IppStatus, ippiErode_16s_C1R_L,(const Ipp16s* pSrc, IppSizeL srcStep, 1091 Ipp16s* pDst, IppSizeL dstStep, IppiSizeL roiSize, 1092 IppiBorderType borderType, const Ipp16s borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer)) 1093 IPPAPI(IppStatus, ippiErode_1u_C1R_L,( const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1094 IppiSizeL roiSize, IppiBorderType borderType, const Ipp8u borderValue[1], const IppiMorphStateL* pMorphSpec, Ipp8u* pBuffer )) 1095 1096 1097 1098 /****************************************************************************************\ 1099 * Advanced Morphological Operations * 1100 \****************************************************************************************/ 1101 1102 1103 ///////////////////////////////////////////////////////////// 1104 1105 /* /////////////////////////////////////////////////////////////////////////////////////// 1106 // Name: ippiMorphGetSpecSize_L 1107 // 1108 // Purpose: Gets the size of the internal state or specification structure for advanced morphological operations. 1109 // 1110 // Return: 1111 // ippStsNoErr Ok. 1112 // ippStsNullPtrErr One of the pointers is NULL. 1113 // ippStsSizeErr Width of the image, or width or height of the structuring. 1114 // element is less than, or equal to zero. 1115 // 1116 // Parameters: 1117 // roiSize Maximum size of the image ROI, in pixels. 1118 // maskSize Size of the structuring element. 1119 // dataType The type of data 1120 // numChannels The number of channels 1121 // pSpecSize Pointer to the specification structure size. 1122 */ 1123 1124 IPPAPI(IppStatus, ippiMorphGetSpecSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppDataType depth, int numChannels, IppSizeL* pSpecSize)) 1125 1126 1127 /* /////////////////////////////////////////////////////////////////////////////////////// 1128 // Name: ippiMorphGetBufferSize_L 1129 // 1130 // Purpose: Gets the size of the work buffer for the advanced morphological operations. 1131 // 1132 // Return: 1133 // ippStsNoErr Ok. 1134 // ippStsNullPtrErr One of the pointers is NULL. 1135 // ippStsSizeErr Width of the image, or width or height of the structuring. 1136 // element is less than, or equal to zero. 1137 // 1138 // Parameters: 1139 // roiSize Maximum size of the image ROI, in pixels. 1140 // maskSize Size of the structuring element. 1141 // dataType The type of data 1142 // numChannels The number of channels 1143 // pBufferSize Pointer to the buffer size value for the morphology initialization function. 1144 */ 1145 1146 IPPAPI(IppStatus, ippiMorphGetBufferSize_L,(IppiSizeL roiSize, IppiSizeL maskSize, IppDataType depth, int numChannels, IppSizeL* bufferSize)) 1147 1148 1149 1150 /* /////////////////////////////////////////////////////////////////////////////////////// 1151 // Name: ippiMorphInit_L 1152 // 1153 // Purpose: Initialize the internal state or specification structure for advanced morphological operations. 1154 // 1155 // Return: 1156 // ippStsNoErr Ok. 1157 // ippStsNullPtrErr One of the pointers is NULL. 1158 // ippStsSizeErr Width of the image or width or height of the structuring 1159 // element is less than, or equal to zero. 1160 // ippStsAnchorErr Anchor point is outside the structuring element. 1161 // 1162 // Parameters: 1163 // roiSize Maximum size of the image ROI, in pixels. 1164 // pMask Pointer to the structuring element (mask). 1165 // maskSize Size of the structuring element. 1166 // dataType The type of data 1167 // numChannels The number of channels 1168 // pMorphSpec Pointer to the advanced morphology specification structure. 1169 */ 1170 1171 IPPAPI( IppStatus, ippiMorphInit_L,( IppiSizeL roiSize, const Ipp8u* pMask, IppiSizeL maskSize, IppDataType depth, int numChannels, 1172 IppiMorphAdvStateL* pMorphSpec)) 1173 1174 1175 /* /////////////////////////////////////////////////////////////////////////////////////// 1176 // Name: ippiMorphClose_8u_C1R_L, ippiMorphClose_8u_C3R_L, 1177 // ippiMorphClose_8u_C4R_L, ippiMorphClose_32f_C1R_L, 1178 // ippiMorphClose_32f_C3R_L, ippiMorphClose_32f_C4R_L 1179 // 1180 // ippiMorphOpen_8u_C1R_L, ippiMorphOpen_8u_C3R_L, 1181 // ippiMorphOpen_8u_C4R_L, ippiMorphOpen_32f_C1R_L, 1182 // ippiMorphOpen_32f_C3R_L, ippiMorphOpen_32f_C4R_L, 1183 // 1184 // ippiMorphClose_16u_C1R_L, ippiMorphOpen_16u_C1R_L, 1185 // ippiMorphClose_16s_C1R_L, ippiMorphOpen_16s_C1R_L, 1186 // ippiMorphClose_1u_C1R_L, ippiMorphOpen_1u_C1R_L, 1187 1188 // ippiMorphTophat_8u_C1R_L, ippiMorphTophat_8u_C3R_L, 1189 // ippiMorphTophat_8u_C4R_L, ippiMorphTophat_32f_C1R_L, 1190 // ippiMorphTophat_32f_C3R_L, ippiMorphTophat_32f_C4R_L, 1191 // 1192 // ippiMorphBlackhat_8u_C1R_L, ippiMorphBlackhat_8u_C3R_L, 1193 // ippiMorphBlackhat_8u_C4R_L, ippiMorphBlackhat_32f_C1R_L, 1194 // ippiMorphBlackhat_32f_C3R_L, ippiMorphBlackhat_32f_C4R_L, 1195 // 1196 // ippiMorphGradient_8u_C1R_L, ippiMorphGradient_8u_C3R_L, 1197 // ippiMorphGradient_8u_C4R_L, ippiMorphGradient_32f_C1R_L, 1198 // ippiMorphGradient_32f_C3R_L, ippiMorphGradient_32f_C4R_L, 1199 // 1200 // Purpose: Perform advanced morphologcal operations on the image arbitrary shape structuring element. 1201 // 1202 // Return: 1203 // ippStsNoErr Ok. 1204 // ippStsNullPtrErr One of the pointers is NULL. 1205 // ippStsSizeErr The ROI width or height is less than 1, 1206 // or ROI width is bigger than ROI width in the state structure. 1207 // ippStsStepErr Step is too small to fit the image. 1208 // ippStsNotEvenStepErr Step is not multiple of the element. 1209 // ippStsBadArgErr Incorrect border type. 1210 // 1211 // Parameters: 1212 // pSrc Pointer to the source image. 1213 // srcStep Step in the source image. 1214 // pDst Pointer to the destination image. 1215 // dstStep Step in the destination image. 1216 // roiSize ROI size. 1217 // borderType Type of border (ippBorderRepl now). 1218 // borderValue Value for the constant border. 1219 // pMorphSpec Pointer to the morphology specification structure. 1220 // pBuffer Pointer to the external work buffer. 1221 */ 1222 1223 ///////////////////////////////////////////////////////////////////////// 1224 1225 IPPAPI( IppStatus, ippiMorphOpen_16u_C1R_L,( 1226 const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, 1227 IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1228 IPPAPI( IppStatus, ippiMorphOpen_16s_C1R_L,( 1229 const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, 1230 IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1231 IPPAPI( IppStatus, ippiMorphOpen_1u_C1R_L,( 1232 const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1233 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1234 IPPAPI( IppStatus, ippiMorphOpen_8u_C1R_L,( 1235 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1236 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1237 IPPAPI( IppStatus, ippiMorphOpen_8u_C3R_L,( 1238 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1239 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1240 IPPAPI( IppStatus, ippiMorphOpen_8u_C4R_L,( 1241 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1242 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1243 1244 IPPAPI( IppStatus, ippiMorphClose_8u_C1R_L,( 1245 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1246 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1247 IPPAPI( IppStatus, ippiMorphClose_8u_C3R_L,( 1248 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1249 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1250 IPPAPI( IppStatus, ippiMorphClose_8u_C4R_L,( 1251 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1252 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1253 1254 IPPAPI( IppStatus, ippiMorphClose_16u_C1R_L,( 1255 const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, 1256 IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1257 IPPAPI( IppStatus, ippiMorphClose_16s_C1R_L,( 1258 const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, 1259 IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1260 IPPAPI( IppStatus, ippiMorphClose_1u_C1R_L,( 1261 const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1262 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1263 IPPAPI( IppStatus, ippiMorphOpen_32f_C1R_L,( 1264 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1265 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1266 IPPAPI( IppStatus, ippiMorphOpen_32f_C3R_L,( 1267 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1268 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1269 IPPAPI( IppStatus, ippiMorphOpen_32f_C4R_L,( 1270 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1271 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1272 IPPAPI( IppStatus, ippiMorphClose_32f_C1R_L,( 1273 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1274 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1275 IPPAPI( IppStatus, ippiMorphClose_32f_C3R_L,( 1276 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1277 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1278 IPPAPI( IppStatus, ippiMorphClose_32f_C4R_L,( 1279 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1280 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1281 1282 IPPAPI( IppStatus, ippiMorphTophat_16u_C1R_L,( 1283 const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, 1284 IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1285 IPPAPI( IppStatus, ippiMorphTophat_16s_C1R_L,( 1286 const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, 1287 IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1288 IPPAPI( IppStatus, ippiMorphTophat_1u_C1R_L,( 1289 const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1290 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1291 IPPAPI( IppStatus, ippiMorphTophat_8u_C1R_L,( 1292 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1293 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1294 IPPAPI( IppStatus, ippiMorphTophat_8u_C3R_L,( 1295 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1296 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1297 IPPAPI( IppStatus, ippiMorphTophat_8u_C4R_L,( 1298 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1299 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1300 IPPAPI( IppStatus, ippiMorphTophat_32f_C1R_L,( 1301 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1302 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1303 IPPAPI( IppStatus, ippiMorphTophat_32f_C3R_L,( 1304 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1305 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1306 IPPAPI( IppStatus, ippiMorphTophat_32f_C4R_L,( 1307 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1308 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1309 1310 IPPAPI( IppStatus, ippiMorphBlackhat_16u_C1R_L,( 1311 const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, 1312 IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1313 IPPAPI( IppStatus, ippiMorphBlackhat_16s_C1R_L,( 1314 const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, 1315 IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1316 IPPAPI( IppStatus, ippiMorphBlackhat_1u_C1R_L,( 1317 const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1318 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1319 IPPAPI( IppStatus, ippiMorphBlackhat_8u_C1R_L,( 1320 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1321 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1322 IPPAPI( IppStatus, ippiMorphBlackhat_8u_C3R_L,( 1323 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1324 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1325 IPPAPI( IppStatus, ippiMorphBlackhat_8u_C4R_L,( 1326 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1327 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1328 IPPAPI( IppStatus, ippiMorphBlackhat_32f_C1R_L,( 1329 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1330 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1331 IPPAPI( IppStatus, ippiMorphBlackhat_32f_C3R_L,( 1332 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1333 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1334 IPPAPI( IppStatus, ippiMorphBlackhat_32f_C4R_L,( 1335 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1336 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1337 1338 IPPAPI( IppStatus, ippiMorphGradient_16u_C1R_L,( 1339 const Ipp16u* pSrc, IppSizeL srcStep, Ipp16u* pDst, IppSizeL dstStep, 1340 IppiSizeL roiSize, IppiBorderType borderType, Ipp16u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1341 IPPAPI( IppStatus, ippiMorphGradient_16s_C1R_L,( 1342 const Ipp16s* pSrc, IppSizeL srcStep, Ipp16s* pDst, IppSizeL dstStep, 1343 IppiSizeL roiSize, IppiBorderType borderType, Ipp16s borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1344 IPPAPI( IppStatus, ippiMorphGradient_1u_C1R_L,( 1345 const Ipp8u* pSrc, IppSizeL srcStep, int srcBitOffset, Ipp8u* pDst, IppSizeL dstStep, int dstBitOffset, 1346 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1347 IPPAPI( IppStatus, ippiMorphGradient_8u_C1R_L,( 1348 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1349 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1350 IPPAPI( IppStatus, ippiMorphGradient_8u_C3R_L,( 1351 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1352 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1353 IPPAPI( IppStatus, ippiMorphGradient_8u_C4R_L,( 1354 const Ipp8u* pSrc, IppSizeL srcStep, Ipp8u* pDst, IppSizeL dstStep, 1355 IppiSizeL roiSize, IppiBorderType borderType, Ipp8u borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1356 IPPAPI( IppStatus, ippiMorphGradient_32f_C1R_L,( 1357 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1358 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[1], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1359 IPPAPI( IppStatus, ippiMorphGradient_32f_C3R_L,( 1360 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1361 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[3], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1362 IPPAPI( IppStatus, ippiMorphGradient_32f_C4R_L,( 1363 const Ipp32f* pSrc, IppSizeL srcStep, Ipp32f* pDst, IppSizeL dstStep, 1364 IppiSizeL roiSize, IppiBorderType borderType, Ipp32f borderValue[4], const IppiMorphAdvStateL* pMorthSpec, Ipp8u* pBuffer )) 1365 1366 /* /////////////////////////////////////////////////////////////////////////////////////// 1367 // Name: ippiMorphSetMode_L 1368 // 1369 // Purpose: Set mode for symmetrical operation in advanced morphology 1370 // IPP_MORPH_DEFAULT - default behavior 1371 // IPP_MORPH_MASK_NO_FLIP - don't flip mask(the same mask for (erode(dilate)->dilate(erode)) operations) 1372 // 1373 // 1374 // Return: 1375 // ippStsNoErr Ok. 1376 // ippStsNullPtrErr One of the pointers is NULL. 1377 // ippStsNotSupportedModeErr Incorrect mode 1378 // 1379 // Parameters: 1380 // mode Mode. One of IPP_MORPH_DEFAULT(flip), IPP_MORPH_MASK_NO_FLIP(no flip) 1381 // pMorphSpec Pointer to the morphology specification structure. 1382 */ 1383 1384 IPPAPI(IppStatus, ippiMorphSetMode_L, (int mode, IppiMorphAdvStateL* pMorphSpec)) 1385 1386 /*F/////////////////////////////////////////////////////////////////////////////////////// 1387 // Name: ippiCannyGetSize_L 1388 // 1389 // Purpose: Calculates size of temporary buffer, required to run Canny function. 1390 // 1391 // Return: 1392 // ippStsNoErr Ok 1393 // ippStsNullPtrErr Pointer bufferSize is NULL 1394 // ippStsSizeErr roiSize has a field with zero or negative value 1395 // 1396 // Parameters: 1397 // roi Size of image ROI in pixel 1398 // bufferSize Pointer to the variable that returns the size of the temporary buffer 1399 //F*/ 1400 1401 IPPAPI(IppStatus, ippiCannyGetSize_L, ( IppiSizeL roi, IppSizeL* bufferSize )) 1402 /*F/////////////////////////////////////////////////////////////////////////////////////// 1403 // Name: ippiCanny_16s8u_C1R_L 1404 // 1405 // Purpose: Creates binary image of source's image edges, 1406 // using derivatives of the first order. 1407 // 1408 // Return: 1409 // ippStsNoErr Ok 1410 // ippStsNullPtrErr One of pointers is NULL 1411 // ippStsSizeErr The width or height of images is less or equal zero 1412 // ippStsStepErr The steps in images are too small 1413 // ippStsNotEvenStepErr Step is not multiple of element. 1414 // ippStsBadArgErr Bad thresholds 1415 // 1416 // Parameters: 1417 // pDX Pointers to the source image ( first derivatives with respect to X ) 1418 // dxStep Step in bytes through the source image pSrcDx 1419 // pDY Pointers to the source image ( first derivatives with respect to Y ) 1420 // dyStep Step in bytes through the source image pSrcDy 1421 // pDst Pointers to the destination image 1422 // dstStep Step in bytes through the destination image 1423 // 1424 // roiL Size of the source images ROI in pixels 1425 // lowThreshold Low threshold for edges detection 1426 // highThreshold Upper threshold for edges detection 1427 // norm Norm type, {ippNormL1, ippNormL2} 1428 // pBuffer Pointer to the pre-allocated temporary buffer, which size can be 1429 // calculated using ippiCannyGetSize function 1430 //F*/ 1431 1432 IPPAPI(IppStatus, ippiCanny_16s8u_C1R_L, ( Ipp16s* pSrcDx, IppSizeL srcDxStep, Ipp16s* pSrcDy, IppSizeL srcDyStep, Ipp8u* pDstEdges, IppSizeL dstEdgeStep, IppiSizeL roiSize, Ipp32f lowThreshold, Ipp32f highThreshold, IppNormType norm, Ipp8u* pBuffer )) 1433 IPPAPI(IppStatus, ippiCanny_32f8u_C1R_L, ( Ipp32f* pSrcDx, IppSizeL srcDxStep, Ipp32f* pSrcDy, IppSizeL srcDyStep, Ipp8u* pDstEdges, IppSizeL dstEdgeStep, IppiSizeL roiSize, Ipp32f lowThreshold, Ipp32f highThreshold, IppNormType norm, Ipp8u* pBuffer )) 1434 1435 1436 #ifdef __cplusplus 1437 } 1438 #endif 1439 1440 #endif /* __IPPICV_H__ */ 1441