Leptonica 1.68
C Image Processing Library
|
00001 /*====================================================================* 00002 - Copyright (C) 2001 Leptonica. All rights reserved. 00003 - This software is distributed in the hope that it will be 00004 - useful, but with NO WARRANTY OF ANY KIND. 00005 - No author or distributor accepts responsibility to anyone for the 00006 - consequences of using this software, or for whether it serves any 00007 - particular purpose or works at all, unless he or she says so in 00008 - writing. Everyone is granted permission to copy, modify and 00009 - redistribute this source code, for commercial or non-commercial 00010 - purposes, with the following restrictions: (1) the origin of this 00011 - source code must not be misrepresented; (2) modified versions must 00012 - be plainly marked as such; and (3) this notice may not be removed 00013 - or altered from any source or modified source distribution. 00014 *====================================================================*/ 00015 00016 /*! 00017 * Low-level fast binary morphology with auto-generated sels 00018 * 00019 * Dispatcher: 00020 * l_int32 fmorphopgen_low_1() 00021 * 00022 * Static Low-level: 00023 * void fdilate_1_*() 00024 * void ferode_1_*() 00025 */ 00026 00027 #include "allheaders.h" 00028 00029 static void fdilate_1_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00030 static void ferode_1_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00031 static void fdilate_1_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00032 static void ferode_1_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00033 static void fdilate_1_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00034 static void ferode_1_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00035 static void fdilate_1_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00036 static void ferode_1_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00037 static void fdilate_1_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00038 static void ferode_1_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00039 static void fdilate_1_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00040 static void ferode_1_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00041 static void fdilate_1_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00042 static void ferode_1_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00043 static void fdilate_1_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00044 static void ferode_1_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00045 static void fdilate_1_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00046 static void ferode_1_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00047 static void fdilate_1_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00048 static void ferode_1_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00049 static void fdilate_1_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00050 static void ferode_1_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00051 static void fdilate_1_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00052 static void ferode_1_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00053 static void fdilate_1_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00054 static void ferode_1_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00055 static void fdilate_1_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00056 static void ferode_1_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00057 static void fdilate_1_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00058 static void ferode_1_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00059 static void fdilate_1_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00060 static void ferode_1_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00061 static void fdilate_1_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00062 static void ferode_1_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00063 static void fdilate_1_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00064 static void ferode_1_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00065 static void fdilate_1_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00066 static void ferode_1_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00067 static void fdilate_1_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00068 static void ferode_1_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00069 static void fdilate_1_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00070 static void ferode_1_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00071 static void fdilate_1_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00072 static void ferode_1_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00073 static void fdilate_1_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00074 static void ferode_1_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00075 static void fdilate_1_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00076 static void ferode_1_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00077 static void fdilate_1_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00078 static void ferode_1_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00079 static void fdilate_1_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00080 static void ferode_1_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00081 static void fdilate_1_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00082 static void ferode_1_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00083 static void fdilate_1_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00084 static void ferode_1_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00085 static void fdilate_1_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00086 static void ferode_1_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00087 static void fdilate_1_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00088 static void ferode_1_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00089 static void fdilate_1_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00090 static void ferode_1_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00091 static void fdilate_1_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00092 static void ferode_1_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00093 static void fdilate_1_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00094 static void ferode_1_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00095 static void fdilate_1_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00096 static void ferode_1_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00097 static void fdilate_1_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00098 static void ferode_1_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00099 static void fdilate_1_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00100 static void ferode_1_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00101 static void fdilate_1_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00102 static void ferode_1_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00103 static void fdilate_1_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00104 static void ferode_1_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00105 static void fdilate_1_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00106 static void ferode_1_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00107 static void fdilate_1_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00108 static void ferode_1_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00109 static void fdilate_1_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00110 static void ferode_1_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00111 static void fdilate_1_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00112 static void ferode_1_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00113 static void fdilate_1_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00114 static void ferode_1_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00115 static void fdilate_1_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00116 static void ferode_1_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00117 static void fdilate_1_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00118 static void ferode_1_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00119 static void fdilate_1_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00120 static void ferode_1_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00121 static void fdilate_1_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00122 static void ferode_1_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00123 static void fdilate_1_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00124 static void ferode_1_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00125 static void fdilate_1_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00126 static void ferode_1_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00127 static void fdilate_1_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00128 static void ferode_1_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00129 static void fdilate_1_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00130 static void ferode_1_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00131 static void fdilate_1_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00132 static void ferode_1_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00133 static void fdilate_1_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00134 static void ferode_1_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00135 static void fdilate_1_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00136 static void ferode_1_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00137 static void fdilate_1_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00138 static void ferode_1_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00139 static void fdilate_1_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00140 static void ferode_1_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00141 static void fdilate_1_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00142 static void ferode_1_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00143 static void fdilate_1_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00144 static void ferode_1_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00145 00146 00147 /*---------------------------------------------------------------------* 00148 * Fast morph dispatcher * 00149 *---------------------------------------------------------------------*/ 00150 /*! 00151 * fmorphopgen_low_1() 00152 * 00153 * a dispatcher to appropriate low-level code 00154 */ 00155 l_int32 00156 fmorphopgen_low_1(l_uint32 *datad, 00157 l_int32 w, 00158 l_int32 h, 00159 l_int32 wpld, 00160 l_uint32 *datas, 00161 l_int32 wpls, 00162 l_int32 index) 00163 { 00164 00165 switch (index) 00166 { 00167 case 0: 00168 fdilate_1_0(datad, w, h, wpld, datas, wpls); 00169 break; 00170 case 1: 00171 ferode_1_0(datad, w, h, wpld, datas, wpls); 00172 break; 00173 case 2: 00174 fdilate_1_1(datad, w, h, wpld, datas, wpls); 00175 break; 00176 case 3: 00177 ferode_1_1(datad, w, h, wpld, datas, wpls); 00178 break; 00179 case 4: 00180 fdilate_1_2(datad, w, h, wpld, datas, wpls); 00181 break; 00182 case 5: 00183 ferode_1_2(datad, w, h, wpld, datas, wpls); 00184 break; 00185 case 6: 00186 fdilate_1_3(datad, w, h, wpld, datas, wpls); 00187 break; 00188 case 7: 00189 ferode_1_3(datad, w, h, wpld, datas, wpls); 00190 break; 00191 case 8: 00192 fdilate_1_4(datad, w, h, wpld, datas, wpls); 00193 break; 00194 case 9: 00195 ferode_1_4(datad, w, h, wpld, datas, wpls); 00196 break; 00197 case 10: 00198 fdilate_1_5(datad, w, h, wpld, datas, wpls); 00199 break; 00200 case 11: 00201 ferode_1_5(datad, w, h, wpld, datas, wpls); 00202 break; 00203 case 12: 00204 fdilate_1_6(datad, w, h, wpld, datas, wpls); 00205 break; 00206 case 13: 00207 ferode_1_6(datad, w, h, wpld, datas, wpls); 00208 break; 00209 case 14: 00210 fdilate_1_7(datad, w, h, wpld, datas, wpls); 00211 break; 00212 case 15: 00213 ferode_1_7(datad, w, h, wpld, datas, wpls); 00214 break; 00215 case 16: 00216 fdilate_1_8(datad, w, h, wpld, datas, wpls); 00217 break; 00218 case 17: 00219 ferode_1_8(datad, w, h, wpld, datas, wpls); 00220 break; 00221 case 18: 00222 fdilate_1_9(datad, w, h, wpld, datas, wpls); 00223 break; 00224 case 19: 00225 ferode_1_9(datad, w, h, wpld, datas, wpls); 00226 break; 00227 case 20: 00228 fdilate_1_10(datad, w, h, wpld, datas, wpls); 00229 break; 00230 case 21: 00231 ferode_1_10(datad, w, h, wpld, datas, wpls); 00232 break; 00233 case 22: 00234 fdilate_1_11(datad, w, h, wpld, datas, wpls); 00235 break; 00236 case 23: 00237 ferode_1_11(datad, w, h, wpld, datas, wpls); 00238 break; 00239 case 24: 00240 fdilate_1_12(datad, w, h, wpld, datas, wpls); 00241 break; 00242 case 25: 00243 ferode_1_12(datad, w, h, wpld, datas, wpls); 00244 break; 00245 case 26: 00246 fdilate_1_13(datad, w, h, wpld, datas, wpls); 00247 break; 00248 case 27: 00249 ferode_1_13(datad, w, h, wpld, datas, wpls); 00250 break; 00251 case 28: 00252 fdilate_1_14(datad, w, h, wpld, datas, wpls); 00253 break; 00254 case 29: 00255 ferode_1_14(datad, w, h, wpld, datas, wpls); 00256 break; 00257 case 30: 00258 fdilate_1_15(datad, w, h, wpld, datas, wpls); 00259 break; 00260 case 31: 00261 ferode_1_15(datad, w, h, wpld, datas, wpls); 00262 break; 00263 case 32: 00264 fdilate_1_16(datad, w, h, wpld, datas, wpls); 00265 break; 00266 case 33: 00267 ferode_1_16(datad, w, h, wpld, datas, wpls); 00268 break; 00269 case 34: 00270 fdilate_1_17(datad, w, h, wpld, datas, wpls); 00271 break; 00272 case 35: 00273 ferode_1_17(datad, w, h, wpld, datas, wpls); 00274 break; 00275 case 36: 00276 fdilate_1_18(datad, w, h, wpld, datas, wpls); 00277 break; 00278 case 37: 00279 ferode_1_18(datad, w, h, wpld, datas, wpls); 00280 break; 00281 case 38: 00282 fdilate_1_19(datad, w, h, wpld, datas, wpls); 00283 break; 00284 case 39: 00285 ferode_1_19(datad, w, h, wpld, datas, wpls); 00286 break; 00287 case 40: 00288 fdilate_1_20(datad, w, h, wpld, datas, wpls); 00289 break; 00290 case 41: 00291 ferode_1_20(datad, w, h, wpld, datas, wpls); 00292 break; 00293 case 42: 00294 fdilate_1_21(datad, w, h, wpld, datas, wpls); 00295 break; 00296 case 43: 00297 ferode_1_21(datad, w, h, wpld, datas, wpls); 00298 break; 00299 case 44: 00300 fdilate_1_22(datad, w, h, wpld, datas, wpls); 00301 break; 00302 case 45: 00303 ferode_1_22(datad, w, h, wpld, datas, wpls); 00304 break; 00305 case 46: 00306 fdilate_1_23(datad, w, h, wpld, datas, wpls); 00307 break; 00308 case 47: 00309 ferode_1_23(datad, w, h, wpld, datas, wpls); 00310 break; 00311 case 48: 00312 fdilate_1_24(datad, w, h, wpld, datas, wpls); 00313 break; 00314 case 49: 00315 ferode_1_24(datad, w, h, wpld, datas, wpls); 00316 break; 00317 case 50: 00318 fdilate_1_25(datad, w, h, wpld, datas, wpls); 00319 break; 00320 case 51: 00321 ferode_1_25(datad, w, h, wpld, datas, wpls); 00322 break; 00323 case 52: 00324 fdilate_1_26(datad, w, h, wpld, datas, wpls); 00325 break; 00326 case 53: 00327 ferode_1_26(datad, w, h, wpld, datas, wpls); 00328 break; 00329 case 54: 00330 fdilate_1_27(datad, w, h, wpld, datas, wpls); 00331 break; 00332 case 55: 00333 ferode_1_27(datad, w, h, wpld, datas, wpls); 00334 break; 00335 case 56: 00336 fdilate_1_28(datad, w, h, wpld, datas, wpls); 00337 break; 00338 case 57: 00339 ferode_1_28(datad, w, h, wpld, datas, wpls); 00340 break; 00341 case 58: 00342 fdilate_1_29(datad, w, h, wpld, datas, wpls); 00343 break; 00344 case 59: 00345 ferode_1_29(datad, w, h, wpld, datas, wpls); 00346 break; 00347 case 60: 00348 fdilate_1_30(datad, w, h, wpld, datas, wpls); 00349 break; 00350 case 61: 00351 ferode_1_30(datad, w, h, wpld, datas, wpls); 00352 break; 00353 case 62: 00354 fdilate_1_31(datad, w, h, wpld, datas, wpls); 00355 break; 00356 case 63: 00357 ferode_1_31(datad, w, h, wpld, datas, wpls); 00358 break; 00359 case 64: 00360 fdilate_1_32(datad, w, h, wpld, datas, wpls); 00361 break; 00362 case 65: 00363 ferode_1_32(datad, w, h, wpld, datas, wpls); 00364 break; 00365 case 66: 00366 fdilate_1_33(datad, w, h, wpld, datas, wpls); 00367 break; 00368 case 67: 00369 ferode_1_33(datad, w, h, wpld, datas, wpls); 00370 break; 00371 case 68: 00372 fdilate_1_34(datad, w, h, wpld, datas, wpls); 00373 break; 00374 case 69: 00375 ferode_1_34(datad, w, h, wpld, datas, wpls); 00376 break; 00377 case 70: 00378 fdilate_1_35(datad, w, h, wpld, datas, wpls); 00379 break; 00380 case 71: 00381 ferode_1_35(datad, w, h, wpld, datas, wpls); 00382 break; 00383 case 72: 00384 fdilate_1_36(datad, w, h, wpld, datas, wpls); 00385 break; 00386 case 73: 00387 ferode_1_36(datad, w, h, wpld, datas, wpls); 00388 break; 00389 case 74: 00390 fdilate_1_37(datad, w, h, wpld, datas, wpls); 00391 break; 00392 case 75: 00393 ferode_1_37(datad, w, h, wpld, datas, wpls); 00394 break; 00395 case 76: 00396 fdilate_1_38(datad, w, h, wpld, datas, wpls); 00397 break; 00398 case 77: 00399 ferode_1_38(datad, w, h, wpld, datas, wpls); 00400 break; 00401 case 78: 00402 fdilate_1_39(datad, w, h, wpld, datas, wpls); 00403 break; 00404 case 79: 00405 ferode_1_39(datad, w, h, wpld, datas, wpls); 00406 break; 00407 case 80: 00408 fdilate_1_40(datad, w, h, wpld, datas, wpls); 00409 break; 00410 case 81: 00411 ferode_1_40(datad, w, h, wpld, datas, wpls); 00412 break; 00413 case 82: 00414 fdilate_1_41(datad, w, h, wpld, datas, wpls); 00415 break; 00416 case 83: 00417 ferode_1_41(datad, w, h, wpld, datas, wpls); 00418 break; 00419 case 84: 00420 fdilate_1_42(datad, w, h, wpld, datas, wpls); 00421 break; 00422 case 85: 00423 ferode_1_42(datad, w, h, wpld, datas, wpls); 00424 break; 00425 case 86: 00426 fdilate_1_43(datad, w, h, wpld, datas, wpls); 00427 break; 00428 case 87: 00429 ferode_1_43(datad, w, h, wpld, datas, wpls); 00430 break; 00431 case 88: 00432 fdilate_1_44(datad, w, h, wpld, datas, wpls); 00433 break; 00434 case 89: 00435 ferode_1_44(datad, w, h, wpld, datas, wpls); 00436 break; 00437 case 90: 00438 fdilate_1_45(datad, w, h, wpld, datas, wpls); 00439 break; 00440 case 91: 00441 ferode_1_45(datad, w, h, wpld, datas, wpls); 00442 break; 00443 case 92: 00444 fdilate_1_46(datad, w, h, wpld, datas, wpls); 00445 break; 00446 case 93: 00447 ferode_1_46(datad, w, h, wpld, datas, wpls); 00448 break; 00449 case 94: 00450 fdilate_1_47(datad, w, h, wpld, datas, wpls); 00451 break; 00452 case 95: 00453 ferode_1_47(datad, w, h, wpld, datas, wpls); 00454 break; 00455 case 96: 00456 fdilate_1_48(datad, w, h, wpld, datas, wpls); 00457 break; 00458 case 97: 00459 ferode_1_48(datad, w, h, wpld, datas, wpls); 00460 break; 00461 case 98: 00462 fdilate_1_49(datad, w, h, wpld, datas, wpls); 00463 break; 00464 case 99: 00465 ferode_1_49(datad, w, h, wpld, datas, wpls); 00466 break; 00467 case 100: 00468 fdilate_1_50(datad, w, h, wpld, datas, wpls); 00469 break; 00470 case 101: 00471 ferode_1_50(datad, w, h, wpld, datas, wpls); 00472 break; 00473 case 102: 00474 fdilate_1_51(datad, w, h, wpld, datas, wpls); 00475 break; 00476 case 103: 00477 ferode_1_51(datad, w, h, wpld, datas, wpls); 00478 break; 00479 case 104: 00480 fdilate_1_52(datad, w, h, wpld, datas, wpls); 00481 break; 00482 case 105: 00483 ferode_1_52(datad, w, h, wpld, datas, wpls); 00484 break; 00485 case 106: 00486 fdilate_1_53(datad, w, h, wpld, datas, wpls); 00487 break; 00488 case 107: 00489 ferode_1_53(datad, w, h, wpld, datas, wpls); 00490 break; 00491 case 108: 00492 fdilate_1_54(datad, w, h, wpld, datas, wpls); 00493 break; 00494 case 109: 00495 ferode_1_54(datad, w, h, wpld, datas, wpls); 00496 break; 00497 case 110: 00498 fdilate_1_55(datad, w, h, wpld, datas, wpls); 00499 break; 00500 case 111: 00501 ferode_1_55(datad, w, h, wpld, datas, wpls); 00502 break; 00503 case 112: 00504 fdilate_1_56(datad, w, h, wpld, datas, wpls); 00505 break; 00506 case 113: 00507 ferode_1_56(datad, w, h, wpld, datas, wpls); 00508 break; 00509 case 114: 00510 fdilate_1_57(datad, w, h, wpld, datas, wpls); 00511 break; 00512 case 115: 00513 ferode_1_57(datad, w, h, wpld, datas, wpls); 00514 break; 00515 } 00516 00517 return 0; 00518 } 00519 00520 00521 /*--------------------------------------------------------------------------* 00522 * Low-level auto-generated static routines * 00523 *--------------------------------------------------------------------------*/ 00524 /* 00525 * N.B. In all the low-level routines, the part of the image 00526 * that is accessed has been clipped by 32 pixels on 00527 * all four sides. This is done in the higher level 00528 * code by redefining w and h smaller and by moving the 00529 * start-of-image pointers up to the beginning of this 00530 * interior rectangle. 00531 */ 00532 static void 00533 fdilate_1_0(l_uint32 *datad, 00534 l_int32 w, 00535 l_int32 h, 00536 l_int32 wpld, 00537 l_uint32 *datas, 00538 l_int32 wpls) 00539 { 00540 l_int32 i; 00541 register l_int32 j, pwpls; 00542 register l_uint32 *sptr, *dptr; 00543 00544 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00545 00546 for (i = 0; i < h; i++) { 00547 sptr = datas + i * wpls; 00548 dptr = datad + i * wpld; 00549 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00550 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00551 (*sptr); 00552 } 00553 } 00554 } 00555 00556 static void 00557 ferode_1_0(l_uint32 *datad, 00558 l_int32 w, 00559 l_int32 h, 00560 l_int32 wpld, 00561 l_uint32 *datas, 00562 l_int32 wpls) 00563 { 00564 l_int32 i; 00565 register l_int32 j, pwpls; 00566 register l_uint32 *sptr, *dptr; 00567 00568 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00569 00570 for (i = 0; i < h; i++) { 00571 sptr = datas + i * wpls; 00572 dptr = datad + i * wpld; 00573 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00574 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00575 (*sptr); 00576 } 00577 } 00578 } 00579 00580 static void 00581 fdilate_1_1(l_uint32 *datad, 00582 l_int32 w, 00583 l_int32 h, 00584 l_int32 wpld, 00585 l_uint32 *datas, 00586 l_int32 wpls) 00587 { 00588 l_int32 i; 00589 register l_int32 j, pwpls; 00590 register l_uint32 *sptr, *dptr; 00591 00592 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00593 00594 for (i = 0; i < h; i++) { 00595 sptr = datas + i * wpls; 00596 dptr = datad + i * wpld; 00597 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00598 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00599 (*sptr) | 00600 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); 00601 } 00602 } 00603 } 00604 00605 static void 00606 ferode_1_1(l_uint32 *datad, 00607 l_int32 w, 00608 l_int32 h, 00609 l_int32 wpld, 00610 l_uint32 *datas, 00611 l_int32 wpls) 00612 { 00613 l_int32 i; 00614 register l_int32 j, pwpls; 00615 register l_uint32 *sptr, *dptr; 00616 00617 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00618 00619 for (i = 0; i < h; i++) { 00620 sptr = datas + i * wpls; 00621 dptr = datad + i * wpld; 00622 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00623 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00624 (*sptr) & 00625 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); 00626 } 00627 } 00628 } 00629 00630 static void 00631 fdilate_1_2(l_uint32 *datad, 00632 l_int32 w, 00633 l_int32 h, 00634 l_int32 wpld, 00635 l_uint32 *datas, 00636 l_int32 wpls) 00637 { 00638 l_int32 i; 00639 register l_int32 j, pwpls; 00640 register l_uint32 *sptr, *dptr; 00641 00642 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00643 00644 for (i = 0; i < h; i++) { 00645 sptr = datas + i * wpls; 00646 dptr = datad + i * wpld; 00647 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00648 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00649 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00650 (*sptr) | 00651 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); 00652 } 00653 } 00654 } 00655 00656 static void 00657 ferode_1_2(l_uint32 *datad, 00658 l_int32 w, 00659 l_int32 h, 00660 l_int32 wpld, 00661 l_uint32 *datas, 00662 l_int32 wpls) 00663 { 00664 l_int32 i; 00665 register l_int32 j, pwpls; 00666 register l_uint32 *sptr, *dptr; 00667 00668 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00669 00670 for (i = 0; i < h; i++) { 00671 sptr = datas + i * wpls; 00672 dptr = datad + i * wpld; 00673 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00674 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00675 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00676 (*sptr) & 00677 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); 00678 } 00679 } 00680 } 00681 00682 static void 00683 fdilate_1_3(l_uint32 *datad, 00684 l_int32 w, 00685 l_int32 h, 00686 l_int32 wpld, 00687 l_uint32 *datas, 00688 l_int32 wpls) 00689 { 00690 l_int32 i; 00691 register l_int32 j, pwpls; 00692 register l_uint32 *sptr, *dptr; 00693 00694 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00695 00696 for (i = 0; i < h; i++) { 00697 sptr = datas + i * wpls; 00698 dptr = datad + i * wpld; 00699 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00700 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00701 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00702 (*sptr) | 00703 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00704 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); 00705 } 00706 } 00707 } 00708 00709 static void 00710 ferode_1_3(l_uint32 *datad, 00711 l_int32 w, 00712 l_int32 h, 00713 l_int32 wpld, 00714 l_uint32 *datas, 00715 l_int32 wpls) 00716 { 00717 l_int32 i; 00718 register l_int32 j, pwpls; 00719 register l_uint32 *sptr, *dptr; 00720 00721 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00722 00723 for (i = 0; i < h; i++) { 00724 sptr = datas + i * wpls; 00725 dptr = datad + i * wpld; 00726 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00727 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00728 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00729 (*sptr) & 00730 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 00731 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); 00732 } 00733 } 00734 } 00735 00736 static void 00737 fdilate_1_4(l_uint32 *datad, 00738 l_int32 w, 00739 l_int32 h, 00740 l_int32 wpld, 00741 l_uint32 *datas, 00742 l_int32 wpls) 00743 { 00744 l_int32 i; 00745 register l_int32 j, pwpls; 00746 register l_uint32 *sptr, *dptr; 00747 00748 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00749 00750 for (i = 0; i < h; i++) { 00751 sptr = datas + i * wpls; 00752 dptr = datad + i * wpld; 00753 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00754 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 00755 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00756 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00757 (*sptr) | 00758 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00759 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); 00760 } 00761 } 00762 } 00763 00764 static void 00765 ferode_1_4(l_uint32 *datad, 00766 l_int32 w, 00767 l_int32 h, 00768 l_int32 wpld, 00769 l_uint32 *datas, 00770 l_int32 wpls) 00771 { 00772 l_int32 i; 00773 register l_int32 j, pwpls; 00774 register l_uint32 *sptr, *dptr; 00775 00776 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00777 00778 for (i = 0; i < h; i++) { 00779 sptr = datas + i * wpls; 00780 dptr = datad + i * wpld; 00781 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00782 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 00783 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00784 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00785 (*sptr) & 00786 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 00787 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); 00788 } 00789 } 00790 } 00791 00792 static void 00793 fdilate_1_5(l_uint32 *datad, 00794 l_int32 w, 00795 l_int32 h, 00796 l_int32 wpld, 00797 l_uint32 *datas, 00798 l_int32 wpls) 00799 { 00800 l_int32 i; 00801 register l_int32 j, pwpls; 00802 register l_uint32 *sptr, *dptr; 00803 00804 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00805 00806 for (i = 0; i < h; i++) { 00807 sptr = datas + i * wpls; 00808 dptr = datad + i * wpld; 00809 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00810 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 00811 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00812 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00813 (*sptr) | 00814 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00815 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 00816 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); 00817 } 00818 } 00819 } 00820 00821 static void 00822 ferode_1_5(l_uint32 *datad, 00823 l_int32 w, 00824 l_int32 h, 00825 l_int32 wpld, 00826 l_uint32 *datas, 00827 l_int32 wpls) 00828 { 00829 l_int32 i; 00830 register l_int32 j, pwpls; 00831 register l_uint32 *sptr, *dptr; 00832 00833 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00834 00835 for (i = 0; i < h; i++) { 00836 sptr = datas + i * wpls; 00837 dptr = datad + i * wpld; 00838 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00839 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 00840 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00841 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00842 (*sptr) & 00843 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 00844 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 00845 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); 00846 } 00847 } 00848 } 00849 00850 static void 00851 fdilate_1_6(l_uint32 *datad, 00852 l_int32 w, 00853 l_int32 h, 00854 l_int32 wpld, 00855 l_uint32 *datas, 00856 l_int32 wpls) 00857 { 00858 l_int32 i; 00859 register l_int32 j, pwpls; 00860 register l_uint32 *sptr, *dptr; 00861 00862 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00863 00864 for (i = 0; i < h; i++) { 00865 sptr = datas + i * wpls; 00866 dptr = datad + i * wpld; 00867 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00868 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 00869 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 00870 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00871 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00872 (*sptr) | 00873 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00874 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 00875 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); 00876 } 00877 } 00878 } 00879 00880 static void 00881 ferode_1_6(l_uint32 *datad, 00882 l_int32 w, 00883 l_int32 h, 00884 l_int32 wpld, 00885 l_uint32 *datas, 00886 l_int32 wpls) 00887 { 00888 l_int32 i; 00889 register l_int32 j, pwpls; 00890 register l_uint32 *sptr, *dptr; 00891 00892 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00893 00894 for (i = 0; i < h; i++) { 00895 sptr = datas + i * wpls; 00896 dptr = datad + i * wpld; 00897 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00898 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 00899 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 00900 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00901 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00902 (*sptr) & 00903 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 00904 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 00905 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); 00906 } 00907 } 00908 } 00909 00910 static void 00911 fdilate_1_7(l_uint32 *datad, 00912 l_int32 w, 00913 l_int32 h, 00914 l_int32 wpld, 00915 l_uint32 *datas, 00916 l_int32 wpls) 00917 { 00918 l_int32 i; 00919 register l_int32 j, pwpls; 00920 register l_uint32 *sptr, *dptr; 00921 00922 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00923 00924 for (i = 0; i < h; i++) { 00925 sptr = datas + i * wpls; 00926 dptr = datad + i * wpld; 00927 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00928 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 00929 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 00930 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00931 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00932 (*sptr) | 00933 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00934 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 00935 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 00936 ((*(sptr) >> 4) | (*(sptr - 1) << 28)); 00937 } 00938 } 00939 } 00940 00941 static void 00942 ferode_1_7(l_uint32 *datad, 00943 l_int32 w, 00944 l_int32 h, 00945 l_int32 wpld, 00946 l_uint32 *datas, 00947 l_int32 wpls) 00948 { 00949 l_int32 i; 00950 register l_int32 j, pwpls; 00951 register l_uint32 *sptr, *dptr; 00952 00953 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00954 00955 for (i = 0; i < h; i++) { 00956 sptr = datas + i * wpls; 00957 dptr = datad + i * wpld; 00958 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00959 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 00960 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 00961 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00962 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00963 (*sptr) & 00964 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 00965 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 00966 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 00967 ((*(sptr) << 4) | (*(sptr + 1) >> 28)); 00968 } 00969 } 00970 } 00971 00972 static void 00973 fdilate_1_8(l_uint32 *datad, 00974 l_int32 w, 00975 l_int32 h, 00976 l_int32 wpld, 00977 l_uint32 *datas, 00978 l_int32 wpls) 00979 { 00980 l_int32 i; 00981 register l_int32 j, pwpls; 00982 register l_uint32 *sptr, *dptr; 00983 00984 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00985 00986 for (i = 0; i < h; i++) { 00987 sptr = datas + i * wpls; 00988 dptr = datad + i * wpld; 00989 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00990 *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 00991 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 00992 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 00993 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00994 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00995 (*sptr) | 00996 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 00997 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 00998 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 00999 ((*(sptr) >> 4) | (*(sptr - 1) << 28)); 01000 } 01001 } 01002 } 01003 01004 static void 01005 ferode_1_8(l_uint32 *datad, 01006 l_int32 w, 01007 l_int32 h, 01008 l_int32 wpld, 01009 l_uint32 *datas, 01010 l_int32 wpls) 01011 { 01012 l_int32 i; 01013 register l_int32 j, pwpls; 01014 register l_uint32 *sptr, *dptr; 01015 01016 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01017 01018 for (i = 0; i < h; i++) { 01019 sptr = datas + i * wpls; 01020 dptr = datad + i * wpld; 01021 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01022 *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01023 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01024 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01025 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01026 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01027 (*sptr) & 01028 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01029 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01030 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01031 ((*(sptr) << 4) | (*(sptr + 1) >> 28)); 01032 } 01033 } 01034 } 01035 01036 static void 01037 fdilate_1_9(l_uint32 *datad, 01038 l_int32 w, 01039 l_int32 h, 01040 l_int32 wpld, 01041 l_uint32 *datas, 01042 l_int32 wpls) 01043 { 01044 l_int32 i; 01045 register l_int32 j, pwpls; 01046 register l_uint32 *sptr, *dptr; 01047 01048 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01049 01050 for (i = 0; i < h; i++) { 01051 sptr = datas + i * wpls; 01052 dptr = datad + i * wpld; 01053 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01054 *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01055 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01056 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01057 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01058 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01059 (*sptr) | 01060 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01061 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01062 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01063 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01064 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); 01065 } 01066 } 01067 } 01068 01069 static void 01070 ferode_1_9(l_uint32 *datad, 01071 l_int32 w, 01072 l_int32 h, 01073 l_int32 wpld, 01074 l_uint32 *datas, 01075 l_int32 wpls) 01076 { 01077 l_int32 i; 01078 register l_int32 j, pwpls; 01079 register l_uint32 *sptr, *dptr; 01080 01081 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01082 01083 for (i = 0; i < h; i++) { 01084 sptr = datas + i * wpls; 01085 dptr = datad + i * wpld; 01086 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01087 *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01088 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01089 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01090 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01091 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01092 (*sptr) & 01093 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01094 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01095 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01096 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01097 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); 01098 } 01099 } 01100 } 01101 01102 static void 01103 fdilate_1_10(l_uint32 *datad, 01104 l_int32 w, 01105 l_int32 h, 01106 l_int32 wpld, 01107 l_uint32 *datas, 01108 l_int32 wpls) 01109 { 01110 l_int32 i; 01111 register l_int32 j, pwpls; 01112 register l_uint32 *sptr, *dptr; 01113 01114 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01115 01116 for (i = 0; i < h; i++) { 01117 sptr = datas + i * wpls; 01118 dptr = datad + i * wpld; 01119 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01120 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01121 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01122 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01123 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01124 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01125 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01126 (*sptr) | 01127 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01128 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01129 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01130 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01131 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); 01132 } 01133 } 01134 } 01135 01136 static void 01137 ferode_1_10(l_uint32 *datad, 01138 l_int32 w, 01139 l_int32 h, 01140 l_int32 wpld, 01141 l_uint32 *datas, 01142 l_int32 wpls) 01143 { 01144 l_int32 i; 01145 register l_int32 j, pwpls; 01146 register l_uint32 *sptr, *dptr; 01147 01148 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01149 01150 for (i = 0; i < h; i++) { 01151 sptr = datas + i * wpls; 01152 dptr = datad + i * wpld; 01153 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01154 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01155 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01156 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01157 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01158 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01159 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01160 (*sptr) & 01161 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01162 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01163 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01164 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01165 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); 01166 } 01167 } 01168 } 01169 01170 static void 01171 fdilate_1_11(l_uint32 *datad, 01172 l_int32 w, 01173 l_int32 h, 01174 l_int32 wpld, 01175 l_uint32 *datas, 01176 l_int32 wpls) 01177 { 01178 l_int32 i; 01179 register l_int32 j, pwpls; 01180 register l_uint32 *sptr, *dptr; 01181 01182 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01183 01184 for (i = 0; i < h; i++) { 01185 sptr = datas + i * wpls; 01186 dptr = datad + i * wpld; 01187 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01188 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01189 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01190 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01191 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01192 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01193 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01194 (*sptr) | 01195 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01196 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01197 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01198 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01199 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01200 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); 01201 } 01202 } 01203 } 01204 01205 static void 01206 ferode_1_11(l_uint32 *datad, 01207 l_int32 w, 01208 l_int32 h, 01209 l_int32 wpld, 01210 l_uint32 *datas, 01211 l_int32 wpls) 01212 { 01213 l_int32 i; 01214 register l_int32 j, pwpls; 01215 register l_uint32 *sptr, *dptr; 01216 01217 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01218 01219 for (i = 0; i < h; i++) { 01220 sptr = datas + i * wpls; 01221 dptr = datad + i * wpld; 01222 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01223 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01224 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01225 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01226 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01227 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01228 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01229 (*sptr) & 01230 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01231 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01232 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01233 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01234 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01235 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); 01236 } 01237 } 01238 } 01239 01240 static void 01241 fdilate_1_12(l_uint32 *datad, 01242 l_int32 w, 01243 l_int32 h, 01244 l_int32 wpld, 01245 l_uint32 *datas, 01246 l_int32 wpls) 01247 { 01248 l_int32 i; 01249 register l_int32 j, pwpls; 01250 register l_uint32 *sptr, *dptr; 01251 01252 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01253 01254 for (i = 0; i < h; i++) { 01255 sptr = datas + i * wpls; 01256 dptr = datad + i * wpld; 01257 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01258 *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01259 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01260 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01261 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01262 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01263 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01264 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01265 (*sptr) | 01266 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01267 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01268 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01269 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01270 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01271 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); 01272 } 01273 } 01274 } 01275 01276 static void 01277 ferode_1_12(l_uint32 *datad, 01278 l_int32 w, 01279 l_int32 h, 01280 l_int32 wpld, 01281 l_uint32 *datas, 01282 l_int32 wpls) 01283 { 01284 l_int32 i; 01285 register l_int32 j, pwpls; 01286 register l_uint32 *sptr, *dptr; 01287 01288 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01289 01290 for (i = 0; i < h; i++) { 01291 sptr = datas + i * wpls; 01292 dptr = datad + i * wpld; 01293 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01294 *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01295 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01296 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01297 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01298 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01299 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01300 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01301 (*sptr) & 01302 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01303 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01304 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01305 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01306 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01307 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); 01308 } 01309 } 01310 } 01311 01312 static void 01313 fdilate_1_13(l_uint32 *datad, 01314 l_int32 w, 01315 l_int32 h, 01316 l_int32 wpld, 01317 l_uint32 *datas, 01318 l_int32 wpls) 01319 { 01320 l_int32 i; 01321 register l_int32 j, pwpls; 01322 register l_uint32 *sptr, *dptr; 01323 01324 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01325 01326 for (i = 0; i < h; i++) { 01327 sptr = datas + i * wpls; 01328 dptr = datad + i * wpld; 01329 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01330 *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01331 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01332 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01333 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01334 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01335 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01336 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01337 (*sptr) | 01338 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01339 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01340 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01341 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01342 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01343 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01344 ((*(sptr) >> 7) | (*(sptr - 1) << 25)); 01345 } 01346 } 01347 } 01348 01349 static void 01350 ferode_1_13(l_uint32 *datad, 01351 l_int32 w, 01352 l_int32 h, 01353 l_int32 wpld, 01354 l_uint32 *datas, 01355 l_int32 wpls) 01356 { 01357 l_int32 i; 01358 register l_int32 j, pwpls; 01359 register l_uint32 *sptr, *dptr; 01360 01361 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01362 01363 for (i = 0; i < h; i++) { 01364 sptr = datas + i * wpls; 01365 dptr = datad + i * wpld; 01366 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01367 *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01368 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01369 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01370 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01371 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01372 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01373 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01374 (*sptr) & 01375 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01376 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01377 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01378 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01379 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01380 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01381 ((*(sptr) << 7) | (*(sptr + 1) >> 25)); 01382 } 01383 } 01384 } 01385 01386 static void 01387 fdilate_1_14(l_uint32 *datad, 01388 l_int32 w, 01389 l_int32 h, 01390 l_int32 wpld, 01391 l_uint32 *datas, 01392 l_int32 wpls) 01393 { 01394 l_int32 i; 01395 register l_int32 j, pwpls; 01396 register l_uint32 *sptr, *dptr; 01397 01398 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01399 01400 for (i = 0; i < h; i++) { 01401 sptr = datas + i * wpls; 01402 dptr = datad + i * wpld; 01403 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01404 *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01405 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01406 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01407 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01408 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01409 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01410 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01411 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01412 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01413 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01414 (*sptr) | 01415 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01416 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01417 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01418 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01419 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01420 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01421 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01422 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01423 ((*(sptr) >> 9) | (*(sptr - 1) << 23)); 01424 } 01425 } 01426 } 01427 01428 static void 01429 ferode_1_14(l_uint32 *datad, 01430 l_int32 w, 01431 l_int32 h, 01432 l_int32 wpld, 01433 l_uint32 *datas, 01434 l_int32 wpls) 01435 { 01436 l_int32 i; 01437 register l_int32 j, pwpls; 01438 register l_uint32 *sptr, *dptr; 01439 01440 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01441 01442 for (i = 0; i < h; i++) { 01443 sptr = datas + i * wpls; 01444 dptr = datad + i * wpld; 01445 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01446 *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01447 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01448 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01449 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01450 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01451 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01452 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01453 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01454 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01455 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01456 (*sptr) & 01457 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01458 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01459 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01460 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01461 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01462 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01463 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01464 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01465 ((*(sptr) << 9) | (*(sptr + 1) >> 23)); 01466 } 01467 } 01468 } 01469 01470 static void 01471 fdilate_1_15(l_uint32 *datad, 01472 l_int32 w, 01473 l_int32 h, 01474 l_int32 wpld, 01475 l_uint32 *datas, 01476 l_int32 wpls) 01477 { 01478 l_int32 i; 01479 register l_int32 j, pwpls; 01480 register l_uint32 *sptr, *dptr; 01481 01482 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01483 01484 for (i = 0; i < h; i++) { 01485 sptr = datas + i * wpls; 01486 dptr = datad + i * wpld; 01487 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01488 *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01489 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01490 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01491 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01492 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01493 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01494 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01495 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01496 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01497 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01498 (*sptr) | 01499 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01500 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01501 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01502 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01503 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01504 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01505 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01506 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01507 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 01508 ((*(sptr) >> 10) | (*(sptr - 1) << 22)); 01509 } 01510 } 01511 } 01512 01513 static void 01514 ferode_1_15(l_uint32 *datad, 01515 l_int32 w, 01516 l_int32 h, 01517 l_int32 wpld, 01518 l_uint32 *datas, 01519 l_int32 wpls) 01520 { 01521 l_int32 i; 01522 register l_int32 j, pwpls; 01523 register l_uint32 *sptr, *dptr; 01524 01525 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01526 01527 for (i = 0; i < h; i++) { 01528 sptr = datas + i * wpls; 01529 dptr = datad + i * wpld; 01530 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01531 *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01532 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01533 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01534 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01535 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01536 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01537 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01538 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01539 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01540 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01541 (*sptr) & 01542 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01543 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01544 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01545 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01546 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01547 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01548 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01549 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01550 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 01551 ((*(sptr) << 10) | (*(sptr + 1) >> 22)); 01552 } 01553 } 01554 } 01555 01556 static void 01557 fdilate_1_16(l_uint32 *datad, 01558 l_int32 w, 01559 l_int32 h, 01560 l_int32 wpld, 01561 l_uint32 *datas, 01562 l_int32 wpls) 01563 { 01564 l_int32 i; 01565 register l_int32 j, pwpls; 01566 register l_uint32 *sptr, *dptr; 01567 01568 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01569 01570 for (i = 0; i < h; i++) { 01571 sptr = datas + i * wpls; 01572 dptr = datad + i * wpld; 01573 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01574 *dptr = ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 01575 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 01576 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01577 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01578 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01579 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01580 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01581 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01582 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01583 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01584 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01585 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01586 (*sptr) | 01587 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01588 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01589 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01590 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01591 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01592 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01593 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01594 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01595 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 01596 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 01597 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 01598 ((*(sptr) >> 12) | (*(sptr - 1) << 20)); 01599 } 01600 } 01601 } 01602 01603 static void 01604 ferode_1_16(l_uint32 *datad, 01605 l_int32 w, 01606 l_int32 h, 01607 l_int32 wpld, 01608 l_uint32 *datas, 01609 l_int32 wpls) 01610 { 01611 l_int32 i; 01612 register l_int32 j, pwpls; 01613 register l_uint32 *sptr, *dptr; 01614 01615 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01616 01617 for (i = 0; i < h; i++) { 01618 sptr = datas + i * wpls; 01619 dptr = datad + i * wpld; 01620 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01621 *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 01622 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 01623 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01624 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01625 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01626 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01627 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01628 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01629 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01630 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01631 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01632 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01633 (*sptr) & 01634 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01635 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01636 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01637 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01638 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01639 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01640 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01641 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01642 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 01643 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 01644 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 01645 ((*(sptr) << 12) | (*(sptr + 1) >> 20)); 01646 } 01647 } 01648 } 01649 01650 static void 01651 fdilate_1_17(l_uint32 *datad, 01652 l_int32 w, 01653 l_int32 h, 01654 l_int32 wpld, 01655 l_uint32 *datas, 01656 l_int32 wpls) 01657 { 01658 l_int32 i; 01659 register l_int32 j, pwpls; 01660 register l_uint32 *sptr, *dptr; 01661 01662 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01663 01664 for (i = 0; i < h; i++) { 01665 sptr = datas + i * wpls; 01666 dptr = datad + i * wpld; 01667 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01668 *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 01669 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 01670 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 01671 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 01672 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 01673 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01674 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01675 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01676 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01677 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01678 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01679 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01680 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01681 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01682 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01683 (*sptr) | 01684 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01685 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01686 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01687 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01688 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01689 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01690 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01691 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01692 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 01693 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 01694 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 01695 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 01696 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 01697 ((*(sptr) >> 14) | (*(sptr - 1) << 18)); 01698 } 01699 } 01700 } 01701 01702 static void 01703 ferode_1_17(l_uint32 *datad, 01704 l_int32 w, 01705 l_int32 h, 01706 l_int32 wpld, 01707 l_uint32 *datas, 01708 l_int32 wpls) 01709 { 01710 l_int32 i; 01711 register l_int32 j, pwpls; 01712 register l_uint32 *sptr, *dptr; 01713 01714 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01715 01716 for (i = 0; i < h; i++) { 01717 sptr = datas + i * wpls; 01718 dptr = datad + i * wpld; 01719 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01720 *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 01721 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 01722 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 01723 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 01724 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 01725 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01726 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01727 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01728 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01729 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01730 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01731 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01732 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01733 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01734 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01735 (*sptr) & 01736 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01737 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01738 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01739 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01740 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01741 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01742 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01743 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01744 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 01745 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 01746 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 01747 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 01748 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 01749 ((*(sptr) << 14) | (*(sptr + 1) >> 18)); 01750 } 01751 } 01752 } 01753 01754 static void 01755 fdilate_1_18(l_uint32 *datad, 01756 l_int32 w, 01757 l_int32 h, 01758 l_int32 wpld, 01759 l_uint32 *datas, 01760 l_int32 wpls) 01761 { 01762 l_int32 i; 01763 register l_int32 j, pwpls; 01764 register l_uint32 *sptr, *dptr; 01765 01766 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01767 01768 for (i = 0; i < h; i++) { 01769 sptr = datas + i * wpls; 01770 dptr = datad + i * wpld; 01771 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01772 *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 01773 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 01774 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 01775 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 01776 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 01777 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01778 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01779 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01780 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01781 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01782 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01783 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01784 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01785 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01786 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01787 (*sptr) | 01788 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01789 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01790 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01791 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01792 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01793 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01794 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01795 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01796 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 01797 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 01798 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 01799 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 01800 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 01801 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 01802 ((*(sptr) >> 15) | (*(sptr - 1) << 17)); 01803 } 01804 } 01805 } 01806 01807 static void 01808 ferode_1_18(l_uint32 *datad, 01809 l_int32 w, 01810 l_int32 h, 01811 l_int32 wpld, 01812 l_uint32 *datas, 01813 l_int32 wpls) 01814 { 01815 l_int32 i; 01816 register l_int32 j, pwpls; 01817 register l_uint32 *sptr, *dptr; 01818 01819 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01820 01821 for (i = 0; i < h; i++) { 01822 sptr = datas + i * wpls; 01823 dptr = datad + i * wpld; 01824 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01825 *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 01826 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 01827 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 01828 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 01829 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 01830 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01831 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01832 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01833 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01834 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01835 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01836 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01837 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01838 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01839 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01840 (*sptr) & 01841 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01842 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01843 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01844 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01845 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01846 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01847 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01848 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01849 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 01850 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 01851 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 01852 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 01853 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 01854 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 01855 ((*(sptr) << 15) | (*(sptr + 1) >> 17)); 01856 } 01857 } 01858 } 01859 01860 static void 01861 fdilate_1_19(l_uint32 *datad, 01862 l_int32 w, 01863 l_int32 h, 01864 l_int32 wpld, 01865 l_uint32 *datas, 01866 l_int32 wpls) 01867 { 01868 l_int32 i; 01869 register l_int32 j, pwpls; 01870 register l_uint32 *sptr, *dptr; 01871 01872 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01873 01874 for (i = 0; i < h; i++) { 01875 sptr = datas + i * wpls; 01876 dptr = datad + i * wpld; 01877 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01878 *dptr = ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 01879 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 01880 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 01881 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 01882 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 01883 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 01884 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 01885 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 01886 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 01887 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01888 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 01889 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01890 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01891 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01892 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01893 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01894 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 01895 (*sptr) | 01896 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 01897 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01898 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 01899 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 01900 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 01901 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 01902 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 01903 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 01904 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 01905 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 01906 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 01907 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 01908 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 01909 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 01910 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 01911 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 01912 ((*(sptr) >> 17) | (*(sptr - 1) << 15)); 01913 } 01914 } 01915 } 01916 01917 static void 01918 ferode_1_19(l_uint32 *datad, 01919 l_int32 w, 01920 l_int32 h, 01921 l_int32 wpld, 01922 l_uint32 *datas, 01923 l_int32 wpls) 01924 { 01925 l_int32 i; 01926 register l_int32 j, pwpls; 01927 register l_uint32 *sptr, *dptr; 01928 01929 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01930 01931 for (i = 0; i < h; i++) { 01932 sptr = datas + i * wpls; 01933 dptr = datad + i * wpld; 01934 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01935 *dptr = ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 01936 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 01937 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 01938 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 01939 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 01940 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 01941 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 01942 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 01943 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 01944 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01945 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 01946 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01947 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01948 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01949 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01950 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01951 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 01952 (*sptr) & 01953 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 01954 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01955 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 01956 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 01957 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 01958 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 01959 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 01960 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 01961 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 01962 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 01963 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 01964 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 01965 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 01966 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 01967 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 01968 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 01969 ((*(sptr) << 17) | (*(sptr + 1) >> 15)); 01970 } 01971 } 01972 } 01973 01974 static void 01975 fdilate_1_20(l_uint32 *datad, 01976 l_int32 w, 01977 l_int32 h, 01978 l_int32 wpld, 01979 l_uint32 *datas, 01980 l_int32 wpls) 01981 { 01982 l_int32 i; 01983 register l_int32 j, pwpls; 01984 register l_uint32 *sptr, *dptr; 01985 01986 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01987 01988 for (i = 0; i < h; i++) { 01989 sptr = datas + i * wpls; 01990 dptr = datad + i * wpld; 01991 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01992 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 01993 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | 01994 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 01995 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 01996 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 01997 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 01998 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 01999 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 02000 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02001 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02002 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02003 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02004 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 02005 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02006 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02007 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02008 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02009 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02010 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 02011 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 02012 (*sptr) | 02013 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 02014 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 02015 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02016 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02017 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02018 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02019 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 02020 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 02021 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 02022 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 02023 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 02024 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 02025 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 02026 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 02027 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 02028 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 02029 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | 02030 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 02031 ((*(sptr) >> 19) | (*(sptr - 1) << 13)); 02032 } 02033 } 02034 } 02035 02036 static void 02037 ferode_1_20(l_uint32 *datad, 02038 l_int32 w, 02039 l_int32 h, 02040 l_int32 wpld, 02041 l_uint32 *datas, 02042 l_int32 wpls) 02043 { 02044 l_int32 i; 02045 register l_int32 j, pwpls; 02046 register l_uint32 *sptr, *dptr; 02047 02048 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02049 02050 for (i = 0; i < h; i++) { 02051 sptr = datas + i * wpls; 02052 dptr = datad + i * wpld; 02053 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02054 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 02055 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & 02056 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 02057 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 02058 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 02059 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 02060 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 02061 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 02062 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02063 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02064 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02065 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02066 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 02067 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02068 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02069 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02070 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02071 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02072 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 02073 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 02074 (*sptr) & 02075 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 02076 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 02077 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02078 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02079 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02080 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02081 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 02082 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 02083 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 02084 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 02085 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 02086 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 02087 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 02088 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 02089 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 02090 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 02091 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & 02092 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 02093 ((*(sptr) << 19) | (*(sptr + 1) >> 13)); 02094 } 02095 } 02096 } 02097 02098 static void 02099 fdilate_1_21(l_uint32 *datad, 02100 l_int32 w, 02101 l_int32 h, 02102 l_int32 wpld, 02103 l_uint32 *datas, 02104 l_int32 wpls) 02105 { 02106 l_int32 i; 02107 register l_int32 j, pwpls; 02108 register l_uint32 *sptr, *dptr; 02109 02110 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02111 02112 for (i = 0; i < h; i++) { 02113 sptr = datas + i * wpls; 02114 dptr = datad + i * wpld; 02115 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02116 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 02117 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | 02118 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 02119 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 02120 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 02121 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 02122 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 02123 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 02124 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02125 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02126 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02127 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02128 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 02129 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02130 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02131 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02132 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02133 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02134 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 02135 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 02136 (*sptr) | 02137 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 02138 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 02139 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02140 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02141 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02142 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02143 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 02144 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 02145 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 02146 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 02147 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 02148 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 02149 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 02150 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 02151 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 02152 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 02153 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | 02154 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 02155 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | 02156 ((*(sptr) >> 20) | (*(sptr - 1) << 12)); 02157 } 02158 } 02159 } 02160 02161 static void 02162 ferode_1_21(l_uint32 *datad, 02163 l_int32 w, 02164 l_int32 h, 02165 l_int32 wpld, 02166 l_uint32 *datas, 02167 l_int32 wpls) 02168 { 02169 l_int32 i; 02170 register l_int32 j, pwpls; 02171 register l_uint32 *sptr, *dptr; 02172 02173 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02174 02175 for (i = 0; i < h; i++) { 02176 sptr = datas + i * wpls; 02177 dptr = datad + i * wpld; 02178 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02179 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 02180 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & 02181 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 02182 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 02183 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 02184 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 02185 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 02186 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 02187 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02188 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02189 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02190 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02191 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 02192 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02193 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02194 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02195 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02196 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02197 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 02198 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 02199 (*sptr) & 02200 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 02201 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 02202 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02203 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02204 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02205 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02206 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 02207 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 02208 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 02209 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 02210 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 02211 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 02212 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 02213 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 02214 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 02215 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 02216 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & 02217 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 02218 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & 02219 ((*(sptr) << 20) | (*(sptr + 1) >> 12)); 02220 } 02221 } 02222 } 02223 02224 static void 02225 fdilate_1_22(l_uint32 *datad, 02226 l_int32 w, 02227 l_int32 h, 02228 l_int32 wpld, 02229 l_uint32 *datas, 02230 l_int32 wpls) 02231 { 02232 l_int32 i; 02233 register l_int32 j, pwpls; 02234 register l_uint32 *sptr, *dptr; 02235 02236 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02237 02238 for (i = 0; i < h; i++) { 02239 sptr = datas + i * wpls; 02240 dptr = datad + i * wpld; 02241 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02242 *dptr = ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | 02243 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | 02244 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 02245 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | 02246 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 02247 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 02248 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 02249 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 02250 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 02251 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 02252 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02253 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02254 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02255 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02256 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 02257 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02258 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02259 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02260 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02261 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02262 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 02263 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 02264 (*sptr) | 02265 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 02266 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 02267 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02268 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02269 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02270 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02271 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 02272 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 02273 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 02274 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 02275 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 02276 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 02277 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 02278 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 02279 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 02280 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 02281 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | 02282 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 02283 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | 02284 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | 02285 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | 02286 ((*(sptr) >> 22) | (*(sptr - 1) << 10)); 02287 } 02288 } 02289 } 02290 02291 static void 02292 ferode_1_22(l_uint32 *datad, 02293 l_int32 w, 02294 l_int32 h, 02295 l_int32 wpld, 02296 l_uint32 *datas, 02297 l_int32 wpls) 02298 { 02299 l_int32 i; 02300 register l_int32 j, pwpls; 02301 register l_uint32 *sptr, *dptr; 02302 02303 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02304 02305 for (i = 0; i < h; i++) { 02306 sptr = datas + i * wpls; 02307 dptr = datad + i * wpld; 02308 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02309 *dptr = ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & 02310 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & 02311 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 02312 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & 02313 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 02314 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 02315 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 02316 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 02317 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 02318 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 02319 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02320 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02321 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02322 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02323 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 02324 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02325 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02326 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02327 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02328 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02329 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 02330 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 02331 (*sptr) & 02332 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 02333 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 02334 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02335 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02336 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02337 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02338 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 02339 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 02340 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 02341 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 02342 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 02343 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 02344 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 02345 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 02346 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 02347 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 02348 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & 02349 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 02350 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & 02351 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & 02352 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & 02353 ((*(sptr) << 22) | (*(sptr + 1) >> 10)); 02354 } 02355 } 02356 } 02357 02358 static void 02359 fdilate_1_23(l_uint32 *datad, 02360 l_int32 w, 02361 l_int32 h, 02362 l_int32 wpld, 02363 l_uint32 *datas, 02364 l_int32 wpls) 02365 { 02366 l_int32 i; 02367 register l_int32 j, pwpls; 02368 register l_uint32 *sptr, *dptr; 02369 02370 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02371 02372 for (i = 0; i < h; i++) { 02373 sptr = datas + i * wpls; 02374 dptr = datad + i * wpld; 02375 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02376 *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) | 02377 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) | 02378 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) | 02379 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | 02380 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | 02381 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 02382 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | 02383 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 02384 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 02385 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 02386 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 02387 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 02388 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 02389 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02390 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02391 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02392 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02393 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 02394 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02395 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02396 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02397 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02398 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02399 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 02400 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 02401 (*sptr) | 02402 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 02403 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 02404 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02405 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02406 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02407 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02408 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 02409 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 02410 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 02411 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 02412 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 02413 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 02414 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 02415 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 02416 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 02417 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 02418 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | 02419 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 02420 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | 02421 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | 02422 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | 02423 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) | 02424 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) | 02425 ((*(sptr) >> 24) | (*(sptr - 1) << 8)); 02426 } 02427 } 02428 } 02429 02430 static void 02431 ferode_1_23(l_uint32 *datad, 02432 l_int32 w, 02433 l_int32 h, 02434 l_int32 wpld, 02435 l_uint32 *datas, 02436 l_int32 wpls) 02437 { 02438 l_int32 i; 02439 register l_int32 j, pwpls; 02440 register l_uint32 *sptr, *dptr; 02441 02442 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02443 02444 for (i = 0; i < h; i++) { 02445 sptr = datas + i * wpls; 02446 dptr = datad + i * wpld; 02447 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02448 *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) & 02449 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) & 02450 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) & 02451 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & 02452 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & 02453 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 02454 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & 02455 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 02456 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 02457 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 02458 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 02459 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 02460 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 02461 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02462 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02463 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02464 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02465 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 02466 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02467 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02468 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02469 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02470 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02471 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 02472 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 02473 (*sptr) & 02474 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 02475 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 02476 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02477 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02478 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02479 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02480 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 02481 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 02482 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 02483 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 02484 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 02485 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 02486 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 02487 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 02488 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 02489 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 02490 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & 02491 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 02492 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & 02493 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & 02494 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & 02495 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) & 02496 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) & 02497 ((*(sptr) << 24) | (*(sptr + 1) >> 8)); 02498 } 02499 } 02500 } 02501 02502 static void 02503 fdilate_1_24(l_uint32 *datad, 02504 l_int32 w, 02505 l_int32 h, 02506 l_int32 wpld, 02507 l_uint32 *datas, 02508 l_int32 wpls) 02509 { 02510 l_int32 i; 02511 register l_int32 j, pwpls; 02512 register l_uint32 *sptr, *dptr; 02513 02514 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02515 02516 for (i = 0; i < h; i++) { 02517 sptr = datas + i * wpls; 02518 dptr = datad + i * wpld; 02519 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02520 *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) | 02521 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) | 02522 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) | 02523 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | 02524 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | 02525 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 02526 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | 02527 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 02528 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 02529 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 02530 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 02531 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 02532 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 02533 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02534 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02535 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02536 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02537 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 02538 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02539 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02540 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02541 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02542 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02543 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 02544 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 02545 (*sptr) | 02546 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 02547 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 02548 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02549 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02550 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02551 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02552 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 02553 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 02554 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 02555 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 02556 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 02557 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 02558 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 02559 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 02560 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 02561 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 02562 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | 02563 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 02564 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | 02565 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | 02566 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | 02567 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) | 02568 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) | 02569 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) | 02570 ((*(sptr) >> 25) | (*(sptr - 1) << 7)); 02571 } 02572 } 02573 } 02574 02575 static void 02576 ferode_1_24(l_uint32 *datad, 02577 l_int32 w, 02578 l_int32 h, 02579 l_int32 wpld, 02580 l_uint32 *datas, 02581 l_int32 wpls) 02582 { 02583 l_int32 i; 02584 register l_int32 j, pwpls; 02585 register l_uint32 *sptr, *dptr; 02586 02587 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02588 02589 for (i = 0; i < h; i++) { 02590 sptr = datas + i * wpls; 02591 dptr = datad + i * wpld; 02592 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02593 *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) & 02594 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) & 02595 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) & 02596 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & 02597 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & 02598 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 02599 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & 02600 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 02601 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 02602 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 02603 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 02604 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 02605 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 02606 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02607 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02608 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02609 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02610 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 02611 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02612 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02613 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02614 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02615 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02616 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 02617 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 02618 (*sptr) & 02619 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 02620 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 02621 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02622 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02623 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02624 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02625 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 02626 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 02627 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 02628 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 02629 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 02630 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 02631 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 02632 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 02633 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 02634 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 02635 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & 02636 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 02637 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & 02638 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & 02639 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & 02640 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) & 02641 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) & 02642 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) & 02643 ((*(sptr) << 25) | (*(sptr + 1) >> 7)); 02644 } 02645 } 02646 } 02647 02648 static void 02649 fdilate_1_25(l_uint32 *datad, 02650 l_int32 w, 02651 l_int32 h, 02652 l_int32 wpld, 02653 l_uint32 *datas, 02654 l_int32 wpls) 02655 { 02656 l_int32 i; 02657 register l_int32 j, pwpls; 02658 register l_uint32 *sptr, *dptr; 02659 02660 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02661 02662 for (i = 0; i < h; i++) { 02663 sptr = datas + i * wpls; 02664 dptr = datad + i * wpld; 02665 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02666 *dptr = (*(sptr + wpls)) | 02667 (*sptr); 02668 } 02669 } 02670 } 02671 02672 static void 02673 ferode_1_25(l_uint32 *datad, 02674 l_int32 w, 02675 l_int32 h, 02676 l_int32 wpld, 02677 l_uint32 *datas, 02678 l_int32 wpls) 02679 { 02680 l_int32 i; 02681 register l_int32 j, pwpls; 02682 register l_uint32 *sptr, *dptr; 02683 02684 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02685 02686 for (i = 0; i < h; i++) { 02687 sptr = datas + i * wpls; 02688 dptr = datad + i * wpld; 02689 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02690 *dptr = (*(sptr - wpls)) & 02691 (*sptr); 02692 } 02693 } 02694 } 02695 02696 static void 02697 fdilate_1_26(l_uint32 *datad, 02698 l_int32 w, 02699 l_int32 h, 02700 l_int32 wpld, 02701 l_uint32 *datas, 02702 l_int32 wpls) 02703 { 02704 l_int32 i; 02705 register l_int32 j, pwpls; 02706 register l_uint32 *sptr, *dptr; 02707 02708 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02709 02710 for (i = 0; i < h; i++) { 02711 sptr = datas + i * wpls; 02712 dptr = datad + i * wpld; 02713 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02714 *dptr = (*(sptr + wpls)) | 02715 (*sptr) | 02716 (*(sptr - wpls)); 02717 } 02718 } 02719 } 02720 02721 static void 02722 ferode_1_26(l_uint32 *datad, 02723 l_int32 w, 02724 l_int32 h, 02725 l_int32 wpld, 02726 l_uint32 *datas, 02727 l_int32 wpls) 02728 { 02729 l_int32 i; 02730 register l_int32 j, pwpls; 02731 register l_uint32 *sptr, *dptr; 02732 02733 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02734 02735 for (i = 0; i < h; i++) { 02736 sptr = datas + i * wpls; 02737 dptr = datad + i * wpld; 02738 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02739 *dptr = (*(sptr - wpls)) & 02740 (*sptr) & 02741 (*(sptr + wpls)); 02742 } 02743 } 02744 } 02745 02746 static void 02747 fdilate_1_27(l_uint32 *datad, 02748 l_int32 w, 02749 l_int32 h, 02750 l_int32 wpld, 02751 l_uint32 *datas, 02752 l_int32 wpls) 02753 { 02754 l_int32 i; 02755 register l_int32 j, pwpls; 02756 register l_uint32 *sptr, *dptr; 02757 l_int32 wpls2; 02758 02759 wpls2 = 2 * wpls; 02760 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02761 02762 for (i = 0; i < h; i++) { 02763 sptr = datas + i * wpls; 02764 dptr = datad + i * wpld; 02765 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02766 *dptr = (*(sptr + wpls2)) | 02767 (*(sptr + wpls)) | 02768 (*sptr) | 02769 (*(sptr - wpls)); 02770 } 02771 } 02772 } 02773 02774 static void 02775 ferode_1_27(l_uint32 *datad, 02776 l_int32 w, 02777 l_int32 h, 02778 l_int32 wpld, 02779 l_uint32 *datas, 02780 l_int32 wpls) 02781 { 02782 l_int32 i; 02783 register l_int32 j, pwpls; 02784 register l_uint32 *sptr, *dptr; 02785 l_int32 wpls2; 02786 02787 wpls2 = 2 * wpls; 02788 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02789 02790 for (i = 0; i < h; i++) { 02791 sptr = datas + i * wpls; 02792 dptr = datad + i * wpld; 02793 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02794 *dptr = (*(sptr - wpls2)) & 02795 (*(sptr - wpls)) & 02796 (*sptr) & 02797 (*(sptr + wpls)); 02798 } 02799 } 02800 } 02801 02802 static void 02803 fdilate_1_28(l_uint32 *datad, 02804 l_int32 w, 02805 l_int32 h, 02806 l_int32 wpld, 02807 l_uint32 *datas, 02808 l_int32 wpls) 02809 { 02810 l_int32 i; 02811 register l_int32 j, pwpls; 02812 register l_uint32 *sptr, *dptr; 02813 l_int32 wpls2; 02814 02815 wpls2 = 2 * wpls; 02816 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02817 02818 for (i = 0; i < h; i++) { 02819 sptr = datas + i * wpls; 02820 dptr = datad + i * wpld; 02821 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02822 *dptr = (*(sptr + wpls2)) | 02823 (*(sptr + wpls)) | 02824 (*sptr) | 02825 (*(sptr - wpls)) | 02826 (*(sptr - wpls2)); 02827 } 02828 } 02829 } 02830 02831 static void 02832 ferode_1_28(l_uint32 *datad, 02833 l_int32 w, 02834 l_int32 h, 02835 l_int32 wpld, 02836 l_uint32 *datas, 02837 l_int32 wpls) 02838 { 02839 l_int32 i; 02840 register l_int32 j, pwpls; 02841 register l_uint32 *sptr, *dptr; 02842 l_int32 wpls2; 02843 02844 wpls2 = 2 * wpls; 02845 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02846 02847 for (i = 0; i < h; i++) { 02848 sptr = datas + i * wpls; 02849 dptr = datad + i * wpld; 02850 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02851 *dptr = (*(sptr - wpls2)) & 02852 (*(sptr - wpls)) & 02853 (*sptr) & 02854 (*(sptr + wpls)) & 02855 (*(sptr + wpls2)); 02856 } 02857 } 02858 } 02859 02860 static void 02861 fdilate_1_29(l_uint32 *datad, 02862 l_int32 w, 02863 l_int32 h, 02864 l_int32 wpld, 02865 l_uint32 *datas, 02866 l_int32 wpls) 02867 { 02868 l_int32 i; 02869 register l_int32 j, pwpls; 02870 register l_uint32 *sptr, *dptr; 02871 l_int32 wpls2, wpls3; 02872 02873 wpls2 = 2 * wpls; 02874 wpls3 = 3 * wpls; 02875 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02876 02877 for (i = 0; i < h; i++) { 02878 sptr = datas + i * wpls; 02879 dptr = datad + i * wpld; 02880 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02881 *dptr = (*(sptr + wpls3)) | 02882 (*(sptr + wpls2)) | 02883 (*(sptr + wpls)) | 02884 (*sptr) | 02885 (*(sptr - wpls)) | 02886 (*(sptr - wpls2)); 02887 } 02888 } 02889 } 02890 02891 static void 02892 ferode_1_29(l_uint32 *datad, 02893 l_int32 w, 02894 l_int32 h, 02895 l_int32 wpld, 02896 l_uint32 *datas, 02897 l_int32 wpls) 02898 { 02899 l_int32 i; 02900 register l_int32 j, pwpls; 02901 register l_uint32 *sptr, *dptr; 02902 l_int32 wpls2, wpls3; 02903 02904 wpls2 = 2 * wpls; 02905 wpls3 = 3 * wpls; 02906 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02907 02908 for (i = 0; i < h; i++) { 02909 sptr = datas + i * wpls; 02910 dptr = datad + i * wpld; 02911 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02912 *dptr = (*(sptr - wpls3)) & 02913 (*(sptr - wpls2)) & 02914 (*(sptr - wpls)) & 02915 (*sptr) & 02916 (*(sptr + wpls)) & 02917 (*(sptr + wpls2)); 02918 } 02919 } 02920 } 02921 02922 static void 02923 fdilate_1_30(l_uint32 *datad, 02924 l_int32 w, 02925 l_int32 h, 02926 l_int32 wpld, 02927 l_uint32 *datas, 02928 l_int32 wpls) 02929 { 02930 l_int32 i; 02931 register l_int32 j, pwpls; 02932 register l_uint32 *sptr, *dptr; 02933 l_int32 wpls2, wpls3; 02934 02935 wpls2 = 2 * wpls; 02936 wpls3 = 3 * wpls; 02937 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02938 02939 for (i = 0; i < h; i++) { 02940 sptr = datas + i * wpls; 02941 dptr = datad + i * wpld; 02942 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02943 *dptr = (*(sptr + wpls3)) | 02944 (*(sptr + wpls2)) | 02945 (*(sptr + wpls)) | 02946 (*sptr) | 02947 (*(sptr - wpls)) | 02948 (*(sptr - wpls2)) | 02949 (*(sptr - wpls3)); 02950 } 02951 } 02952 } 02953 02954 static void 02955 ferode_1_30(l_uint32 *datad, 02956 l_int32 w, 02957 l_int32 h, 02958 l_int32 wpld, 02959 l_uint32 *datas, 02960 l_int32 wpls) 02961 { 02962 l_int32 i; 02963 register l_int32 j, pwpls; 02964 register l_uint32 *sptr, *dptr; 02965 l_int32 wpls2, wpls3; 02966 02967 wpls2 = 2 * wpls; 02968 wpls3 = 3 * wpls; 02969 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02970 02971 for (i = 0; i < h; i++) { 02972 sptr = datas + i * wpls; 02973 dptr = datad + i * wpld; 02974 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02975 *dptr = (*(sptr - wpls3)) & 02976 (*(sptr - wpls2)) & 02977 (*(sptr - wpls)) & 02978 (*sptr) & 02979 (*(sptr + wpls)) & 02980 (*(sptr + wpls2)) & 02981 (*(sptr + wpls3)); 02982 } 02983 } 02984 } 02985 02986 static void 02987 fdilate_1_31(l_uint32 *datad, 02988 l_int32 w, 02989 l_int32 h, 02990 l_int32 wpld, 02991 l_uint32 *datas, 02992 l_int32 wpls) 02993 { 02994 l_int32 i; 02995 register l_int32 j, pwpls; 02996 register l_uint32 *sptr, *dptr; 02997 l_int32 wpls2, wpls3, wpls4; 02998 02999 wpls2 = 2 * wpls; 03000 wpls3 = 3 * wpls; 03001 wpls4 = 4 * wpls; 03002 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03003 03004 for (i = 0; i < h; i++) { 03005 sptr = datas + i * wpls; 03006 dptr = datad + i * wpld; 03007 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03008 *dptr = (*(sptr + wpls4)) | 03009 (*(sptr + wpls3)) | 03010 (*(sptr + wpls2)) | 03011 (*(sptr + wpls)) | 03012 (*sptr) | 03013 (*(sptr - wpls)) | 03014 (*(sptr - wpls2)) | 03015 (*(sptr - wpls3)); 03016 } 03017 } 03018 } 03019 03020 static void 03021 ferode_1_31(l_uint32 *datad, 03022 l_int32 w, 03023 l_int32 h, 03024 l_int32 wpld, 03025 l_uint32 *datas, 03026 l_int32 wpls) 03027 { 03028 l_int32 i; 03029 register l_int32 j, pwpls; 03030 register l_uint32 *sptr, *dptr; 03031 l_int32 wpls2, wpls3, wpls4; 03032 03033 wpls2 = 2 * wpls; 03034 wpls3 = 3 * wpls; 03035 wpls4 = 4 * wpls; 03036 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03037 03038 for (i = 0; i < h; i++) { 03039 sptr = datas + i * wpls; 03040 dptr = datad + i * wpld; 03041 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03042 *dptr = (*(sptr - wpls4)) & 03043 (*(sptr - wpls3)) & 03044 (*(sptr - wpls2)) & 03045 (*(sptr - wpls)) & 03046 (*sptr) & 03047 (*(sptr + wpls)) & 03048 (*(sptr + wpls2)) & 03049 (*(sptr + wpls3)); 03050 } 03051 } 03052 } 03053 03054 static void 03055 fdilate_1_32(l_uint32 *datad, 03056 l_int32 w, 03057 l_int32 h, 03058 l_int32 wpld, 03059 l_uint32 *datas, 03060 l_int32 wpls) 03061 { 03062 l_int32 i; 03063 register l_int32 j, pwpls; 03064 register l_uint32 *sptr, *dptr; 03065 l_int32 wpls2, wpls3, wpls4; 03066 03067 wpls2 = 2 * wpls; 03068 wpls3 = 3 * wpls; 03069 wpls4 = 4 * wpls; 03070 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03071 03072 for (i = 0; i < h; i++) { 03073 sptr = datas + i * wpls; 03074 dptr = datad + i * wpld; 03075 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03076 *dptr = (*(sptr + wpls4)) | 03077 (*(sptr + wpls3)) | 03078 (*(sptr + wpls2)) | 03079 (*(sptr + wpls)) | 03080 (*sptr) | 03081 (*(sptr - wpls)) | 03082 (*(sptr - wpls2)) | 03083 (*(sptr - wpls3)) | 03084 (*(sptr - wpls4)); 03085 } 03086 } 03087 } 03088 03089 static void 03090 ferode_1_32(l_uint32 *datad, 03091 l_int32 w, 03092 l_int32 h, 03093 l_int32 wpld, 03094 l_uint32 *datas, 03095 l_int32 wpls) 03096 { 03097 l_int32 i; 03098 register l_int32 j, pwpls; 03099 register l_uint32 *sptr, *dptr; 03100 l_int32 wpls2, wpls3, wpls4; 03101 03102 wpls2 = 2 * wpls; 03103 wpls3 = 3 * wpls; 03104 wpls4 = 4 * wpls; 03105 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03106 03107 for (i = 0; i < h; i++) { 03108 sptr = datas + i * wpls; 03109 dptr = datad + i * wpld; 03110 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03111 *dptr = (*(sptr - wpls4)) & 03112 (*(sptr - wpls3)) & 03113 (*(sptr - wpls2)) & 03114 (*(sptr - wpls)) & 03115 (*sptr) & 03116 (*(sptr + wpls)) & 03117 (*(sptr + wpls2)) & 03118 (*(sptr + wpls3)) & 03119 (*(sptr + wpls4)); 03120 } 03121 } 03122 } 03123 03124 static void 03125 fdilate_1_33(l_uint32 *datad, 03126 l_int32 w, 03127 l_int32 h, 03128 l_int32 wpld, 03129 l_uint32 *datas, 03130 l_int32 wpls) 03131 { 03132 l_int32 i; 03133 register l_int32 j, pwpls; 03134 register l_uint32 *sptr, *dptr; 03135 l_int32 wpls2, wpls3, wpls4; 03136 l_int32 wpls5; 03137 03138 wpls2 = 2 * wpls; 03139 wpls3 = 3 * wpls; 03140 wpls4 = 4 * wpls; 03141 wpls5 = 5 * wpls; 03142 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03143 03144 for (i = 0; i < h; i++) { 03145 sptr = datas + i * wpls; 03146 dptr = datad + i * wpld; 03147 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03148 *dptr = (*(sptr + wpls5)) | 03149 (*(sptr + wpls4)) | 03150 (*(sptr + wpls3)) | 03151 (*(sptr + wpls2)) | 03152 (*(sptr + wpls)) | 03153 (*sptr) | 03154 (*(sptr - wpls)) | 03155 (*(sptr - wpls2)) | 03156 (*(sptr - wpls3)) | 03157 (*(sptr - wpls4)); 03158 } 03159 } 03160 } 03161 03162 static void 03163 ferode_1_33(l_uint32 *datad, 03164 l_int32 w, 03165 l_int32 h, 03166 l_int32 wpld, 03167 l_uint32 *datas, 03168 l_int32 wpls) 03169 { 03170 l_int32 i; 03171 register l_int32 j, pwpls; 03172 register l_uint32 *sptr, *dptr; 03173 l_int32 wpls2, wpls3, wpls4; 03174 l_int32 wpls5; 03175 03176 wpls2 = 2 * wpls; 03177 wpls3 = 3 * wpls; 03178 wpls4 = 4 * wpls; 03179 wpls5 = 5 * wpls; 03180 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03181 03182 for (i = 0; i < h; i++) { 03183 sptr = datas + i * wpls; 03184 dptr = datad + i * wpld; 03185 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03186 *dptr = (*(sptr - wpls5)) & 03187 (*(sptr - wpls4)) & 03188 (*(sptr - wpls3)) & 03189 (*(sptr - wpls2)) & 03190 (*(sptr - wpls)) & 03191 (*sptr) & 03192 (*(sptr + wpls)) & 03193 (*(sptr + wpls2)) & 03194 (*(sptr + wpls3)) & 03195 (*(sptr + wpls4)); 03196 } 03197 } 03198 } 03199 03200 static void 03201 fdilate_1_34(l_uint32 *datad, 03202 l_int32 w, 03203 l_int32 h, 03204 l_int32 wpld, 03205 l_uint32 *datas, 03206 l_int32 wpls) 03207 { 03208 l_int32 i; 03209 register l_int32 j, pwpls; 03210 register l_uint32 *sptr, *dptr; 03211 l_int32 wpls2, wpls3, wpls4; 03212 l_int32 wpls5; 03213 03214 wpls2 = 2 * wpls; 03215 wpls3 = 3 * wpls; 03216 wpls4 = 4 * wpls; 03217 wpls5 = 5 * wpls; 03218 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03219 03220 for (i = 0; i < h; i++) { 03221 sptr = datas + i * wpls; 03222 dptr = datad + i * wpld; 03223 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03224 *dptr = (*(sptr + wpls5)) | 03225 (*(sptr + wpls4)) | 03226 (*(sptr + wpls3)) | 03227 (*(sptr + wpls2)) | 03228 (*(sptr + wpls)) | 03229 (*sptr) | 03230 (*(sptr - wpls)) | 03231 (*(sptr - wpls2)) | 03232 (*(sptr - wpls3)) | 03233 (*(sptr - wpls4)) | 03234 (*(sptr - wpls5)); 03235 } 03236 } 03237 } 03238 03239 static void 03240 ferode_1_34(l_uint32 *datad, 03241 l_int32 w, 03242 l_int32 h, 03243 l_int32 wpld, 03244 l_uint32 *datas, 03245 l_int32 wpls) 03246 { 03247 l_int32 i; 03248 register l_int32 j, pwpls; 03249 register l_uint32 *sptr, *dptr; 03250 l_int32 wpls2, wpls3, wpls4; 03251 l_int32 wpls5; 03252 03253 wpls2 = 2 * wpls; 03254 wpls3 = 3 * wpls; 03255 wpls4 = 4 * wpls; 03256 wpls5 = 5 * wpls; 03257 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03258 03259 for (i = 0; i < h; i++) { 03260 sptr = datas + i * wpls; 03261 dptr = datad + i * wpld; 03262 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03263 *dptr = (*(sptr - wpls5)) & 03264 (*(sptr - wpls4)) & 03265 (*(sptr - wpls3)) & 03266 (*(sptr - wpls2)) & 03267 (*(sptr - wpls)) & 03268 (*sptr) & 03269 (*(sptr + wpls)) & 03270 (*(sptr + wpls2)) & 03271 (*(sptr + wpls3)) & 03272 (*(sptr + wpls4)) & 03273 (*(sptr + wpls5)); 03274 } 03275 } 03276 } 03277 03278 static void 03279 fdilate_1_35(l_uint32 *datad, 03280 l_int32 w, 03281 l_int32 h, 03282 l_int32 wpld, 03283 l_uint32 *datas, 03284 l_int32 wpls) 03285 { 03286 l_int32 i; 03287 register l_int32 j, pwpls; 03288 register l_uint32 *sptr, *dptr; 03289 l_int32 wpls2, wpls3, wpls4; 03290 l_int32 wpls5, wpls6; 03291 03292 wpls2 = 2 * wpls; 03293 wpls3 = 3 * wpls; 03294 wpls4 = 4 * wpls; 03295 wpls5 = 5 * wpls; 03296 wpls6 = 6 * wpls; 03297 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03298 03299 for (i = 0; i < h; i++) { 03300 sptr = datas + i * wpls; 03301 dptr = datad + i * wpld; 03302 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03303 *dptr = (*(sptr + wpls6)) | 03304 (*(sptr + wpls5)) | 03305 (*(sptr + wpls4)) | 03306 (*(sptr + wpls3)) | 03307 (*(sptr + wpls2)) | 03308 (*(sptr + wpls)) | 03309 (*sptr) | 03310 (*(sptr - wpls)) | 03311 (*(sptr - wpls2)) | 03312 (*(sptr - wpls3)) | 03313 (*(sptr - wpls4)) | 03314 (*(sptr - wpls5)); 03315 } 03316 } 03317 } 03318 03319 static void 03320 ferode_1_35(l_uint32 *datad, 03321 l_int32 w, 03322 l_int32 h, 03323 l_int32 wpld, 03324 l_uint32 *datas, 03325 l_int32 wpls) 03326 { 03327 l_int32 i; 03328 register l_int32 j, pwpls; 03329 register l_uint32 *sptr, *dptr; 03330 l_int32 wpls2, wpls3, wpls4; 03331 l_int32 wpls5, wpls6; 03332 03333 wpls2 = 2 * wpls; 03334 wpls3 = 3 * wpls; 03335 wpls4 = 4 * wpls; 03336 wpls5 = 5 * wpls; 03337 wpls6 = 6 * wpls; 03338 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03339 03340 for (i = 0; i < h; i++) { 03341 sptr = datas + i * wpls; 03342 dptr = datad + i * wpld; 03343 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03344 *dptr = (*(sptr - wpls6)) & 03345 (*(sptr - wpls5)) & 03346 (*(sptr - wpls4)) & 03347 (*(sptr - wpls3)) & 03348 (*(sptr - wpls2)) & 03349 (*(sptr - wpls)) & 03350 (*sptr) & 03351 (*(sptr + wpls)) & 03352 (*(sptr + wpls2)) & 03353 (*(sptr + wpls3)) & 03354 (*(sptr + wpls4)) & 03355 (*(sptr + wpls5)); 03356 } 03357 } 03358 } 03359 03360 static void 03361 fdilate_1_36(l_uint32 *datad, 03362 l_int32 w, 03363 l_int32 h, 03364 l_int32 wpld, 03365 l_uint32 *datas, 03366 l_int32 wpls) 03367 { 03368 l_int32 i; 03369 register l_int32 j, pwpls; 03370 register l_uint32 *sptr, *dptr; 03371 l_int32 wpls2, wpls3, wpls4; 03372 l_int32 wpls5, wpls6; 03373 03374 wpls2 = 2 * wpls; 03375 wpls3 = 3 * wpls; 03376 wpls4 = 4 * wpls; 03377 wpls5 = 5 * wpls; 03378 wpls6 = 6 * wpls; 03379 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03380 03381 for (i = 0; i < h; i++) { 03382 sptr = datas + i * wpls; 03383 dptr = datad + i * wpld; 03384 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03385 *dptr = (*(sptr + wpls6)) | 03386 (*(sptr + wpls5)) | 03387 (*(sptr + wpls4)) | 03388 (*(sptr + wpls3)) | 03389 (*(sptr + wpls2)) | 03390 (*(sptr + wpls)) | 03391 (*sptr) | 03392 (*(sptr - wpls)) | 03393 (*(sptr - wpls2)) | 03394 (*(sptr - wpls3)) | 03395 (*(sptr - wpls4)) | 03396 (*(sptr - wpls5)) | 03397 (*(sptr - wpls6)); 03398 } 03399 } 03400 } 03401 03402 static void 03403 ferode_1_36(l_uint32 *datad, 03404 l_int32 w, 03405 l_int32 h, 03406 l_int32 wpld, 03407 l_uint32 *datas, 03408 l_int32 wpls) 03409 { 03410 l_int32 i; 03411 register l_int32 j, pwpls; 03412 register l_uint32 *sptr, *dptr; 03413 l_int32 wpls2, wpls3, wpls4; 03414 l_int32 wpls5, wpls6; 03415 03416 wpls2 = 2 * wpls; 03417 wpls3 = 3 * wpls; 03418 wpls4 = 4 * wpls; 03419 wpls5 = 5 * wpls; 03420 wpls6 = 6 * wpls; 03421 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03422 03423 for (i = 0; i < h; i++) { 03424 sptr = datas + i * wpls; 03425 dptr = datad + i * wpld; 03426 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03427 *dptr = (*(sptr - wpls6)) & 03428 (*(sptr - wpls5)) & 03429 (*(sptr - wpls4)) & 03430 (*(sptr - wpls3)) & 03431 (*(sptr - wpls2)) & 03432 (*(sptr - wpls)) & 03433 (*sptr) & 03434 (*(sptr + wpls)) & 03435 (*(sptr + wpls2)) & 03436 (*(sptr + wpls3)) & 03437 (*(sptr + wpls4)) & 03438 (*(sptr + wpls5)) & 03439 (*(sptr + wpls6)); 03440 } 03441 } 03442 } 03443 03444 static void 03445 fdilate_1_37(l_uint32 *datad, 03446 l_int32 w, 03447 l_int32 h, 03448 l_int32 wpld, 03449 l_uint32 *datas, 03450 l_int32 wpls) 03451 { 03452 l_int32 i; 03453 register l_int32 j, pwpls; 03454 register l_uint32 *sptr, *dptr; 03455 l_int32 wpls2, wpls3, wpls4; 03456 l_int32 wpls5, wpls6, wpls7; 03457 03458 wpls2 = 2 * wpls; 03459 wpls3 = 3 * wpls; 03460 wpls4 = 4 * wpls; 03461 wpls5 = 5 * wpls; 03462 wpls6 = 6 * wpls; 03463 wpls7 = 7 * wpls; 03464 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03465 03466 for (i = 0; i < h; i++) { 03467 sptr = datas + i * wpls; 03468 dptr = datad + i * wpld; 03469 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03470 *dptr = (*(sptr + wpls7)) | 03471 (*(sptr + wpls6)) | 03472 (*(sptr + wpls5)) | 03473 (*(sptr + wpls4)) | 03474 (*(sptr + wpls3)) | 03475 (*(sptr + wpls2)) | 03476 (*(sptr + wpls)) | 03477 (*sptr) | 03478 (*(sptr - wpls)) | 03479 (*(sptr - wpls2)) | 03480 (*(sptr - wpls3)) | 03481 (*(sptr - wpls4)) | 03482 (*(sptr - wpls5)) | 03483 (*(sptr - wpls6)); 03484 } 03485 } 03486 } 03487 03488 static void 03489 ferode_1_37(l_uint32 *datad, 03490 l_int32 w, 03491 l_int32 h, 03492 l_int32 wpld, 03493 l_uint32 *datas, 03494 l_int32 wpls) 03495 { 03496 l_int32 i; 03497 register l_int32 j, pwpls; 03498 register l_uint32 *sptr, *dptr; 03499 l_int32 wpls2, wpls3, wpls4; 03500 l_int32 wpls5, wpls6, wpls7; 03501 03502 wpls2 = 2 * wpls; 03503 wpls3 = 3 * wpls; 03504 wpls4 = 4 * wpls; 03505 wpls5 = 5 * wpls; 03506 wpls6 = 6 * wpls; 03507 wpls7 = 7 * wpls; 03508 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03509 03510 for (i = 0; i < h; i++) { 03511 sptr = datas + i * wpls; 03512 dptr = datad + i * wpld; 03513 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03514 *dptr = (*(sptr - wpls7)) & 03515 (*(sptr - wpls6)) & 03516 (*(sptr - wpls5)) & 03517 (*(sptr - wpls4)) & 03518 (*(sptr - wpls3)) & 03519 (*(sptr - wpls2)) & 03520 (*(sptr - wpls)) & 03521 (*sptr) & 03522 (*(sptr + wpls)) & 03523 (*(sptr + wpls2)) & 03524 (*(sptr + wpls3)) & 03525 (*(sptr + wpls4)) & 03526 (*(sptr + wpls5)) & 03527 (*(sptr + wpls6)); 03528 } 03529 } 03530 } 03531 03532 static void 03533 fdilate_1_38(l_uint32 *datad, 03534 l_int32 w, 03535 l_int32 h, 03536 l_int32 wpld, 03537 l_uint32 *datas, 03538 l_int32 wpls) 03539 { 03540 l_int32 i; 03541 register l_int32 j, pwpls; 03542 register l_uint32 *sptr, *dptr; 03543 l_int32 wpls2, wpls3, wpls4; 03544 l_int32 wpls5, wpls6, wpls7; 03545 03546 wpls2 = 2 * wpls; 03547 wpls3 = 3 * wpls; 03548 wpls4 = 4 * wpls; 03549 wpls5 = 5 * wpls; 03550 wpls6 = 6 * wpls; 03551 wpls7 = 7 * wpls; 03552 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03553 03554 for (i = 0; i < h; i++) { 03555 sptr = datas + i * wpls; 03556 dptr = datad + i * wpld; 03557 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03558 *dptr = (*(sptr + wpls7)) | 03559 (*(sptr + wpls6)) | 03560 (*(sptr + wpls5)) | 03561 (*(sptr + wpls4)) | 03562 (*(sptr + wpls3)) | 03563 (*(sptr + wpls2)) | 03564 (*(sptr + wpls)) | 03565 (*sptr) | 03566 (*(sptr - wpls)) | 03567 (*(sptr - wpls2)) | 03568 (*(sptr - wpls3)) | 03569 (*(sptr - wpls4)) | 03570 (*(sptr - wpls5)) | 03571 (*(sptr - wpls6)) | 03572 (*(sptr - wpls7)); 03573 } 03574 } 03575 } 03576 03577 static void 03578 ferode_1_38(l_uint32 *datad, 03579 l_int32 w, 03580 l_int32 h, 03581 l_int32 wpld, 03582 l_uint32 *datas, 03583 l_int32 wpls) 03584 { 03585 l_int32 i; 03586 register l_int32 j, pwpls; 03587 register l_uint32 *sptr, *dptr; 03588 l_int32 wpls2, wpls3, wpls4; 03589 l_int32 wpls5, wpls6, wpls7; 03590 03591 wpls2 = 2 * wpls; 03592 wpls3 = 3 * wpls; 03593 wpls4 = 4 * wpls; 03594 wpls5 = 5 * wpls; 03595 wpls6 = 6 * wpls; 03596 wpls7 = 7 * wpls; 03597 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03598 03599 for (i = 0; i < h; i++) { 03600 sptr = datas + i * wpls; 03601 dptr = datad + i * wpld; 03602 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03603 *dptr = (*(sptr - wpls7)) & 03604 (*(sptr - wpls6)) & 03605 (*(sptr - wpls5)) & 03606 (*(sptr - wpls4)) & 03607 (*(sptr - wpls3)) & 03608 (*(sptr - wpls2)) & 03609 (*(sptr - wpls)) & 03610 (*sptr) & 03611 (*(sptr + wpls)) & 03612 (*(sptr + wpls2)) & 03613 (*(sptr + wpls3)) & 03614 (*(sptr + wpls4)) & 03615 (*(sptr + wpls5)) & 03616 (*(sptr + wpls6)) & 03617 (*(sptr + wpls7)); 03618 } 03619 } 03620 } 03621 03622 static void 03623 fdilate_1_39(l_uint32 *datad, 03624 l_int32 w, 03625 l_int32 h, 03626 l_int32 wpld, 03627 l_uint32 *datas, 03628 l_int32 wpls) 03629 { 03630 l_int32 i; 03631 register l_int32 j, pwpls; 03632 register l_uint32 *sptr, *dptr; 03633 l_int32 wpls2, wpls3, wpls4; 03634 l_int32 wpls5, wpls6, wpls7, wpls8; 03635 l_int32 wpls9, wpls10; 03636 03637 wpls2 = 2 * wpls; 03638 wpls3 = 3 * wpls; 03639 wpls4 = 4 * wpls; 03640 wpls5 = 5 * wpls; 03641 wpls6 = 6 * wpls; 03642 wpls7 = 7 * wpls; 03643 wpls8 = 8 * wpls; 03644 wpls9 = 9 * wpls; 03645 wpls10 = 10 * wpls; 03646 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03647 03648 for (i = 0; i < h; i++) { 03649 sptr = datas + i * wpls; 03650 dptr = datad + i * wpld; 03651 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03652 *dptr = (*(sptr + wpls10)) | 03653 (*(sptr + wpls9)) | 03654 (*(sptr + wpls8)) | 03655 (*(sptr + wpls7)) | 03656 (*(sptr + wpls6)) | 03657 (*(sptr + wpls5)) | 03658 (*(sptr + wpls4)) | 03659 (*(sptr + wpls3)) | 03660 (*(sptr + wpls2)) | 03661 (*(sptr + wpls)) | 03662 (*sptr) | 03663 (*(sptr - wpls)) | 03664 (*(sptr - wpls2)) | 03665 (*(sptr - wpls3)) | 03666 (*(sptr - wpls4)) | 03667 (*(sptr - wpls5)) | 03668 (*(sptr - wpls6)) | 03669 (*(sptr - wpls7)) | 03670 (*(sptr - wpls8)) | 03671 (*(sptr - wpls9)); 03672 } 03673 } 03674 } 03675 03676 static void 03677 ferode_1_39(l_uint32 *datad, 03678 l_int32 w, 03679 l_int32 h, 03680 l_int32 wpld, 03681 l_uint32 *datas, 03682 l_int32 wpls) 03683 { 03684 l_int32 i; 03685 register l_int32 j, pwpls; 03686 register l_uint32 *sptr, *dptr; 03687 l_int32 wpls2, wpls3, wpls4; 03688 l_int32 wpls5, wpls6, wpls7, wpls8; 03689 l_int32 wpls9, wpls10; 03690 03691 wpls2 = 2 * wpls; 03692 wpls3 = 3 * wpls; 03693 wpls4 = 4 * wpls; 03694 wpls5 = 5 * wpls; 03695 wpls6 = 6 * wpls; 03696 wpls7 = 7 * wpls; 03697 wpls8 = 8 * wpls; 03698 wpls9 = 9 * wpls; 03699 wpls10 = 10 * wpls; 03700 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03701 03702 for (i = 0; i < h; i++) { 03703 sptr = datas + i * wpls; 03704 dptr = datad + i * wpld; 03705 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03706 *dptr = (*(sptr - wpls10)) & 03707 (*(sptr - wpls9)) & 03708 (*(sptr - wpls8)) & 03709 (*(sptr - wpls7)) & 03710 (*(sptr - wpls6)) & 03711 (*(sptr - wpls5)) & 03712 (*(sptr - wpls4)) & 03713 (*(sptr - wpls3)) & 03714 (*(sptr - wpls2)) & 03715 (*(sptr - wpls)) & 03716 (*sptr) & 03717 (*(sptr + wpls)) & 03718 (*(sptr + wpls2)) & 03719 (*(sptr + wpls3)) & 03720 (*(sptr + wpls4)) & 03721 (*(sptr + wpls5)) & 03722 (*(sptr + wpls6)) & 03723 (*(sptr + wpls7)) & 03724 (*(sptr + wpls8)) & 03725 (*(sptr + wpls9)); 03726 } 03727 } 03728 } 03729 03730 static void 03731 fdilate_1_40(l_uint32 *datad, 03732 l_int32 w, 03733 l_int32 h, 03734 l_int32 wpld, 03735 l_uint32 *datas, 03736 l_int32 wpls) 03737 { 03738 l_int32 i; 03739 register l_int32 j, pwpls; 03740 register l_uint32 *sptr, *dptr; 03741 l_int32 wpls2, wpls3, wpls4; 03742 l_int32 wpls5, wpls6, wpls7, wpls8; 03743 l_int32 wpls9, wpls10; 03744 03745 wpls2 = 2 * wpls; 03746 wpls3 = 3 * wpls; 03747 wpls4 = 4 * wpls; 03748 wpls5 = 5 * wpls; 03749 wpls6 = 6 * wpls; 03750 wpls7 = 7 * wpls; 03751 wpls8 = 8 * wpls; 03752 wpls9 = 9 * wpls; 03753 wpls10 = 10 * wpls; 03754 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03755 03756 for (i = 0; i < h; i++) { 03757 sptr = datas + i * wpls; 03758 dptr = datad + i * wpld; 03759 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03760 *dptr = (*(sptr + wpls10)) | 03761 (*(sptr + wpls9)) | 03762 (*(sptr + wpls8)) | 03763 (*(sptr + wpls7)) | 03764 (*(sptr + wpls6)) | 03765 (*(sptr + wpls5)) | 03766 (*(sptr + wpls4)) | 03767 (*(sptr + wpls3)) | 03768 (*(sptr + wpls2)) | 03769 (*(sptr + wpls)) | 03770 (*sptr) | 03771 (*(sptr - wpls)) | 03772 (*(sptr - wpls2)) | 03773 (*(sptr - wpls3)) | 03774 (*(sptr - wpls4)) | 03775 (*(sptr - wpls5)) | 03776 (*(sptr - wpls6)) | 03777 (*(sptr - wpls7)) | 03778 (*(sptr - wpls8)) | 03779 (*(sptr - wpls9)) | 03780 (*(sptr - wpls10)); 03781 } 03782 } 03783 } 03784 03785 static void 03786 ferode_1_40(l_uint32 *datad, 03787 l_int32 w, 03788 l_int32 h, 03789 l_int32 wpld, 03790 l_uint32 *datas, 03791 l_int32 wpls) 03792 { 03793 l_int32 i; 03794 register l_int32 j, pwpls; 03795 register l_uint32 *sptr, *dptr; 03796 l_int32 wpls2, wpls3, wpls4; 03797 l_int32 wpls5, wpls6, wpls7, wpls8; 03798 l_int32 wpls9, wpls10; 03799 03800 wpls2 = 2 * wpls; 03801 wpls3 = 3 * wpls; 03802 wpls4 = 4 * wpls; 03803 wpls5 = 5 * wpls; 03804 wpls6 = 6 * wpls; 03805 wpls7 = 7 * wpls; 03806 wpls8 = 8 * wpls; 03807 wpls9 = 9 * wpls; 03808 wpls10 = 10 * wpls; 03809 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03810 03811 for (i = 0; i < h; i++) { 03812 sptr = datas + i * wpls; 03813 dptr = datad + i * wpld; 03814 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03815 *dptr = (*(sptr - wpls10)) & 03816 (*(sptr - wpls9)) & 03817 (*(sptr - wpls8)) & 03818 (*(sptr - wpls7)) & 03819 (*(sptr - wpls6)) & 03820 (*(sptr - wpls5)) & 03821 (*(sptr - wpls4)) & 03822 (*(sptr - wpls3)) & 03823 (*(sptr - wpls2)) & 03824 (*(sptr - wpls)) & 03825 (*sptr) & 03826 (*(sptr + wpls)) & 03827 (*(sptr + wpls2)) & 03828 (*(sptr + wpls3)) & 03829 (*(sptr + wpls4)) & 03830 (*(sptr + wpls5)) & 03831 (*(sptr + wpls6)) & 03832 (*(sptr + wpls7)) & 03833 (*(sptr + wpls8)) & 03834 (*(sptr + wpls9)) & 03835 (*(sptr + wpls10)); 03836 } 03837 } 03838 } 03839 03840 static void 03841 fdilate_1_41(l_uint32 *datad, 03842 l_int32 w, 03843 l_int32 h, 03844 l_int32 wpld, 03845 l_uint32 *datas, 03846 l_int32 wpls) 03847 { 03848 l_int32 i; 03849 register l_int32 j, pwpls; 03850 register l_uint32 *sptr, *dptr; 03851 l_int32 wpls2, wpls3, wpls4; 03852 l_int32 wpls5, wpls6, wpls7, wpls8; 03853 l_int32 wpls9, wpls10, wpls11, wpls12; 03854 03855 wpls2 = 2 * wpls; 03856 wpls3 = 3 * wpls; 03857 wpls4 = 4 * wpls; 03858 wpls5 = 5 * wpls; 03859 wpls6 = 6 * wpls; 03860 wpls7 = 7 * wpls; 03861 wpls8 = 8 * wpls; 03862 wpls9 = 9 * wpls; 03863 wpls10 = 10 * wpls; 03864 wpls11 = 11 * wpls; 03865 wpls12 = 12 * wpls; 03866 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03867 03868 for (i = 0; i < h; i++) { 03869 sptr = datas + i * wpls; 03870 dptr = datad + i * wpld; 03871 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03872 *dptr = (*(sptr + wpls12)) | 03873 (*(sptr + wpls11)) | 03874 (*(sptr + wpls10)) | 03875 (*(sptr + wpls9)) | 03876 (*(sptr + wpls8)) | 03877 (*(sptr + wpls7)) | 03878 (*(sptr + wpls6)) | 03879 (*(sptr + wpls5)) | 03880 (*(sptr + wpls4)) | 03881 (*(sptr + wpls3)) | 03882 (*(sptr + wpls2)) | 03883 (*(sptr + wpls)) | 03884 (*sptr) | 03885 (*(sptr - wpls)) | 03886 (*(sptr - wpls2)) | 03887 (*(sptr - wpls3)) | 03888 (*(sptr - wpls4)) | 03889 (*(sptr - wpls5)) | 03890 (*(sptr - wpls6)) | 03891 (*(sptr - wpls7)) | 03892 (*(sptr - wpls8)) | 03893 (*(sptr - wpls9)) | 03894 (*(sptr - wpls10)) | 03895 (*(sptr - wpls11)) | 03896 (*(sptr - wpls12)); 03897 } 03898 } 03899 } 03900 03901 static void 03902 ferode_1_41(l_uint32 *datad, 03903 l_int32 w, 03904 l_int32 h, 03905 l_int32 wpld, 03906 l_uint32 *datas, 03907 l_int32 wpls) 03908 { 03909 l_int32 i; 03910 register l_int32 j, pwpls; 03911 register l_uint32 *sptr, *dptr; 03912 l_int32 wpls2, wpls3, wpls4; 03913 l_int32 wpls5, wpls6, wpls7, wpls8; 03914 l_int32 wpls9, wpls10, wpls11, wpls12; 03915 03916 wpls2 = 2 * wpls; 03917 wpls3 = 3 * wpls; 03918 wpls4 = 4 * wpls; 03919 wpls5 = 5 * wpls; 03920 wpls6 = 6 * wpls; 03921 wpls7 = 7 * wpls; 03922 wpls8 = 8 * wpls; 03923 wpls9 = 9 * wpls; 03924 wpls10 = 10 * wpls; 03925 wpls11 = 11 * wpls; 03926 wpls12 = 12 * wpls; 03927 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03928 03929 for (i = 0; i < h; i++) { 03930 sptr = datas + i * wpls; 03931 dptr = datad + i * wpld; 03932 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03933 *dptr = (*(sptr - wpls12)) & 03934 (*(sptr - wpls11)) & 03935 (*(sptr - wpls10)) & 03936 (*(sptr - wpls9)) & 03937 (*(sptr - wpls8)) & 03938 (*(sptr - wpls7)) & 03939 (*(sptr - wpls6)) & 03940 (*(sptr - wpls5)) & 03941 (*(sptr - wpls4)) & 03942 (*(sptr - wpls3)) & 03943 (*(sptr - wpls2)) & 03944 (*(sptr - wpls)) & 03945 (*sptr) & 03946 (*(sptr + wpls)) & 03947 (*(sptr + wpls2)) & 03948 (*(sptr + wpls3)) & 03949 (*(sptr + wpls4)) & 03950 (*(sptr + wpls5)) & 03951 (*(sptr + wpls6)) & 03952 (*(sptr + wpls7)) & 03953 (*(sptr + wpls8)) & 03954 (*(sptr + wpls9)) & 03955 (*(sptr + wpls10)) & 03956 (*(sptr + wpls11)) & 03957 (*(sptr + wpls12)); 03958 } 03959 } 03960 } 03961 03962 static void 03963 fdilate_1_42(l_uint32 *datad, 03964 l_int32 w, 03965 l_int32 h, 03966 l_int32 wpld, 03967 l_uint32 *datas, 03968 l_int32 wpls) 03969 { 03970 l_int32 i; 03971 register l_int32 j, pwpls; 03972 register l_uint32 *sptr, *dptr; 03973 l_int32 wpls2, wpls3, wpls4; 03974 l_int32 wpls5, wpls6, wpls7, wpls8; 03975 l_int32 wpls9, wpls10, wpls11, wpls12; 03976 l_int32 wpls13, wpls14, wpls15; 03977 03978 wpls2 = 2 * wpls; 03979 wpls3 = 3 * wpls; 03980 wpls4 = 4 * wpls; 03981 wpls5 = 5 * wpls; 03982 wpls6 = 6 * wpls; 03983 wpls7 = 7 * wpls; 03984 wpls8 = 8 * wpls; 03985 wpls9 = 9 * wpls; 03986 wpls10 = 10 * wpls; 03987 wpls11 = 11 * wpls; 03988 wpls12 = 12 * wpls; 03989 wpls13 = 13 * wpls; 03990 wpls14 = 14 * wpls; 03991 wpls15 = 15 * wpls; 03992 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03993 03994 for (i = 0; i < h; i++) { 03995 sptr = datas + i * wpls; 03996 dptr = datad + i * wpld; 03997 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03998 *dptr = (*(sptr + wpls15)) | 03999 (*(sptr + wpls14)) | 04000 (*(sptr + wpls13)) | 04001 (*(sptr + wpls12)) | 04002 (*(sptr + wpls11)) | 04003 (*(sptr + wpls10)) | 04004 (*(sptr + wpls9)) | 04005 (*(sptr + wpls8)) | 04006 (*(sptr + wpls7)) | 04007 (*(sptr + wpls6)) | 04008 (*(sptr + wpls5)) | 04009 (*(sptr + wpls4)) | 04010 (*(sptr + wpls3)) | 04011 (*(sptr + wpls2)) | 04012 (*(sptr + wpls)) | 04013 (*sptr) | 04014 (*(sptr - wpls)) | 04015 (*(sptr - wpls2)) | 04016 (*(sptr - wpls3)) | 04017 (*(sptr - wpls4)) | 04018 (*(sptr - wpls5)) | 04019 (*(sptr - wpls6)) | 04020 (*(sptr - wpls7)) | 04021 (*(sptr - wpls8)) | 04022 (*(sptr - wpls9)) | 04023 (*(sptr - wpls10)) | 04024 (*(sptr - wpls11)) | 04025 (*(sptr - wpls12)) | 04026 (*(sptr - wpls13)) | 04027 (*(sptr - wpls14)); 04028 } 04029 } 04030 } 04031 04032 static void 04033 ferode_1_42(l_uint32 *datad, 04034 l_int32 w, 04035 l_int32 h, 04036 l_int32 wpld, 04037 l_uint32 *datas, 04038 l_int32 wpls) 04039 { 04040 l_int32 i; 04041 register l_int32 j, pwpls; 04042 register l_uint32 *sptr, *dptr; 04043 l_int32 wpls2, wpls3, wpls4; 04044 l_int32 wpls5, wpls6, wpls7, wpls8; 04045 l_int32 wpls9, wpls10, wpls11, wpls12; 04046 l_int32 wpls13, wpls14, wpls15; 04047 04048 wpls2 = 2 * wpls; 04049 wpls3 = 3 * wpls; 04050 wpls4 = 4 * wpls; 04051 wpls5 = 5 * wpls; 04052 wpls6 = 6 * wpls; 04053 wpls7 = 7 * wpls; 04054 wpls8 = 8 * wpls; 04055 wpls9 = 9 * wpls; 04056 wpls10 = 10 * wpls; 04057 wpls11 = 11 * wpls; 04058 wpls12 = 12 * wpls; 04059 wpls13 = 13 * wpls; 04060 wpls14 = 14 * wpls; 04061 wpls15 = 15 * wpls; 04062 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04063 04064 for (i = 0; i < h; i++) { 04065 sptr = datas + i * wpls; 04066 dptr = datad + i * wpld; 04067 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04068 *dptr = (*(sptr - wpls15)) & 04069 (*(sptr - wpls14)) & 04070 (*(sptr - wpls13)) & 04071 (*(sptr - wpls12)) & 04072 (*(sptr - wpls11)) & 04073 (*(sptr - wpls10)) & 04074 (*(sptr - wpls9)) & 04075 (*(sptr - wpls8)) & 04076 (*(sptr - wpls7)) & 04077 (*(sptr - wpls6)) & 04078 (*(sptr - wpls5)) & 04079 (*(sptr - wpls4)) & 04080 (*(sptr - wpls3)) & 04081 (*(sptr - wpls2)) & 04082 (*(sptr - wpls)) & 04083 (*sptr) & 04084 (*(sptr + wpls)) & 04085 (*(sptr + wpls2)) & 04086 (*(sptr + wpls3)) & 04087 (*(sptr + wpls4)) & 04088 (*(sptr + wpls5)) & 04089 (*(sptr + wpls6)) & 04090 (*(sptr + wpls7)) & 04091 (*(sptr + wpls8)) & 04092 (*(sptr + wpls9)) & 04093 (*(sptr + wpls10)) & 04094 (*(sptr + wpls11)) & 04095 (*(sptr + wpls12)) & 04096 (*(sptr + wpls13)) & 04097 (*(sptr + wpls14)); 04098 } 04099 } 04100 } 04101 04102 static void 04103 fdilate_1_43(l_uint32 *datad, 04104 l_int32 w, 04105 l_int32 h, 04106 l_int32 wpld, 04107 l_uint32 *datas, 04108 l_int32 wpls) 04109 { 04110 l_int32 i; 04111 register l_int32 j, pwpls; 04112 register l_uint32 *sptr, *dptr; 04113 l_int32 wpls2, wpls3, wpls4; 04114 l_int32 wpls5, wpls6, wpls7, wpls8; 04115 l_int32 wpls9, wpls10, wpls11, wpls12; 04116 l_int32 wpls13, wpls14, wpls15; 04117 04118 wpls2 = 2 * wpls; 04119 wpls3 = 3 * wpls; 04120 wpls4 = 4 * wpls; 04121 wpls5 = 5 * wpls; 04122 wpls6 = 6 * wpls; 04123 wpls7 = 7 * wpls; 04124 wpls8 = 8 * wpls; 04125 wpls9 = 9 * wpls; 04126 wpls10 = 10 * wpls; 04127 wpls11 = 11 * wpls; 04128 wpls12 = 12 * wpls; 04129 wpls13 = 13 * wpls; 04130 wpls14 = 14 * wpls; 04131 wpls15 = 15 * wpls; 04132 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04133 04134 for (i = 0; i < h; i++) { 04135 sptr = datas + i * wpls; 04136 dptr = datad + i * wpld; 04137 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04138 *dptr = (*(sptr + wpls15)) | 04139 (*(sptr + wpls14)) | 04140 (*(sptr + wpls13)) | 04141 (*(sptr + wpls12)) | 04142 (*(sptr + wpls11)) | 04143 (*(sptr + wpls10)) | 04144 (*(sptr + wpls9)) | 04145 (*(sptr + wpls8)) | 04146 (*(sptr + wpls7)) | 04147 (*(sptr + wpls6)) | 04148 (*(sptr + wpls5)) | 04149 (*(sptr + wpls4)) | 04150 (*(sptr + wpls3)) | 04151 (*(sptr + wpls2)) | 04152 (*(sptr + wpls)) | 04153 (*sptr) | 04154 (*(sptr - wpls)) | 04155 (*(sptr - wpls2)) | 04156 (*(sptr - wpls3)) | 04157 (*(sptr - wpls4)) | 04158 (*(sptr - wpls5)) | 04159 (*(sptr - wpls6)) | 04160 (*(sptr - wpls7)) | 04161 (*(sptr - wpls8)) | 04162 (*(sptr - wpls9)) | 04163 (*(sptr - wpls10)) | 04164 (*(sptr - wpls11)) | 04165 (*(sptr - wpls12)) | 04166 (*(sptr - wpls13)) | 04167 (*(sptr - wpls14)) | 04168 (*(sptr - wpls15)); 04169 } 04170 } 04171 } 04172 04173 static void 04174 ferode_1_43(l_uint32 *datad, 04175 l_int32 w, 04176 l_int32 h, 04177 l_int32 wpld, 04178 l_uint32 *datas, 04179 l_int32 wpls) 04180 { 04181 l_int32 i; 04182 register l_int32 j, pwpls; 04183 register l_uint32 *sptr, *dptr; 04184 l_int32 wpls2, wpls3, wpls4; 04185 l_int32 wpls5, wpls6, wpls7, wpls8; 04186 l_int32 wpls9, wpls10, wpls11, wpls12; 04187 l_int32 wpls13, wpls14, wpls15; 04188 04189 wpls2 = 2 * wpls; 04190 wpls3 = 3 * wpls; 04191 wpls4 = 4 * wpls; 04192 wpls5 = 5 * wpls; 04193 wpls6 = 6 * wpls; 04194 wpls7 = 7 * wpls; 04195 wpls8 = 8 * wpls; 04196 wpls9 = 9 * wpls; 04197 wpls10 = 10 * wpls; 04198 wpls11 = 11 * wpls; 04199 wpls12 = 12 * wpls; 04200 wpls13 = 13 * wpls; 04201 wpls14 = 14 * wpls; 04202 wpls15 = 15 * wpls; 04203 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04204 04205 for (i = 0; i < h; i++) { 04206 sptr = datas + i * wpls; 04207 dptr = datad + i * wpld; 04208 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04209 *dptr = (*(sptr - wpls15)) & 04210 (*(sptr - wpls14)) & 04211 (*(sptr - wpls13)) & 04212 (*(sptr - wpls12)) & 04213 (*(sptr - wpls11)) & 04214 (*(sptr - wpls10)) & 04215 (*(sptr - wpls9)) & 04216 (*(sptr - wpls8)) & 04217 (*(sptr - wpls7)) & 04218 (*(sptr - wpls6)) & 04219 (*(sptr - wpls5)) & 04220 (*(sptr - wpls4)) & 04221 (*(sptr - wpls3)) & 04222 (*(sptr - wpls2)) & 04223 (*(sptr - wpls)) & 04224 (*sptr) & 04225 (*(sptr + wpls)) & 04226 (*(sptr + wpls2)) & 04227 (*(sptr + wpls3)) & 04228 (*(sptr + wpls4)) & 04229 (*(sptr + wpls5)) & 04230 (*(sptr + wpls6)) & 04231 (*(sptr + wpls7)) & 04232 (*(sptr + wpls8)) & 04233 (*(sptr + wpls9)) & 04234 (*(sptr + wpls10)) & 04235 (*(sptr + wpls11)) & 04236 (*(sptr + wpls12)) & 04237 (*(sptr + wpls13)) & 04238 (*(sptr + wpls14)) & 04239 (*(sptr + wpls15)); 04240 } 04241 } 04242 } 04243 04244 static void 04245 fdilate_1_44(l_uint32 *datad, 04246 l_int32 w, 04247 l_int32 h, 04248 l_int32 wpld, 04249 l_uint32 *datas, 04250 l_int32 wpls) 04251 { 04252 l_int32 i; 04253 register l_int32 j, pwpls; 04254 register l_uint32 *sptr, *dptr; 04255 l_int32 wpls2, wpls3, wpls4; 04256 l_int32 wpls5, wpls6, wpls7, wpls8; 04257 l_int32 wpls9, wpls10, wpls11, wpls12; 04258 l_int32 wpls13, wpls14, wpls15, wpls16; 04259 l_int32 wpls17; 04260 04261 wpls2 = 2 * wpls; 04262 wpls3 = 3 * wpls; 04263 wpls4 = 4 * wpls; 04264 wpls5 = 5 * wpls; 04265 wpls6 = 6 * wpls; 04266 wpls7 = 7 * wpls; 04267 wpls8 = 8 * wpls; 04268 wpls9 = 9 * wpls; 04269 wpls10 = 10 * wpls; 04270 wpls11 = 11 * wpls; 04271 wpls12 = 12 * wpls; 04272 wpls13 = 13 * wpls; 04273 wpls14 = 14 * wpls; 04274 wpls15 = 15 * wpls; 04275 wpls16 = 16 * wpls; 04276 wpls17 = 17 * wpls; 04277 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04278 04279 for (i = 0; i < h; i++) { 04280 sptr = datas + i * wpls; 04281 dptr = datad + i * wpld; 04282 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04283 *dptr = (*(sptr + wpls17)) | 04284 (*(sptr + wpls16)) | 04285 (*(sptr + wpls15)) | 04286 (*(sptr + wpls14)) | 04287 (*(sptr + wpls13)) | 04288 (*(sptr + wpls12)) | 04289 (*(sptr + wpls11)) | 04290 (*(sptr + wpls10)) | 04291 (*(sptr + wpls9)) | 04292 (*(sptr + wpls8)) | 04293 (*(sptr + wpls7)) | 04294 (*(sptr + wpls6)) | 04295 (*(sptr + wpls5)) | 04296 (*(sptr + wpls4)) | 04297 (*(sptr + wpls3)) | 04298 (*(sptr + wpls2)) | 04299 (*(sptr + wpls)) | 04300 (*sptr) | 04301 (*(sptr - wpls)) | 04302 (*(sptr - wpls2)) | 04303 (*(sptr - wpls3)) | 04304 (*(sptr - wpls4)) | 04305 (*(sptr - wpls5)) | 04306 (*(sptr - wpls6)) | 04307 (*(sptr - wpls7)) | 04308 (*(sptr - wpls8)) | 04309 (*(sptr - wpls9)) | 04310 (*(sptr - wpls10)) | 04311 (*(sptr - wpls11)) | 04312 (*(sptr - wpls12)) | 04313 (*(sptr - wpls13)) | 04314 (*(sptr - wpls14)) | 04315 (*(sptr - wpls15)) | 04316 (*(sptr - wpls16)) | 04317 (*(sptr - wpls17)); 04318 } 04319 } 04320 } 04321 04322 static void 04323 ferode_1_44(l_uint32 *datad, 04324 l_int32 w, 04325 l_int32 h, 04326 l_int32 wpld, 04327 l_uint32 *datas, 04328 l_int32 wpls) 04329 { 04330 l_int32 i; 04331 register l_int32 j, pwpls; 04332 register l_uint32 *sptr, *dptr; 04333 l_int32 wpls2, wpls3, wpls4; 04334 l_int32 wpls5, wpls6, wpls7, wpls8; 04335 l_int32 wpls9, wpls10, wpls11, wpls12; 04336 l_int32 wpls13, wpls14, wpls15, wpls16; 04337 l_int32 wpls17; 04338 04339 wpls2 = 2 * wpls; 04340 wpls3 = 3 * wpls; 04341 wpls4 = 4 * wpls; 04342 wpls5 = 5 * wpls; 04343 wpls6 = 6 * wpls; 04344 wpls7 = 7 * wpls; 04345 wpls8 = 8 * wpls; 04346 wpls9 = 9 * wpls; 04347 wpls10 = 10 * wpls; 04348 wpls11 = 11 * wpls; 04349 wpls12 = 12 * wpls; 04350 wpls13 = 13 * wpls; 04351 wpls14 = 14 * wpls; 04352 wpls15 = 15 * wpls; 04353 wpls16 = 16 * wpls; 04354 wpls17 = 17 * wpls; 04355 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04356 04357 for (i = 0; i < h; i++) { 04358 sptr = datas + i * wpls; 04359 dptr = datad + i * wpld; 04360 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04361 *dptr = (*(sptr - wpls17)) & 04362 (*(sptr - wpls16)) & 04363 (*(sptr - wpls15)) & 04364 (*(sptr - wpls14)) & 04365 (*(sptr - wpls13)) & 04366 (*(sptr - wpls12)) & 04367 (*(sptr - wpls11)) & 04368 (*(sptr - wpls10)) & 04369 (*(sptr - wpls9)) & 04370 (*(sptr - wpls8)) & 04371 (*(sptr - wpls7)) & 04372 (*(sptr - wpls6)) & 04373 (*(sptr - wpls5)) & 04374 (*(sptr - wpls4)) & 04375 (*(sptr - wpls3)) & 04376 (*(sptr - wpls2)) & 04377 (*(sptr - wpls)) & 04378 (*sptr) & 04379 (*(sptr + wpls)) & 04380 (*(sptr + wpls2)) & 04381 (*(sptr + wpls3)) & 04382 (*(sptr + wpls4)) & 04383 (*(sptr + wpls5)) & 04384 (*(sptr + wpls6)) & 04385 (*(sptr + wpls7)) & 04386 (*(sptr + wpls8)) & 04387 (*(sptr + wpls9)) & 04388 (*(sptr + wpls10)) & 04389 (*(sptr + wpls11)) & 04390 (*(sptr + wpls12)) & 04391 (*(sptr + wpls13)) & 04392 (*(sptr + wpls14)) & 04393 (*(sptr + wpls15)) & 04394 (*(sptr + wpls16)) & 04395 (*(sptr + wpls17)); 04396 } 04397 } 04398 } 04399 04400 static void 04401 fdilate_1_45(l_uint32 *datad, 04402 l_int32 w, 04403 l_int32 h, 04404 l_int32 wpld, 04405 l_uint32 *datas, 04406 l_int32 wpls) 04407 { 04408 l_int32 i; 04409 register l_int32 j, pwpls; 04410 register l_uint32 *sptr, *dptr; 04411 l_int32 wpls2, wpls3, wpls4; 04412 l_int32 wpls5, wpls6, wpls7, wpls8; 04413 l_int32 wpls9, wpls10, wpls11, wpls12; 04414 l_int32 wpls13, wpls14, wpls15, wpls16; 04415 l_int32 wpls17, wpls18, wpls19, wpls20; 04416 04417 wpls2 = 2 * wpls; 04418 wpls3 = 3 * wpls; 04419 wpls4 = 4 * wpls; 04420 wpls5 = 5 * wpls; 04421 wpls6 = 6 * wpls; 04422 wpls7 = 7 * wpls; 04423 wpls8 = 8 * wpls; 04424 wpls9 = 9 * wpls; 04425 wpls10 = 10 * wpls; 04426 wpls11 = 11 * wpls; 04427 wpls12 = 12 * wpls; 04428 wpls13 = 13 * wpls; 04429 wpls14 = 14 * wpls; 04430 wpls15 = 15 * wpls; 04431 wpls16 = 16 * wpls; 04432 wpls17 = 17 * wpls; 04433 wpls18 = 18 * wpls; 04434 wpls19 = 19 * wpls; 04435 wpls20 = 20 * wpls; 04436 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04437 04438 for (i = 0; i < h; i++) { 04439 sptr = datas + i * wpls; 04440 dptr = datad + i * wpld; 04441 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04442 *dptr = (*(sptr + wpls20)) | 04443 (*(sptr + wpls19)) | 04444 (*(sptr + wpls18)) | 04445 (*(sptr + wpls17)) | 04446 (*(sptr + wpls16)) | 04447 (*(sptr + wpls15)) | 04448 (*(sptr + wpls14)) | 04449 (*(sptr + wpls13)) | 04450 (*(sptr + wpls12)) | 04451 (*(sptr + wpls11)) | 04452 (*(sptr + wpls10)) | 04453 (*(sptr + wpls9)) | 04454 (*(sptr + wpls8)) | 04455 (*(sptr + wpls7)) | 04456 (*(sptr + wpls6)) | 04457 (*(sptr + wpls5)) | 04458 (*(sptr + wpls4)) | 04459 (*(sptr + wpls3)) | 04460 (*(sptr + wpls2)) | 04461 (*(sptr + wpls)) | 04462 (*sptr) | 04463 (*(sptr - wpls)) | 04464 (*(sptr - wpls2)) | 04465 (*(sptr - wpls3)) | 04466 (*(sptr - wpls4)) | 04467 (*(sptr - wpls5)) | 04468 (*(sptr - wpls6)) | 04469 (*(sptr - wpls7)) | 04470 (*(sptr - wpls8)) | 04471 (*(sptr - wpls9)) | 04472 (*(sptr - wpls10)) | 04473 (*(sptr - wpls11)) | 04474 (*(sptr - wpls12)) | 04475 (*(sptr - wpls13)) | 04476 (*(sptr - wpls14)) | 04477 (*(sptr - wpls15)) | 04478 (*(sptr - wpls16)) | 04479 (*(sptr - wpls17)) | 04480 (*(sptr - wpls18)) | 04481 (*(sptr - wpls19)); 04482 } 04483 } 04484 } 04485 04486 static void 04487 ferode_1_45(l_uint32 *datad, 04488 l_int32 w, 04489 l_int32 h, 04490 l_int32 wpld, 04491 l_uint32 *datas, 04492 l_int32 wpls) 04493 { 04494 l_int32 i; 04495 register l_int32 j, pwpls; 04496 register l_uint32 *sptr, *dptr; 04497 l_int32 wpls2, wpls3, wpls4; 04498 l_int32 wpls5, wpls6, wpls7, wpls8; 04499 l_int32 wpls9, wpls10, wpls11, wpls12; 04500 l_int32 wpls13, wpls14, wpls15, wpls16; 04501 l_int32 wpls17, wpls18, wpls19, wpls20; 04502 04503 wpls2 = 2 * wpls; 04504 wpls3 = 3 * wpls; 04505 wpls4 = 4 * wpls; 04506 wpls5 = 5 * wpls; 04507 wpls6 = 6 * wpls; 04508 wpls7 = 7 * wpls; 04509 wpls8 = 8 * wpls; 04510 wpls9 = 9 * wpls; 04511 wpls10 = 10 * wpls; 04512 wpls11 = 11 * wpls; 04513 wpls12 = 12 * wpls; 04514 wpls13 = 13 * wpls; 04515 wpls14 = 14 * wpls; 04516 wpls15 = 15 * wpls; 04517 wpls16 = 16 * wpls; 04518 wpls17 = 17 * wpls; 04519 wpls18 = 18 * wpls; 04520 wpls19 = 19 * wpls; 04521 wpls20 = 20 * wpls; 04522 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04523 04524 for (i = 0; i < h; i++) { 04525 sptr = datas + i * wpls; 04526 dptr = datad + i * wpld; 04527 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04528 *dptr = (*(sptr - wpls20)) & 04529 (*(sptr - wpls19)) & 04530 (*(sptr - wpls18)) & 04531 (*(sptr - wpls17)) & 04532 (*(sptr - wpls16)) & 04533 (*(sptr - wpls15)) & 04534 (*(sptr - wpls14)) & 04535 (*(sptr - wpls13)) & 04536 (*(sptr - wpls12)) & 04537 (*(sptr - wpls11)) & 04538 (*(sptr - wpls10)) & 04539 (*(sptr - wpls9)) & 04540 (*(sptr - wpls8)) & 04541 (*(sptr - wpls7)) & 04542 (*(sptr - wpls6)) & 04543 (*(sptr - wpls5)) & 04544 (*(sptr - wpls4)) & 04545 (*(sptr - wpls3)) & 04546 (*(sptr - wpls2)) & 04547 (*(sptr - wpls)) & 04548 (*sptr) & 04549 (*(sptr + wpls)) & 04550 (*(sptr + wpls2)) & 04551 (*(sptr + wpls3)) & 04552 (*(sptr + wpls4)) & 04553 (*(sptr + wpls5)) & 04554 (*(sptr + wpls6)) & 04555 (*(sptr + wpls7)) & 04556 (*(sptr + wpls8)) & 04557 (*(sptr + wpls9)) & 04558 (*(sptr + wpls10)) & 04559 (*(sptr + wpls11)) & 04560 (*(sptr + wpls12)) & 04561 (*(sptr + wpls13)) & 04562 (*(sptr + wpls14)) & 04563 (*(sptr + wpls15)) & 04564 (*(sptr + wpls16)) & 04565 (*(sptr + wpls17)) & 04566 (*(sptr + wpls18)) & 04567 (*(sptr + wpls19)); 04568 } 04569 } 04570 } 04571 04572 static void 04573 fdilate_1_46(l_uint32 *datad, 04574 l_int32 w, 04575 l_int32 h, 04576 l_int32 wpld, 04577 l_uint32 *datas, 04578 l_int32 wpls) 04579 { 04580 l_int32 i; 04581 register l_int32 j, pwpls; 04582 register l_uint32 *sptr, *dptr; 04583 l_int32 wpls2, wpls3, wpls4; 04584 l_int32 wpls5, wpls6, wpls7, wpls8; 04585 l_int32 wpls9, wpls10, wpls11, wpls12; 04586 l_int32 wpls13, wpls14, wpls15, wpls16; 04587 l_int32 wpls17, wpls18, wpls19, wpls20; 04588 04589 wpls2 = 2 * wpls; 04590 wpls3 = 3 * wpls; 04591 wpls4 = 4 * wpls; 04592 wpls5 = 5 * wpls; 04593 wpls6 = 6 * wpls; 04594 wpls7 = 7 * wpls; 04595 wpls8 = 8 * wpls; 04596 wpls9 = 9 * wpls; 04597 wpls10 = 10 * wpls; 04598 wpls11 = 11 * wpls; 04599 wpls12 = 12 * wpls; 04600 wpls13 = 13 * wpls; 04601 wpls14 = 14 * wpls; 04602 wpls15 = 15 * wpls; 04603 wpls16 = 16 * wpls; 04604 wpls17 = 17 * wpls; 04605 wpls18 = 18 * wpls; 04606 wpls19 = 19 * wpls; 04607 wpls20 = 20 * wpls; 04608 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04609 04610 for (i = 0; i < h; i++) { 04611 sptr = datas + i * wpls; 04612 dptr = datad + i * wpld; 04613 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04614 *dptr = (*(sptr + wpls20)) | 04615 (*(sptr + wpls19)) | 04616 (*(sptr + wpls18)) | 04617 (*(sptr + wpls17)) | 04618 (*(sptr + wpls16)) | 04619 (*(sptr + wpls15)) | 04620 (*(sptr + wpls14)) | 04621 (*(sptr + wpls13)) | 04622 (*(sptr + wpls12)) | 04623 (*(sptr + wpls11)) | 04624 (*(sptr + wpls10)) | 04625 (*(sptr + wpls9)) | 04626 (*(sptr + wpls8)) | 04627 (*(sptr + wpls7)) | 04628 (*(sptr + wpls6)) | 04629 (*(sptr + wpls5)) | 04630 (*(sptr + wpls4)) | 04631 (*(sptr + wpls3)) | 04632 (*(sptr + wpls2)) | 04633 (*(sptr + wpls)) | 04634 (*sptr) | 04635 (*(sptr - wpls)) | 04636 (*(sptr - wpls2)) | 04637 (*(sptr - wpls3)) | 04638 (*(sptr - wpls4)) | 04639 (*(sptr - wpls5)) | 04640 (*(sptr - wpls6)) | 04641 (*(sptr - wpls7)) | 04642 (*(sptr - wpls8)) | 04643 (*(sptr - wpls9)) | 04644 (*(sptr - wpls10)) | 04645 (*(sptr - wpls11)) | 04646 (*(sptr - wpls12)) | 04647 (*(sptr - wpls13)) | 04648 (*(sptr - wpls14)) | 04649 (*(sptr - wpls15)) | 04650 (*(sptr - wpls16)) | 04651 (*(sptr - wpls17)) | 04652 (*(sptr - wpls18)) | 04653 (*(sptr - wpls19)) | 04654 (*(sptr - wpls20)); 04655 } 04656 } 04657 } 04658 04659 static void 04660 ferode_1_46(l_uint32 *datad, 04661 l_int32 w, 04662 l_int32 h, 04663 l_int32 wpld, 04664 l_uint32 *datas, 04665 l_int32 wpls) 04666 { 04667 l_int32 i; 04668 register l_int32 j, pwpls; 04669 register l_uint32 *sptr, *dptr; 04670 l_int32 wpls2, wpls3, wpls4; 04671 l_int32 wpls5, wpls6, wpls7, wpls8; 04672 l_int32 wpls9, wpls10, wpls11, wpls12; 04673 l_int32 wpls13, wpls14, wpls15, wpls16; 04674 l_int32 wpls17, wpls18, wpls19, wpls20; 04675 04676 wpls2 = 2 * wpls; 04677 wpls3 = 3 * wpls; 04678 wpls4 = 4 * wpls; 04679 wpls5 = 5 * wpls; 04680 wpls6 = 6 * wpls; 04681 wpls7 = 7 * wpls; 04682 wpls8 = 8 * wpls; 04683 wpls9 = 9 * wpls; 04684 wpls10 = 10 * wpls; 04685 wpls11 = 11 * wpls; 04686 wpls12 = 12 * wpls; 04687 wpls13 = 13 * wpls; 04688 wpls14 = 14 * wpls; 04689 wpls15 = 15 * wpls; 04690 wpls16 = 16 * wpls; 04691 wpls17 = 17 * wpls; 04692 wpls18 = 18 * wpls; 04693 wpls19 = 19 * wpls; 04694 wpls20 = 20 * wpls; 04695 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04696 04697 for (i = 0; i < h; i++) { 04698 sptr = datas + i * wpls; 04699 dptr = datad + i * wpld; 04700 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04701 *dptr = (*(sptr - wpls20)) & 04702 (*(sptr - wpls19)) & 04703 (*(sptr - wpls18)) & 04704 (*(sptr - wpls17)) & 04705 (*(sptr - wpls16)) & 04706 (*(sptr - wpls15)) & 04707 (*(sptr - wpls14)) & 04708 (*(sptr - wpls13)) & 04709 (*(sptr - wpls12)) & 04710 (*(sptr - wpls11)) & 04711 (*(sptr - wpls10)) & 04712 (*(sptr - wpls9)) & 04713 (*(sptr - wpls8)) & 04714 (*(sptr - wpls7)) & 04715 (*(sptr - wpls6)) & 04716 (*(sptr - wpls5)) & 04717 (*(sptr - wpls4)) & 04718 (*(sptr - wpls3)) & 04719 (*(sptr - wpls2)) & 04720 (*(sptr - wpls)) & 04721 (*sptr) & 04722 (*(sptr + wpls)) & 04723 (*(sptr + wpls2)) & 04724 (*(sptr + wpls3)) & 04725 (*(sptr + wpls4)) & 04726 (*(sptr + wpls5)) & 04727 (*(sptr + wpls6)) & 04728 (*(sptr + wpls7)) & 04729 (*(sptr + wpls8)) & 04730 (*(sptr + wpls9)) & 04731 (*(sptr + wpls10)) & 04732 (*(sptr + wpls11)) & 04733 (*(sptr + wpls12)) & 04734 (*(sptr + wpls13)) & 04735 (*(sptr + wpls14)) & 04736 (*(sptr + wpls15)) & 04737 (*(sptr + wpls16)) & 04738 (*(sptr + wpls17)) & 04739 (*(sptr + wpls18)) & 04740 (*(sptr + wpls19)) & 04741 (*(sptr + wpls20)); 04742 } 04743 } 04744 } 04745 04746 static void 04747 fdilate_1_47(l_uint32 *datad, 04748 l_int32 w, 04749 l_int32 h, 04750 l_int32 wpld, 04751 l_uint32 *datas, 04752 l_int32 wpls) 04753 { 04754 l_int32 i; 04755 register l_int32 j, pwpls; 04756 register l_uint32 *sptr, *dptr; 04757 l_int32 wpls2, wpls3, wpls4; 04758 l_int32 wpls5, wpls6, wpls7, wpls8; 04759 l_int32 wpls9, wpls10, wpls11, wpls12; 04760 l_int32 wpls13, wpls14, wpls15, wpls16; 04761 l_int32 wpls17, wpls18, wpls19, wpls20; 04762 l_int32 wpls21, wpls22; 04763 04764 wpls2 = 2 * wpls; 04765 wpls3 = 3 * wpls; 04766 wpls4 = 4 * wpls; 04767 wpls5 = 5 * wpls; 04768 wpls6 = 6 * wpls; 04769 wpls7 = 7 * wpls; 04770 wpls8 = 8 * wpls; 04771 wpls9 = 9 * wpls; 04772 wpls10 = 10 * wpls; 04773 wpls11 = 11 * wpls; 04774 wpls12 = 12 * wpls; 04775 wpls13 = 13 * wpls; 04776 wpls14 = 14 * wpls; 04777 wpls15 = 15 * wpls; 04778 wpls16 = 16 * wpls; 04779 wpls17 = 17 * wpls; 04780 wpls18 = 18 * wpls; 04781 wpls19 = 19 * wpls; 04782 wpls20 = 20 * wpls; 04783 wpls21 = 21 * wpls; 04784 wpls22 = 22 * wpls; 04785 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04786 04787 for (i = 0; i < h; i++) { 04788 sptr = datas + i * wpls; 04789 dptr = datad + i * wpld; 04790 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04791 *dptr = (*(sptr + wpls22)) | 04792 (*(sptr + wpls21)) | 04793 (*(sptr + wpls20)) | 04794 (*(sptr + wpls19)) | 04795 (*(sptr + wpls18)) | 04796 (*(sptr + wpls17)) | 04797 (*(sptr + wpls16)) | 04798 (*(sptr + wpls15)) | 04799 (*(sptr + wpls14)) | 04800 (*(sptr + wpls13)) | 04801 (*(sptr + wpls12)) | 04802 (*(sptr + wpls11)) | 04803 (*(sptr + wpls10)) | 04804 (*(sptr + wpls9)) | 04805 (*(sptr + wpls8)) | 04806 (*(sptr + wpls7)) | 04807 (*(sptr + wpls6)) | 04808 (*(sptr + wpls5)) | 04809 (*(sptr + wpls4)) | 04810 (*(sptr + wpls3)) | 04811 (*(sptr + wpls2)) | 04812 (*(sptr + wpls)) | 04813 (*sptr) | 04814 (*(sptr - wpls)) | 04815 (*(sptr - wpls2)) | 04816 (*(sptr - wpls3)) | 04817 (*(sptr - wpls4)) | 04818 (*(sptr - wpls5)) | 04819 (*(sptr - wpls6)) | 04820 (*(sptr - wpls7)) | 04821 (*(sptr - wpls8)) | 04822 (*(sptr - wpls9)) | 04823 (*(sptr - wpls10)) | 04824 (*(sptr - wpls11)) | 04825 (*(sptr - wpls12)) | 04826 (*(sptr - wpls13)) | 04827 (*(sptr - wpls14)) | 04828 (*(sptr - wpls15)) | 04829 (*(sptr - wpls16)) | 04830 (*(sptr - wpls17)) | 04831 (*(sptr - wpls18)) | 04832 (*(sptr - wpls19)) | 04833 (*(sptr - wpls20)) | 04834 (*(sptr - wpls21)) | 04835 (*(sptr - wpls22)); 04836 } 04837 } 04838 } 04839 04840 static void 04841 ferode_1_47(l_uint32 *datad, 04842 l_int32 w, 04843 l_int32 h, 04844 l_int32 wpld, 04845 l_uint32 *datas, 04846 l_int32 wpls) 04847 { 04848 l_int32 i; 04849 register l_int32 j, pwpls; 04850 register l_uint32 *sptr, *dptr; 04851 l_int32 wpls2, wpls3, wpls4; 04852 l_int32 wpls5, wpls6, wpls7, wpls8; 04853 l_int32 wpls9, wpls10, wpls11, wpls12; 04854 l_int32 wpls13, wpls14, wpls15, wpls16; 04855 l_int32 wpls17, wpls18, wpls19, wpls20; 04856 l_int32 wpls21, wpls22; 04857 04858 wpls2 = 2 * wpls; 04859 wpls3 = 3 * wpls; 04860 wpls4 = 4 * wpls; 04861 wpls5 = 5 * wpls; 04862 wpls6 = 6 * wpls; 04863 wpls7 = 7 * wpls; 04864 wpls8 = 8 * wpls; 04865 wpls9 = 9 * wpls; 04866 wpls10 = 10 * wpls; 04867 wpls11 = 11 * wpls; 04868 wpls12 = 12 * wpls; 04869 wpls13 = 13 * wpls; 04870 wpls14 = 14 * wpls; 04871 wpls15 = 15 * wpls; 04872 wpls16 = 16 * wpls; 04873 wpls17 = 17 * wpls; 04874 wpls18 = 18 * wpls; 04875 wpls19 = 19 * wpls; 04876 wpls20 = 20 * wpls; 04877 wpls21 = 21 * wpls; 04878 wpls22 = 22 * wpls; 04879 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04880 04881 for (i = 0; i < h; i++) { 04882 sptr = datas + i * wpls; 04883 dptr = datad + i * wpld; 04884 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04885 *dptr = (*(sptr - wpls22)) & 04886 (*(sptr - wpls21)) & 04887 (*(sptr - wpls20)) & 04888 (*(sptr - wpls19)) & 04889 (*(sptr - wpls18)) & 04890 (*(sptr - wpls17)) & 04891 (*(sptr - wpls16)) & 04892 (*(sptr - wpls15)) & 04893 (*(sptr - wpls14)) & 04894 (*(sptr - wpls13)) & 04895 (*(sptr - wpls12)) & 04896 (*(sptr - wpls11)) & 04897 (*(sptr - wpls10)) & 04898 (*(sptr - wpls9)) & 04899 (*(sptr - wpls8)) & 04900 (*(sptr - wpls7)) & 04901 (*(sptr - wpls6)) & 04902 (*(sptr - wpls5)) & 04903 (*(sptr - wpls4)) & 04904 (*(sptr - wpls3)) & 04905 (*(sptr - wpls2)) & 04906 (*(sptr - wpls)) & 04907 (*sptr) & 04908 (*(sptr + wpls)) & 04909 (*(sptr + wpls2)) & 04910 (*(sptr + wpls3)) & 04911 (*(sptr + wpls4)) & 04912 (*(sptr + wpls5)) & 04913 (*(sptr + wpls6)) & 04914 (*(sptr + wpls7)) & 04915 (*(sptr + wpls8)) & 04916 (*(sptr + wpls9)) & 04917 (*(sptr + wpls10)) & 04918 (*(sptr + wpls11)) & 04919 (*(sptr + wpls12)) & 04920 (*(sptr + wpls13)) & 04921 (*(sptr + wpls14)) & 04922 (*(sptr + wpls15)) & 04923 (*(sptr + wpls16)) & 04924 (*(sptr + wpls17)) & 04925 (*(sptr + wpls18)) & 04926 (*(sptr + wpls19)) & 04927 (*(sptr + wpls20)) & 04928 (*(sptr + wpls21)) & 04929 (*(sptr + wpls22)); 04930 } 04931 } 04932 } 04933 04934 static void 04935 fdilate_1_48(l_uint32 *datad, 04936 l_int32 w, 04937 l_int32 h, 04938 l_int32 wpld, 04939 l_uint32 *datas, 04940 l_int32 wpls) 04941 { 04942 l_int32 i; 04943 register l_int32 j, pwpls; 04944 register l_uint32 *sptr, *dptr; 04945 l_int32 wpls2, wpls3, wpls4; 04946 l_int32 wpls5, wpls6, wpls7, wpls8; 04947 l_int32 wpls9, wpls10, wpls11, wpls12; 04948 l_int32 wpls13, wpls14, wpls15, wpls16; 04949 l_int32 wpls17, wpls18, wpls19, wpls20; 04950 l_int32 wpls21, wpls22, wpls23, wpls24; 04951 l_int32 wpls25; 04952 04953 wpls2 = 2 * wpls; 04954 wpls3 = 3 * wpls; 04955 wpls4 = 4 * wpls; 04956 wpls5 = 5 * wpls; 04957 wpls6 = 6 * wpls; 04958 wpls7 = 7 * wpls; 04959 wpls8 = 8 * wpls; 04960 wpls9 = 9 * wpls; 04961 wpls10 = 10 * wpls; 04962 wpls11 = 11 * wpls; 04963 wpls12 = 12 * wpls; 04964 wpls13 = 13 * wpls; 04965 wpls14 = 14 * wpls; 04966 wpls15 = 15 * wpls; 04967 wpls16 = 16 * wpls; 04968 wpls17 = 17 * wpls; 04969 wpls18 = 18 * wpls; 04970 wpls19 = 19 * wpls; 04971 wpls20 = 20 * wpls; 04972 wpls21 = 21 * wpls; 04973 wpls22 = 22 * wpls; 04974 wpls23 = 23 * wpls; 04975 wpls24 = 24 * wpls; 04976 wpls25 = 25 * wpls; 04977 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04978 04979 for (i = 0; i < h; i++) { 04980 sptr = datas + i * wpls; 04981 dptr = datad + i * wpld; 04982 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04983 *dptr = (*(sptr + wpls25)) | 04984 (*(sptr + wpls24)) | 04985 (*(sptr + wpls23)) | 04986 (*(sptr + wpls22)) | 04987 (*(sptr + wpls21)) | 04988 (*(sptr + wpls20)) | 04989 (*(sptr + wpls19)) | 04990 (*(sptr + wpls18)) | 04991 (*(sptr + wpls17)) | 04992 (*(sptr + wpls16)) | 04993 (*(sptr + wpls15)) | 04994 (*(sptr + wpls14)) | 04995 (*(sptr + wpls13)) | 04996 (*(sptr + wpls12)) | 04997 (*(sptr + wpls11)) | 04998 (*(sptr + wpls10)) | 04999 (*(sptr + wpls9)) | 05000 (*(sptr + wpls8)) | 05001 (*(sptr + wpls7)) | 05002 (*(sptr + wpls6)) | 05003 (*(sptr + wpls5)) | 05004 (*(sptr + wpls4)) | 05005 (*(sptr + wpls3)) | 05006 (*(sptr + wpls2)) | 05007 (*(sptr + wpls)) | 05008 (*sptr) | 05009 (*(sptr - wpls)) | 05010 (*(sptr - wpls2)) | 05011 (*(sptr - wpls3)) | 05012 (*(sptr - wpls4)) | 05013 (*(sptr - wpls5)) | 05014 (*(sptr - wpls6)) | 05015 (*(sptr - wpls7)) | 05016 (*(sptr - wpls8)) | 05017 (*(sptr - wpls9)) | 05018 (*(sptr - wpls10)) | 05019 (*(sptr - wpls11)) | 05020 (*(sptr - wpls12)) | 05021 (*(sptr - wpls13)) | 05022 (*(sptr - wpls14)) | 05023 (*(sptr - wpls15)) | 05024 (*(sptr - wpls16)) | 05025 (*(sptr - wpls17)) | 05026 (*(sptr - wpls18)) | 05027 (*(sptr - wpls19)) | 05028 (*(sptr - wpls20)) | 05029 (*(sptr - wpls21)) | 05030 (*(sptr - wpls22)) | 05031 (*(sptr - wpls23)) | 05032 (*(sptr - wpls24)); 05033 } 05034 } 05035 } 05036 05037 static void 05038 ferode_1_48(l_uint32 *datad, 05039 l_int32 w, 05040 l_int32 h, 05041 l_int32 wpld, 05042 l_uint32 *datas, 05043 l_int32 wpls) 05044 { 05045 l_int32 i; 05046 register l_int32 j, pwpls; 05047 register l_uint32 *sptr, *dptr; 05048 l_int32 wpls2, wpls3, wpls4; 05049 l_int32 wpls5, wpls6, wpls7, wpls8; 05050 l_int32 wpls9, wpls10, wpls11, wpls12; 05051 l_int32 wpls13, wpls14, wpls15, wpls16; 05052 l_int32 wpls17, wpls18, wpls19, wpls20; 05053 l_int32 wpls21, wpls22, wpls23, wpls24; 05054 l_int32 wpls25; 05055 05056 wpls2 = 2 * wpls; 05057 wpls3 = 3 * wpls; 05058 wpls4 = 4 * wpls; 05059 wpls5 = 5 * wpls; 05060 wpls6 = 6 * wpls; 05061 wpls7 = 7 * wpls; 05062 wpls8 = 8 * wpls; 05063 wpls9 = 9 * wpls; 05064 wpls10 = 10 * wpls; 05065 wpls11 = 11 * wpls; 05066 wpls12 = 12 * wpls; 05067 wpls13 = 13 * wpls; 05068 wpls14 = 14 * wpls; 05069 wpls15 = 15 * wpls; 05070 wpls16 = 16 * wpls; 05071 wpls17 = 17 * wpls; 05072 wpls18 = 18 * wpls; 05073 wpls19 = 19 * wpls; 05074 wpls20 = 20 * wpls; 05075 wpls21 = 21 * wpls; 05076 wpls22 = 22 * wpls; 05077 wpls23 = 23 * wpls; 05078 wpls24 = 24 * wpls; 05079 wpls25 = 25 * wpls; 05080 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05081 05082 for (i = 0; i < h; i++) { 05083 sptr = datas + i * wpls; 05084 dptr = datad + i * wpld; 05085 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05086 *dptr = (*(sptr - wpls25)) & 05087 (*(sptr - wpls24)) & 05088 (*(sptr - wpls23)) & 05089 (*(sptr - wpls22)) & 05090 (*(sptr - wpls21)) & 05091 (*(sptr - wpls20)) & 05092 (*(sptr - wpls19)) & 05093 (*(sptr - wpls18)) & 05094 (*(sptr - wpls17)) & 05095 (*(sptr - wpls16)) & 05096 (*(sptr - wpls15)) & 05097 (*(sptr - wpls14)) & 05098 (*(sptr - wpls13)) & 05099 (*(sptr - wpls12)) & 05100 (*(sptr - wpls11)) & 05101 (*(sptr - wpls10)) & 05102 (*(sptr - wpls9)) & 05103 (*(sptr - wpls8)) & 05104 (*(sptr - wpls7)) & 05105 (*(sptr - wpls6)) & 05106 (*(sptr - wpls5)) & 05107 (*(sptr - wpls4)) & 05108 (*(sptr - wpls3)) & 05109 (*(sptr - wpls2)) & 05110 (*(sptr - wpls)) & 05111 (*sptr) & 05112 (*(sptr + wpls)) & 05113 (*(sptr + wpls2)) & 05114 (*(sptr + wpls3)) & 05115 (*(sptr + wpls4)) & 05116 (*(sptr + wpls5)) & 05117 (*(sptr + wpls6)) & 05118 (*(sptr + wpls7)) & 05119 (*(sptr + wpls8)) & 05120 (*(sptr + wpls9)) & 05121 (*(sptr + wpls10)) & 05122 (*(sptr + wpls11)) & 05123 (*(sptr + wpls12)) & 05124 (*(sptr + wpls13)) & 05125 (*(sptr + wpls14)) & 05126 (*(sptr + wpls15)) & 05127 (*(sptr + wpls16)) & 05128 (*(sptr + wpls17)) & 05129 (*(sptr + wpls18)) & 05130 (*(sptr + wpls19)) & 05131 (*(sptr + wpls20)) & 05132 (*(sptr + wpls21)) & 05133 (*(sptr + wpls22)) & 05134 (*(sptr + wpls23)) & 05135 (*(sptr + wpls24)); 05136 } 05137 } 05138 } 05139 05140 static void 05141 fdilate_1_49(l_uint32 *datad, 05142 l_int32 w, 05143 l_int32 h, 05144 l_int32 wpld, 05145 l_uint32 *datas, 05146 l_int32 wpls) 05147 { 05148 l_int32 i; 05149 register l_int32 j, pwpls; 05150 register l_uint32 *sptr, *dptr; 05151 l_int32 wpls2, wpls3, wpls4; 05152 l_int32 wpls5, wpls6, wpls7, wpls8; 05153 l_int32 wpls9, wpls10, wpls11, wpls12; 05154 l_int32 wpls13, wpls14, wpls15, wpls16; 05155 l_int32 wpls17, wpls18, wpls19, wpls20; 05156 l_int32 wpls21, wpls22, wpls23, wpls24; 05157 l_int32 wpls25; 05158 05159 wpls2 = 2 * wpls; 05160 wpls3 = 3 * wpls; 05161 wpls4 = 4 * wpls; 05162 wpls5 = 5 * wpls; 05163 wpls6 = 6 * wpls; 05164 wpls7 = 7 * wpls; 05165 wpls8 = 8 * wpls; 05166 wpls9 = 9 * wpls; 05167 wpls10 = 10 * wpls; 05168 wpls11 = 11 * wpls; 05169 wpls12 = 12 * wpls; 05170 wpls13 = 13 * wpls; 05171 wpls14 = 14 * wpls; 05172 wpls15 = 15 * wpls; 05173 wpls16 = 16 * wpls; 05174 wpls17 = 17 * wpls; 05175 wpls18 = 18 * wpls; 05176 wpls19 = 19 * wpls; 05177 wpls20 = 20 * wpls; 05178 wpls21 = 21 * wpls; 05179 wpls22 = 22 * wpls; 05180 wpls23 = 23 * wpls; 05181 wpls24 = 24 * wpls; 05182 wpls25 = 25 * wpls; 05183 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05184 05185 for (i = 0; i < h; i++) { 05186 sptr = datas + i * wpls; 05187 dptr = datad + i * wpld; 05188 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05189 *dptr = (*(sptr + wpls25)) | 05190 (*(sptr + wpls24)) | 05191 (*(sptr + wpls23)) | 05192 (*(sptr + wpls22)) | 05193 (*(sptr + wpls21)) | 05194 (*(sptr + wpls20)) | 05195 (*(sptr + wpls19)) | 05196 (*(sptr + wpls18)) | 05197 (*(sptr + wpls17)) | 05198 (*(sptr + wpls16)) | 05199 (*(sptr + wpls15)) | 05200 (*(sptr + wpls14)) | 05201 (*(sptr + wpls13)) | 05202 (*(sptr + wpls12)) | 05203 (*(sptr + wpls11)) | 05204 (*(sptr + wpls10)) | 05205 (*(sptr + wpls9)) | 05206 (*(sptr + wpls8)) | 05207 (*(sptr + wpls7)) | 05208 (*(sptr + wpls6)) | 05209 (*(sptr + wpls5)) | 05210 (*(sptr + wpls4)) | 05211 (*(sptr + wpls3)) | 05212 (*(sptr + wpls2)) | 05213 (*(sptr + wpls)) | 05214 (*sptr) | 05215 (*(sptr - wpls)) | 05216 (*(sptr - wpls2)) | 05217 (*(sptr - wpls3)) | 05218 (*(sptr - wpls4)) | 05219 (*(sptr - wpls5)) | 05220 (*(sptr - wpls6)) | 05221 (*(sptr - wpls7)) | 05222 (*(sptr - wpls8)) | 05223 (*(sptr - wpls9)) | 05224 (*(sptr - wpls10)) | 05225 (*(sptr - wpls11)) | 05226 (*(sptr - wpls12)) | 05227 (*(sptr - wpls13)) | 05228 (*(sptr - wpls14)) | 05229 (*(sptr - wpls15)) | 05230 (*(sptr - wpls16)) | 05231 (*(sptr - wpls17)) | 05232 (*(sptr - wpls18)) | 05233 (*(sptr - wpls19)) | 05234 (*(sptr - wpls20)) | 05235 (*(sptr - wpls21)) | 05236 (*(sptr - wpls22)) | 05237 (*(sptr - wpls23)) | 05238 (*(sptr - wpls24)) | 05239 (*(sptr - wpls25)); 05240 } 05241 } 05242 } 05243 05244 static void 05245 ferode_1_49(l_uint32 *datad, 05246 l_int32 w, 05247 l_int32 h, 05248 l_int32 wpld, 05249 l_uint32 *datas, 05250 l_int32 wpls) 05251 { 05252 l_int32 i; 05253 register l_int32 j, pwpls; 05254 register l_uint32 *sptr, *dptr; 05255 l_int32 wpls2, wpls3, wpls4; 05256 l_int32 wpls5, wpls6, wpls7, wpls8; 05257 l_int32 wpls9, wpls10, wpls11, wpls12; 05258 l_int32 wpls13, wpls14, wpls15, wpls16; 05259 l_int32 wpls17, wpls18, wpls19, wpls20; 05260 l_int32 wpls21, wpls22, wpls23, wpls24; 05261 l_int32 wpls25; 05262 05263 wpls2 = 2 * wpls; 05264 wpls3 = 3 * wpls; 05265 wpls4 = 4 * wpls; 05266 wpls5 = 5 * wpls; 05267 wpls6 = 6 * wpls; 05268 wpls7 = 7 * wpls; 05269 wpls8 = 8 * wpls; 05270 wpls9 = 9 * wpls; 05271 wpls10 = 10 * wpls; 05272 wpls11 = 11 * wpls; 05273 wpls12 = 12 * wpls; 05274 wpls13 = 13 * wpls; 05275 wpls14 = 14 * wpls; 05276 wpls15 = 15 * wpls; 05277 wpls16 = 16 * wpls; 05278 wpls17 = 17 * wpls; 05279 wpls18 = 18 * wpls; 05280 wpls19 = 19 * wpls; 05281 wpls20 = 20 * wpls; 05282 wpls21 = 21 * wpls; 05283 wpls22 = 22 * wpls; 05284 wpls23 = 23 * wpls; 05285 wpls24 = 24 * wpls; 05286 wpls25 = 25 * wpls; 05287 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05288 05289 for (i = 0; i < h; i++) { 05290 sptr = datas + i * wpls; 05291 dptr = datad + i * wpld; 05292 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05293 *dptr = (*(sptr - wpls25)) & 05294 (*(sptr - wpls24)) & 05295 (*(sptr - wpls23)) & 05296 (*(sptr - wpls22)) & 05297 (*(sptr - wpls21)) & 05298 (*(sptr - wpls20)) & 05299 (*(sptr - wpls19)) & 05300 (*(sptr - wpls18)) & 05301 (*(sptr - wpls17)) & 05302 (*(sptr - wpls16)) & 05303 (*(sptr - wpls15)) & 05304 (*(sptr - wpls14)) & 05305 (*(sptr - wpls13)) & 05306 (*(sptr - wpls12)) & 05307 (*(sptr - wpls11)) & 05308 (*(sptr - wpls10)) & 05309 (*(sptr - wpls9)) & 05310 (*(sptr - wpls8)) & 05311 (*(sptr - wpls7)) & 05312 (*(sptr - wpls6)) & 05313 (*(sptr - wpls5)) & 05314 (*(sptr - wpls4)) & 05315 (*(sptr - wpls3)) & 05316 (*(sptr - wpls2)) & 05317 (*(sptr - wpls)) & 05318 (*sptr) & 05319 (*(sptr + wpls)) & 05320 (*(sptr + wpls2)) & 05321 (*(sptr + wpls3)) & 05322 (*(sptr + wpls4)) & 05323 (*(sptr + wpls5)) & 05324 (*(sptr + wpls6)) & 05325 (*(sptr + wpls7)) & 05326 (*(sptr + wpls8)) & 05327 (*(sptr + wpls9)) & 05328 (*(sptr + wpls10)) & 05329 (*(sptr + wpls11)) & 05330 (*(sptr + wpls12)) & 05331 (*(sptr + wpls13)) & 05332 (*(sptr + wpls14)) & 05333 (*(sptr + wpls15)) & 05334 (*(sptr + wpls16)) & 05335 (*(sptr + wpls17)) & 05336 (*(sptr + wpls18)) & 05337 (*(sptr + wpls19)) & 05338 (*(sptr + wpls20)) & 05339 (*(sptr + wpls21)) & 05340 (*(sptr + wpls22)) & 05341 (*(sptr + wpls23)) & 05342 (*(sptr + wpls24)) & 05343 (*(sptr + wpls25)); 05344 } 05345 } 05346 } 05347 05348 static void 05349 fdilate_1_50(l_uint32 *datad, 05350 l_int32 w, 05351 l_int32 h, 05352 l_int32 wpld, 05353 l_uint32 *datas, 05354 l_int32 wpls) 05355 { 05356 l_int32 i; 05357 register l_int32 j, pwpls; 05358 register l_uint32 *sptr, *dptr; 05359 05360 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05361 05362 for (i = 0; i < h; i++) { 05363 sptr = datas + i * wpls; 05364 dptr = datad + i * wpld; 05365 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05366 *dptr = ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | 05367 (*(sptr + wpls)) | 05368 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 05369 (*sptr); 05370 } 05371 } 05372 } 05373 05374 static void 05375 ferode_1_50(l_uint32 *datad, 05376 l_int32 w, 05377 l_int32 h, 05378 l_int32 wpld, 05379 l_uint32 *datas, 05380 l_int32 wpls) 05381 { 05382 l_int32 i; 05383 register l_int32 j, pwpls; 05384 register l_uint32 *sptr, *dptr; 05385 05386 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05387 05388 for (i = 0; i < h; i++) { 05389 sptr = datas + i * wpls; 05390 dptr = datad + i * wpld; 05391 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05392 *dptr = ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & 05393 (*(sptr - wpls)) & 05394 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 05395 (*sptr); 05396 } 05397 } 05398 } 05399 05400 static void 05401 fdilate_1_51(l_uint32 *datad, 05402 l_int32 w, 05403 l_int32 h, 05404 l_int32 wpld, 05405 l_uint32 *datas, 05406 l_int32 wpls) 05407 { 05408 l_int32 i; 05409 register l_int32 j, pwpls; 05410 register l_uint32 *sptr, *dptr; 05411 05412 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05413 05414 for (i = 0; i < h; i++) { 05415 sptr = datas + i * wpls; 05416 dptr = datad + i * wpld; 05417 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05418 *dptr = ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | 05419 (*(sptr + wpls)) | 05420 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | 05421 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 05422 (*sptr) | 05423 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 05424 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | 05425 (*(sptr - wpls)) | 05426 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); 05427 } 05428 } 05429 } 05430 05431 static void 05432 ferode_1_51(l_uint32 *datad, 05433 l_int32 w, 05434 l_int32 h, 05435 l_int32 wpld, 05436 l_uint32 *datas, 05437 l_int32 wpls) 05438 { 05439 l_int32 i; 05440 register l_int32 j, pwpls; 05441 register l_uint32 *sptr, *dptr; 05442 05443 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05444 05445 for (i = 0; i < h; i++) { 05446 sptr = datas + i * wpls; 05447 dptr = datad + i * wpld; 05448 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05449 *dptr = ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & 05450 (*(sptr - wpls)) & 05451 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & 05452 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 05453 (*sptr) & 05454 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 05455 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & 05456 (*(sptr + wpls)) & 05457 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); 05458 } 05459 } 05460 } 05461 05462 static void 05463 fdilate_1_52(l_uint32 *datad, 05464 l_int32 w, 05465 l_int32 h, 05466 l_int32 wpld, 05467 l_uint32 *datas, 05468 l_int32 wpls) 05469 { 05470 l_int32 i; 05471 register l_int32 j, pwpls; 05472 register l_uint32 *sptr, *dptr; 05473 l_int32 wpls2; 05474 05475 wpls2 = 2 * wpls; 05476 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05477 05478 for (i = 0; i < h; i++) { 05479 sptr = datas + i * wpls; 05480 dptr = datad + i * wpld; 05481 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05482 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | 05483 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) | 05484 (*(sptr + wpls2)) | 05485 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) | 05486 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) | 05487 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | 05488 (*(sptr + wpls)) | 05489 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | 05490 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 05491 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 05492 (*sptr) | 05493 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 05494 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) | 05495 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | 05496 (*(sptr - wpls)) | 05497 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); 05498 } 05499 } 05500 } 05501 05502 static void 05503 ferode_1_52(l_uint32 *datad, 05504 l_int32 w, 05505 l_int32 h, 05506 l_int32 wpld, 05507 l_uint32 *datas, 05508 l_int32 wpls) 05509 { 05510 l_int32 i; 05511 register l_int32 j, pwpls; 05512 register l_uint32 *sptr, *dptr; 05513 l_int32 wpls2; 05514 05515 wpls2 = 2 * wpls; 05516 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05517 05518 for (i = 0; i < h; i++) { 05519 sptr = datas + i * wpls; 05520 dptr = datad + i * wpld; 05521 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05522 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & 05523 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) & 05524 (*(sptr - wpls2)) & 05525 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) & 05526 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) & 05527 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & 05528 (*(sptr - wpls)) & 05529 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & 05530 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 05531 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 05532 (*sptr) & 05533 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 05534 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) & 05535 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & 05536 (*(sptr + wpls)) & 05537 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); 05538 } 05539 } 05540 } 05541 05542 static void 05543 fdilate_1_53(l_uint32 *datad, 05544 l_int32 w, 05545 l_int32 h, 05546 l_int32 wpld, 05547 l_uint32 *datas, 05548 l_int32 wpls) 05549 { 05550 l_int32 i; 05551 register l_int32 j, pwpls; 05552 register l_uint32 *sptr, *dptr; 05553 l_int32 wpls2; 05554 05555 wpls2 = 2 * wpls; 05556 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05557 05558 for (i = 0; i < h; i++) { 05559 sptr = datas + i * wpls; 05560 dptr = datad + i * wpld; 05561 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05562 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | 05563 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) | 05564 (*(sptr + wpls2)) | 05565 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) | 05566 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) | 05567 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) | 05568 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | 05569 (*(sptr + wpls)) | 05570 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | 05571 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) | 05572 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 05573 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 05574 (*sptr) | 05575 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 05576 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 05577 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) | 05578 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | 05579 (*(sptr - wpls)) | 05580 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) | 05581 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) | 05582 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) | 05583 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) | 05584 (*(sptr - wpls2)) | 05585 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) | 05586 ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)); 05587 } 05588 } 05589 } 05590 05591 static void 05592 ferode_1_53(l_uint32 *datad, 05593 l_int32 w, 05594 l_int32 h, 05595 l_int32 wpld, 05596 l_uint32 *datas, 05597 l_int32 wpls) 05598 { 05599 l_int32 i; 05600 register l_int32 j, pwpls; 05601 register l_uint32 *sptr, *dptr; 05602 l_int32 wpls2; 05603 05604 wpls2 = 2 * wpls; 05605 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05606 05607 for (i = 0; i < h; i++) { 05608 sptr = datas + i * wpls; 05609 dptr = datad + i * wpld; 05610 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05611 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & 05612 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) & 05613 (*(sptr - wpls2)) & 05614 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) & 05615 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) & 05616 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) & 05617 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & 05618 (*(sptr - wpls)) & 05619 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & 05620 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) & 05621 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 05622 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 05623 (*sptr) & 05624 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 05625 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 05626 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) & 05627 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & 05628 (*(sptr + wpls)) & 05629 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) & 05630 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) & 05631 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) & 05632 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) & 05633 (*(sptr + wpls2)) & 05634 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) & 05635 ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)); 05636 } 05637 } 05638 } 05639 05640 static void 05641 fdilate_1_54(l_uint32 *datad, 05642 l_int32 w, 05643 l_int32 h, 05644 l_int32 wpld, 05645 l_uint32 *datas, 05646 l_int32 wpls) 05647 { 05648 l_int32 i; 05649 register l_int32 j, pwpls; 05650 register l_uint32 *sptr, *dptr; 05651 05652 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05653 05654 for (i = 0; i < h; i++) { 05655 sptr = datas + i * wpls; 05656 dptr = datad + i * wpld; 05657 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05658 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | 05659 (*(sptr - wpls)); 05660 } 05661 } 05662 } 05663 05664 static void 05665 ferode_1_54(l_uint32 *datad, 05666 l_int32 w, 05667 l_int32 h, 05668 l_int32 wpld, 05669 l_uint32 *datas, 05670 l_int32 wpls) 05671 { 05672 l_int32 i; 05673 register l_int32 j, pwpls; 05674 register l_uint32 *sptr, *dptr; 05675 05676 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05677 05678 for (i = 0; i < h; i++) { 05679 sptr = datas + i * wpls; 05680 dptr = datad + i * wpld; 05681 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05682 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & 05683 (*(sptr + wpls)); 05684 } 05685 } 05686 } 05687 05688 static void 05689 fdilate_1_55(l_uint32 *datad, 05690 l_int32 w, 05691 l_int32 h, 05692 l_int32 wpld, 05693 l_uint32 *datas, 05694 l_int32 wpls) 05695 { 05696 l_int32 i; 05697 register l_int32 j, pwpls; 05698 register l_uint32 *sptr, *dptr; 05699 05700 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05701 05702 for (i = 0; i < h; i++) { 05703 sptr = datas + i * wpls; 05704 dptr = datad + i * wpld; 05705 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05706 *dptr = (*sptr) | 05707 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); 05708 } 05709 } 05710 } 05711 05712 static void 05713 ferode_1_55(l_uint32 *datad, 05714 l_int32 w, 05715 l_int32 h, 05716 l_int32 wpld, 05717 l_uint32 *datas, 05718 l_int32 wpls) 05719 { 05720 l_int32 i; 05721 register l_int32 j, pwpls; 05722 register l_uint32 *sptr, *dptr; 05723 05724 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05725 05726 for (i = 0; i < h; i++) { 05727 sptr = datas + i * wpls; 05728 dptr = datad + i * wpld; 05729 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05730 *dptr = (*sptr) & 05731 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); 05732 } 05733 } 05734 } 05735 05736 static void 05737 fdilate_1_56(l_uint32 *datad, 05738 l_int32 w, 05739 l_int32 h, 05740 l_int32 wpld, 05741 l_uint32 *datas, 05742 l_int32 wpls) 05743 { 05744 l_int32 i; 05745 register l_int32 j, pwpls; 05746 register l_uint32 *sptr, *dptr; 05747 l_int32 wpls2; 05748 05749 wpls2 = 2 * wpls; 05750 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05751 05752 for (i = 0; i < h; i++) { 05753 sptr = datas + i * wpls; 05754 dptr = datad + i * wpld; 05755 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05756 *dptr = ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) | 05757 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | 05758 (*sptr) | 05759 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | 05760 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)); 05761 } 05762 } 05763 } 05764 05765 static void 05766 ferode_1_56(l_uint32 *datad, 05767 l_int32 w, 05768 l_int32 h, 05769 l_int32 wpld, 05770 l_uint32 *datas, 05771 l_int32 wpls) 05772 { 05773 l_int32 i; 05774 register l_int32 j, pwpls; 05775 register l_uint32 *sptr, *dptr; 05776 l_int32 wpls2; 05777 05778 wpls2 = 2 * wpls; 05779 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05780 05781 for (i = 0; i < h; i++) { 05782 sptr = datas + i * wpls; 05783 dptr = datad + i * wpld; 05784 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05785 *dptr = ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) & 05786 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & 05787 (*sptr) & 05788 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & 05789 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)); 05790 } 05791 } 05792 } 05793 05794 static void 05795 fdilate_1_57(l_uint32 *datad, 05796 l_int32 w, 05797 l_int32 h, 05798 l_int32 wpld, 05799 l_uint32 *datas, 05800 l_int32 wpls) 05801 { 05802 l_int32 i; 05803 register l_int32 j, pwpls; 05804 register l_uint32 *sptr, *dptr; 05805 l_int32 wpls2; 05806 05807 wpls2 = 2 * wpls; 05808 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05809 05810 for (i = 0; i < h; i++) { 05811 sptr = datas + i * wpls; 05812 dptr = datad + i * wpld; 05813 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05814 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | 05815 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | 05816 (*sptr) | 05817 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) | 05818 ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)); 05819 } 05820 } 05821 } 05822 05823 static void 05824 ferode_1_57(l_uint32 *datad, 05825 l_int32 w, 05826 l_int32 h, 05827 l_int32 wpld, 05828 l_uint32 *datas, 05829 l_int32 wpls) 05830 { 05831 l_int32 i; 05832 register l_int32 j, pwpls; 05833 register l_uint32 *sptr, *dptr; 05834 l_int32 wpls2; 05835 05836 wpls2 = 2 * wpls; 05837 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 05838 05839 for (i = 0; i < h; i++) { 05840 sptr = datas + i * wpls; 05841 dptr = datad + i * wpld; 05842 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 05843 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & 05844 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & 05845 (*sptr) & 05846 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) & 05847 ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)); 05848 } 05849 } 05850 } 05851