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