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_2() 00021 * 00022 * Static Low-level: 00023 * void fdilate_2_*() 00024 * void ferode_2_*() 00025 */ 00026 00027 #include "allheaders.h" 00028 00029 static void fdilate_2_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00030 static void ferode_2_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00031 static void fdilate_2_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00032 static void ferode_2_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00033 static void fdilate_2_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00034 static void ferode_2_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00035 static void fdilate_2_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00036 static void ferode_2_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00037 static void fdilate_2_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00038 static void ferode_2_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00039 static void fdilate_2_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00040 static void ferode_2_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00041 static void fdilate_2_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00042 static void ferode_2_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00043 static void fdilate_2_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00044 static void ferode_2_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00045 static void fdilate_2_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00046 static void ferode_2_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00047 static void fdilate_2_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00048 static void ferode_2_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00049 static void fdilate_2_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00050 static void ferode_2_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00051 static void fdilate_2_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00052 static void ferode_2_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00053 static void fdilate_2_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00054 static void ferode_2_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00055 static void fdilate_2_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00056 static void ferode_2_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00057 static void fdilate_2_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00058 static void ferode_2_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00059 static void fdilate_2_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00060 static void ferode_2_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00061 static void fdilate_2_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00062 static void ferode_2_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00063 static void fdilate_2_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00064 static void ferode_2_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00065 static void fdilate_2_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00066 static void ferode_2_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00067 static void fdilate_2_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00068 static void ferode_2_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00069 static void fdilate_2_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00070 static void ferode_2_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00071 static void fdilate_2_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00072 static void ferode_2_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00073 static void fdilate_2_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00074 static void ferode_2_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00075 static void fdilate_2_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00076 static void ferode_2_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00077 static void fdilate_2_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00078 static void ferode_2_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00079 static void fdilate_2_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00080 static void ferode_2_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00081 static void fdilate_2_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00082 static void ferode_2_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00083 static void fdilate_2_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00084 static void ferode_2_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00085 static void fdilate_2_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00086 static void ferode_2_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00087 static void fdilate_2_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00088 static void ferode_2_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00089 static void fdilate_2_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00090 static void ferode_2_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00091 static void fdilate_2_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00092 static void ferode_2_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00093 static void fdilate_2_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00094 static void ferode_2_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00095 static void fdilate_2_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00096 static void ferode_2_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00097 static void fdilate_2_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00098 static void ferode_2_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00099 static void fdilate_2_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00100 static void ferode_2_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00101 static void fdilate_2_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00102 static void ferode_2_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00103 static void fdilate_2_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00104 static void ferode_2_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00105 static void fdilate_2_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00106 static void ferode_2_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00107 static void fdilate_2_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00108 static void ferode_2_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00109 static void fdilate_2_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00110 static void ferode_2_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00111 static void fdilate_2_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00112 static void ferode_2_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00113 static void fdilate_2_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00114 static void ferode_2_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00115 static void fdilate_2_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00116 static void ferode_2_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00117 static void fdilate_2_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00118 static void ferode_2_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00119 static void fdilate_2_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00120 static void ferode_2_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00121 static void fdilate_2_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00122 static void ferode_2_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00123 static void fdilate_2_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00124 static void ferode_2_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00125 static void fdilate_2_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00126 static void ferode_2_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00127 static void fdilate_2_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00128 static void ferode_2_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00129 static void fdilate_2_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00130 static void ferode_2_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00131 static void fdilate_2_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00132 static void ferode_2_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00133 static void fdilate_2_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00134 static void ferode_2_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00135 static void fdilate_2_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00136 static void ferode_2_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00137 static void fdilate_2_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00138 static void ferode_2_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00139 static void fdilate_2_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00140 static void ferode_2_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00141 static void fdilate_2_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00142 static void ferode_2_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00143 static void fdilate_2_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00144 static void ferode_2_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00145 static void fdilate_2_58(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00146 static void ferode_2_58(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00147 static void fdilate_2_59(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00148 static void ferode_2_59(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00149 static void fdilate_2_60(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00150 static void ferode_2_60(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00151 static void fdilate_2_61(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00152 static void ferode_2_61(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00153 static void fdilate_2_62(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00154 static void ferode_2_62(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00155 static void fdilate_2_63(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00156 static void ferode_2_63(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00157 static void fdilate_2_64(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00158 static void ferode_2_64(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00159 static void fdilate_2_65(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00160 static void ferode_2_65(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00161 static void fdilate_2_66(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00162 static void ferode_2_66(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00163 static void fdilate_2_67(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00164 static void ferode_2_67(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00165 static void fdilate_2_68(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00166 static void ferode_2_68(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00167 static void fdilate_2_69(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00168 static void ferode_2_69(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00169 static void fdilate_2_70(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00170 static void ferode_2_70(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00171 static void fdilate_2_71(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00172 static void ferode_2_71(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00173 static void fdilate_2_72(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00174 static void ferode_2_72(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00175 static void fdilate_2_73(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00176 static void ferode_2_73(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00177 static void fdilate_2_74(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00178 static void ferode_2_74(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00179 static void fdilate_2_75(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00180 static void ferode_2_75(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); 00181 00182 00183 /*---------------------------------------------------------------------* 00184 * Fast morph dispatcher * 00185 *---------------------------------------------------------------------*/ 00186 /*! 00187 * fmorphopgen_low_2() 00188 * 00189 * a dispatcher to appropriate low-level code 00190 */ 00191 l_int32 00192 fmorphopgen_low_2(l_uint32 *datad, 00193 l_int32 w, 00194 l_int32 h, 00195 l_int32 wpld, 00196 l_uint32 *datas, 00197 l_int32 wpls, 00198 l_int32 index) 00199 { 00200 00201 switch (index) 00202 { 00203 case 0: 00204 fdilate_2_0(datad, w, h, wpld, datas, wpls); 00205 break; 00206 case 1: 00207 ferode_2_0(datad, w, h, wpld, datas, wpls); 00208 break; 00209 case 2: 00210 fdilate_2_1(datad, w, h, wpld, datas, wpls); 00211 break; 00212 case 3: 00213 ferode_2_1(datad, w, h, wpld, datas, wpls); 00214 break; 00215 case 4: 00216 fdilate_2_2(datad, w, h, wpld, datas, wpls); 00217 break; 00218 case 5: 00219 ferode_2_2(datad, w, h, wpld, datas, wpls); 00220 break; 00221 case 6: 00222 fdilate_2_3(datad, w, h, wpld, datas, wpls); 00223 break; 00224 case 7: 00225 ferode_2_3(datad, w, h, wpld, datas, wpls); 00226 break; 00227 case 8: 00228 fdilate_2_4(datad, w, h, wpld, datas, wpls); 00229 break; 00230 case 9: 00231 ferode_2_4(datad, w, h, wpld, datas, wpls); 00232 break; 00233 case 10: 00234 fdilate_2_5(datad, w, h, wpld, datas, wpls); 00235 break; 00236 case 11: 00237 ferode_2_5(datad, w, h, wpld, datas, wpls); 00238 break; 00239 case 12: 00240 fdilate_2_6(datad, w, h, wpld, datas, wpls); 00241 break; 00242 case 13: 00243 ferode_2_6(datad, w, h, wpld, datas, wpls); 00244 break; 00245 case 14: 00246 fdilate_2_7(datad, w, h, wpld, datas, wpls); 00247 break; 00248 case 15: 00249 ferode_2_7(datad, w, h, wpld, datas, wpls); 00250 break; 00251 case 16: 00252 fdilate_2_8(datad, w, h, wpld, datas, wpls); 00253 break; 00254 case 17: 00255 ferode_2_8(datad, w, h, wpld, datas, wpls); 00256 break; 00257 case 18: 00258 fdilate_2_9(datad, w, h, wpld, datas, wpls); 00259 break; 00260 case 19: 00261 ferode_2_9(datad, w, h, wpld, datas, wpls); 00262 break; 00263 case 20: 00264 fdilate_2_10(datad, w, h, wpld, datas, wpls); 00265 break; 00266 case 21: 00267 ferode_2_10(datad, w, h, wpld, datas, wpls); 00268 break; 00269 case 22: 00270 fdilate_2_11(datad, w, h, wpld, datas, wpls); 00271 break; 00272 case 23: 00273 ferode_2_11(datad, w, h, wpld, datas, wpls); 00274 break; 00275 case 24: 00276 fdilate_2_12(datad, w, h, wpld, datas, wpls); 00277 break; 00278 case 25: 00279 ferode_2_12(datad, w, h, wpld, datas, wpls); 00280 break; 00281 case 26: 00282 fdilate_2_13(datad, w, h, wpld, datas, wpls); 00283 break; 00284 case 27: 00285 ferode_2_13(datad, w, h, wpld, datas, wpls); 00286 break; 00287 case 28: 00288 fdilate_2_14(datad, w, h, wpld, datas, wpls); 00289 break; 00290 case 29: 00291 ferode_2_14(datad, w, h, wpld, datas, wpls); 00292 break; 00293 case 30: 00294 fdilate_2_15(datad, w, h, wpld, datas, wpls); 00295 break; 00296 case 31: 00297 ferode_2_15(datad, w, h, wpld, datas, wpls); 00298 break; 00299 case 32: 00300 fdilate_2_16(datad, w, h, wpld, datas, wpls); 00301 break; 00302 case 33: 00303 ferode_2_16(datad, w, h, wpld, datas, wpls); 00304 break; 00305 case 34: 00306 fdilate_2_17(datad, w, h, wpld, datas, wpls); 00307 break; 00308 case 35: 00309 ferode_2_17(datad, w, h, wpld, datas, wpls); 00310 break; 00311 case 36: 00312 fdilate_2_18(datad, w, h, wpld, datas, wpls); 00313 break; 00314 case 37: 00315 ferode_2_18(datad, w, h, wpld, datas, wpls); 00316 break; 00317 case 38: 00318 fdilate_2_19(datad, w, h, wpld, datas, wpls); 00319 break; 00320 case 39: 00321 ferode_2_19(datad, w, h, wpld, datas, wpls); 00322 break; 00323 case 40: 00324 fdilate_2_20(datad, w, h, wpld, datas, wpls); 00325 break; 00326 case 41: 00327 ferode_2_20(datad, w, h, wpld, datas, wpls); 00328 break; 00329 case 42: 00330 fdilate_2_21(datad, w, h, wpld, datas, wpls); 00331 break; 00332 case 43: 00333 ferode_2_21(datad, w, h, wpld, datas, wpls); 00334 break; 00335 case 44: 00336 fdilate_2_22(datad, w, h, wpld, datas, wpls); 00337 break; 00338 case 45: 00339 ferode_2_22(datad, w, h, wpld, datas, wpls); 00340 break; 00341 case 46: 00342 fdilate_2_23(datad, w, h, wpld, datas, wpls); 00343 break; 00344 case 47: 00345 ferode_2_23(datad, w, h, wpld, datas, wpls); 00346 break; 00347 case 48: 00348 fdilate_2_24(datad, w, h, wpld, datas, wpls); 00349 break; 00350 case 49: 00351 ferode_2_24(datad, w, h, wpld, datas, wpls); 00352 break; 00353 case 50: 00354 fdilate_2_25(datad, w, h, wpld, datas, wpls); 00355 break; 00356 case 51: 00357 ferode_2_25(datad, w, h, wpld, datas, wpls); 00358 break; 00359 case 52: 00360 fdilate_2_26(datad, w, h, wpld, datas, wpls); 00361 break; 00362 case 53: 00363 ferode_2_26(datad, w, h, wpld, datas, wpls); 00364 break; 00365 case 54: 00366 fdilate_2_27(datad, w, h, wpld, datas, wpls); 00367 break; 00368 case 55: 00369 ferode_2_27(datad, w, h, wpld, datas, wpls); 00370 break; 00371 case 56: 00372 fdilate_2_28(datad, w, h, wpld, datas, wpls); 00373 break; 00374 case 57: 00375 ferode_2_28(datad, w, h, wpld, datas, wpls); 00376 break; 00377 case 58: 00378 fdilate_2_29(datad, w, h, wpld, datas, wpls); 00379 break; 00380 case 59: 00381 ferode_2_29(datad, w, h, wpld, datas, wpls); 00382 break; 00383 case 60: 00384 fdilate_2_30(datad, w, h, wpld, datas, wpls); 00385 break; 00386 case 61: 00387 ferode_2_30(datad, w, h, wpld, datas, wpls); 00388 break; 00389 case 62: 00390 fdilate_2_31(datad, w, h, wpld, datas, wpls); 00391 break; 00392 case 63: 00393 ferode_2_31(datad, w, h, wpld, datas, wpls); 00394 break; 00395 case 64: 00396 fdilate_2_32(datad, w, h, wpld, datas, wpls); 00397 break; 00398 case 65: 00399 ferode_2_32(datad, w, h, wpld, datas, wpls); 00400 break; 00401 case 66: 00402 fdilate_2_33(datad, w, h, wpld, datas, wpls); 00403 break; 00404 case 67: 00405 ferode_2_33(datad, w, h, wpld, datas, wpls); 00406 break; 00407 case 68: 00408 fdilate_2_34(datad, w, h, wpld, datas, wpls); 00409 break; 00410 case 69: 00411 ferode_2_34(datad, w, h, wpld, datas, wpls); 00412 break; 00413 case 70: 00414 fdilate_2_35(datad, w, h, wpld, datas, wpls); 00415 break; 00416 case 71: 00417 ferode_2_35(datad, w, h, wpld, datas, wpls); 00418 break; 00419 case 72: 00420 fdilate_2_36(datad, w, h, wpld, datas, wpls); 00421 break; 00422 case 73: 00423 ferode_2_36(datad, w, h, wpld, datas, wpls); 00424 break; 00425 case 74: 00426 fdilate_2_37(datad, w, h, wpld, datas, wpls); 00427 break; 00428 case 75: 00429 ferode_2_37(datad, w, h, wpld, datas, wpls); 00430 break; 00431 case 76: 00432 fdilate_2_38(datad, w, h, wpld, datas, wpls); 00433 break; 00434 case 77: 00435 ferode_2_38(datad, w, h, wpld, datas, wpls); 00436 break; 00437 case 78: 00438 fdilate_2_39(datad, w, h, wpld, datas, wpls); 00439 break; 00440 case 79: 00441 ferode_2_39(datad, w, h, wpld, datas, wpls); 00442 break; 00443 case 80: 00444 fdilate_2_40(datad, w, h, wpld, datas, wpls); 00445 break; 00446 case 81: 00447 ferode_2_40(datad, w, h, wpld, datas, wpls); 00448 break; 00449 case 82: 00450 fdilate_2_41(datad, w, h, wpld, datas, wpls); 00451 break; 00452 case 83: 00453 ferode_2_41(datad, w, h, wpld, datas, wpls); 00454 break; 00455 case 84: 00456 fdilate_2_42(datad, w, h, wpld, datas, wpls); 00457 break; 00458 case 85: 00459 ferode_2_42(datad, w, h, wpld, datas, wpls); 00460 break; 00461 case 86: 00462 fdilate_2_43(datad, w, h, wpld, datas, wpls); 00463 break; 00464 case 87: 00465 ferode_2_43(datad, w, h, wpld, datas, wpls); 00466 break; 00467 case 88: 00468 fdilate_2_44(datad, w, h, wpld, datas, wpls); 00469 break; 00470 case 89: 00471 ferode_2_44(datad, w, h, wpld, datas, wpls); 00472 break; 00473 case 90: 00474 fdilate_2_45(datad, w, h, wpld, datas, wpls); 00475 break; 00476 case 91: 00477 ferode_2_45(datad, w, h, wpld, datas, wpls); 00478 break; 00479 case 92: 00480 fdilate_2_46(datad, w, h, wpld, datas, wpls); 00481 break; 00482 case 93: 00483 ferode_2_46(datad, w, h, wpld, datas, wpls); 00484 break; 00485 case 94: 00486 fdilate_2_47(datad, w, h, wpld, datas, wpls); 00487 break; 00488 case 95: 00489 ferode_2_47(datad, w, h, wpld, datas, wpls); 00490 break; 00491 case 96: 00492 fdilate_2_48(datad, w, h, wpld, datas, wpls); 00493 break; 00494 case 97: 00495 ferode_2_48(datad, w, h, wpld, datas, wpls); 00496 break; 00497 case 98: 00498 fdilate_2_49(datad, w, h, wpld, datas, wpls); 00499 break; 00500 case 99: 00501 ferode_2_49(datad, w, h, wpld, datas, wpls); 00502 break; 00503 case 100: 00504 fdilate_2_50(datad, w, h, wpld, datas, wpls); 00505 break; 00506 case 101: 00507 ferode_2_50(datad, w, h, wpld, datas, wpls); 00508 break; 00509 case 102: 00510 fdilate_2_51(datad, w, h, wpld, datas, wpls); 00511 break; 00512 case 103: 00513 ferode_2_51(datad, w, h, wpld, datas, wpls); 00514 break; 00515 case 104: 00516 fdilate_2_52(datad, w, h, wpld, datas, wpls); 00517 break; 00518 case 105: 00519 ferode_2_52(datad, w, h, wpld, datas, wpls); 00520 break; 00521 case 106: 00522 fdilate_2_53(datad, w, h, wpld, datas, wpls); 00523 break; 00524 case 107: 00525 ferode_2_53(datad, w, h, wpld, datas, wpls); 00526 break; 00527 case 108: 00528 fdilate_2_54(datad, w, h, wpld, datas, wpls); 00529 break; 00530 case 109: 00531 ferode_2_54(datad, w, h, wpld, datas, wpls); 00532 break; 00533 case 110: 00534 fdilate_2_55(datad, w, h, wpld, datas, wpls); 00535 break; 00536 case 111: 00537 ferode_2_55(datad, w, h, wpld, datas, wpls); 00538 break; 00539 case 112: 00540 fdilate_2_56(datad, w, h, wpld, datas, wpls); 00541 break; 00542 case 113: 00543 ferode_2_56(datad, w, h, wpld, datas, wpls); 00544 break; 00545 case 114: 00546 fdilate_2_57(datad, w, h, wpld, datas, wpls); 00547 break; 00548 case 115: 00549 ferode_2_57(datad, w, h, wpld, datas, wpls); 00550 break; 00551 case 116: 00552 fdilate_2_58(datad, w, h, wpld, datas, wpls); 00553 break; 00554 case 117: 00555 ferode_2_58(datad, w, h, wpld, datas, wpls); 00556 break; 00557 case 118: 00558 fdilate_2_59(datad, w, h, wpld, datas, wpls); 00559 break; 00560 case 119: 00561 ferode_2_59(datad, w, h, wpld, datas, wpls); 00562 break; 00563 case 120: 00564 fdilate_2_60(datad, w, h, wpld, datas, wpls); 00565 break; 00566 case 121: 00567 ferode_2_60(datad, w, h, wpld, datas, wpls); 00568 break; 00569 case 122: 00570 fdilate_2_61(datad, w, h, wpld, datas, wpls); 00571 break; 00572 case 123: 00573 ferode_2_61(datad, w, h, wpld, datas, wpls); 00574 break; 00575 case 124: 00576 fdilate_2_62(datad, w, h, wpld, datas, wpls); 00577 break; 00578 case 125: 00579 ferode_2_62(datad, w, h, wpld, datas, wpls); 00580 break; 00581 case 126: 00582 fdilate_2_63(datad, w, h, wpld, datas, wpls); 00583 break; 00584 case 127: 00585 ferode_2_63(datad, w, h, wpld, datas, wpls); 00586 break; 00587 case 128: 00588 fdilate_2_64(datad, w, h, wpld, datas, wpls); 00589 break; 00590 case 129: 00591 ferode_2_64(datad, w, h, wpld, datas, wpls); 00592 break; 00593 case 130: 00594 fdilate_2_65(datad, w, h, wpld, datas, wpls); 00595 break; 00596 case 131: 00597 ferode_2_65(datad, w, h, wpld, datas, wpls); 00598 break; 00599 case 132: 00600 fdilate_2_66(datad, w, h, wpld, datas, wpls); 00601 break; 00602 case 133: 00603 ferode_2_66(datad, w, h, wpld, datas, wpls); 00604 break; 00605 case 134: 00606 fdilate_2_67(datad, w, h, wpld, datas, wpls); 00607 break; 00608 case 135: 00609 ferode_2_67(datad, w, h, wpld, datas, wpls); 00610 break; 00611 case 136: 00612 fdilate_2_68(datad, w, h, wpld, datas, wpls); 00613 break; 00614 case 137: 00615 ferode_2_68(datad, w, h, wpld, datas, wpls); 00616 break; 00617 case 138: 00618 fdilate_2_69(datad, w, h, wpld, datas, wpls); 00619 break; 00620 case 139: 00621 ferode_2_69(datad, w, h, wpld, datas, wpls); 00622 break; 00623 case 140: 00624 fdilate_2_70(datad, w, h, wpld, datas, wpls); 00625 break; 00626 case 141: 00627 ferode_2_70(datad, w, h, wpld, datas, wpls); 00628 break; 00629 case 142: 00630 fdilate_2_71(datad, w, h, wpld, datas, wpls); 00631 break; 00632 case 143: 00633 ferode_2_71(datad, w, h, wpld, datas, wpls); 00634 break; 00635 case 144: 00636 fdilate_2_72(datad, w, h, wpld, datas, wpls); 00637 break; 00638 case 145: 00639 ferode_2_72(datad, w, h, wpld, datas, wpls); 00640 break; 00641 case 146: 00642 fdilate_2_73(datad, w, h, wpld, datas, wpls); 00643 break; 00644 case 147: 00645 ferode_2_73(datad, w, h, wpld, datas, wpls); 00646 break; 00647 case 148: 00648 fdilate_2_74(datad, w, h, wpld, datas, wpls); 00649 break; 00650 case 149: 00651 ferode_2_74(datad, w, h, wpld, datas, wpls); 00652 break; 00653 case 150: 00654 fdilate_2_75(datad, w, h, wpld, datas, wpls); 00655 break; 00656 case 151: 00657 ferode_2_75(datad, w, h, wpld, datas, wpls); 00658 break; 00659 } 00660 00661 return 0; 00662 } 00663 00664 00665 /*--------------------------------------------------------------------------* 00666 * Low-level auto-generated static routines * 00667 *--------------------------------------------------------------------------*/ 00668 /* 00669 * N.B. In all the low-level routines, the part of the image 00670 * that is accessed has been clipped by 32 pixels on 00671 * all four sides. This is done in the higher level 00672 * code by redefining w and h smaller and by moving the 00673 * start-of-image pointers up to the beginning of this 00674 * interior rectangle. 00675 */ 00676 static void 00677 fdilate_2_0(l_uint32 *datad, 00678 l_int32 w, 00679 l_int32 h, 00680 l_int32 wpld, 00681 l_uint32 *datas, 00682 l_int32 wpls) 00683 { 00684 l_int32 i; 00685 register l_int32 j, pwpls; 00686 register l_uint32 *sptr, *dptr; 00687 00688 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00689 00690 for (i = 0; i < h; i++) { 00691 sptr = datas + i * wpls; 00692 dptr = datad + i * wpld; 00693 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00694 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | 00695 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); 00696 } 00697 } 00698 } 00699 00700 static void 00701 ferode_2_0(l_uint32 *datad, 00702 l_int32 w, 00703 l_int32 h, 00704 l_int32 wpld, 00705 l_uint32 *datas, 00706 l_int32 wpls) 00707 { 00708 l_int32 i; 00709 register l_int32 j, pwpls; 00710 register l_uint32 *sptr, *dptr; 00711 00712 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00713 00714 for (i = 0; i < h; i++) { 00715 sptr = datas + i * wpls; 00716 dptr = datad + i * wpld; 00717 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00718 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & 00719 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); 00720 } 00721 } 00722 } 00723 00724 static void 00725 fdilate_2_1(l_uint32 *datad, 00726 l_int32 w, 00727 l_int32 h, 00728 l_int32 wpld, 00729 l_uint32 *datas, 00730 l_int32 wpls) 00731 { 00732 l_int32 i; 00733 register l_int32 j, pwpls; 00734 register l_uint32 *sptr, *dptr; 00735 00736 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00737 00738 for (i = 0; i < h; i++) { 00739 sptr = datas + i * wpls; 00740 dptr = datad + i * wpld; 00741 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00742 *dptr = (*(sptr + wpls)) | 00743 (*(sptr - wpls)); 00744 } 00745 } 00746 } 00747 00748 static void 00749 ferode_2_1(l_uint32 *datad, 00750 l_int32 w, 00751 l_int32 h, 00752 l_int32 wpld, 00753 l_uint32 *datas, 00754 l_int32 wpls) 00755 { 00756 l_int32 i; 00757 register l_int32 j, pwpls; 00758 register l_uint32 *sptr, *dptr; 00759 00760 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00761 00762 for (i = 0; i < h; i++) { 00763 sptr = datas + i * wpls; 00764 dptr = datad + i * wpld; 00765 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00766 *dptr = (*(sptr - wpls)) & 00767 (*(sptr + wpls)); 00768 } 00769 } 00770 } 00771 00772 static void 00773 fdilate_2_2(l_uint32 *datad, 00774 l_int32 w, 00775 l_int32 h, 00776 l_int32 wpld, 00777 l_uint32 *datas, 00778 l_int32 wpls) 00779 { 00780 l_int32 i; 00781 register l_int32 j, pwpls; 00782 register l_uint32 *sptr, *dptr; 00783 00784 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00785 00786 for (i = 0; i < h; i++) { 00787 sptr = datas + i * wpls; 00788 dptr = datad + i * wpld; 00789 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00790 *dptr = (*sptr); 00791 } 00792 } 00793 } 00794 00795 static void 00796 ferode_2_2(l_uint32 *datad, 00797 l_int32 w, 00798 l_int32 h, 00799 l_int32 wpld, 00800 l_uint32 *datas, 00801 l_int32 wpls) 00802 { 00803 l_int32 i; 00804 register l_int32 j, pwpls; 00805 register l_uint32 *sptr, *dptr; 00806 00807 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00808 00809 for (i = 0; i < h; i++) { 00810 sptr = datas + i * wpls; 00811 dptr = datad + i * wpld; 00812 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00813 *dptr = (*sptr); 00814 } 00815 } 00816 } 00817 00818 static void 00819 fdilate_2_3(l_uint32 *datad, 00820 l_int32 w, 00821 l_int32 h, 00822 l_int32 wpld, 00823 l_uint32 *datas, 00824 l_int32 wpls) 00825 { 00826 l_int32 i; 00827 register l_int32 j, pwpls; 00828 register l_uint32 *sptr, *dptr; 00829 00830 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00831 00832 for (i = 0; i < h; i++) { 00833 sptr = datas + i * wpls; 00834 dptr = datad + i * wpld; 00835 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00836 *dptr = (*sptr); 00837 } 00838 } 00839 } 00840 00841 static void 00842 ferode_2_3(l_uint32 *datad, 00843 l_int32 w, 00844 l_int32 h, 00845 l_int32 wpld, 00846 l_uint32 *datas, 00847 l_int32 wpls) 00848 { 00849 l_int32 i; 00850 register l_int32 j, pwpls; 00851 register l_uint32 *sptr, *dptr; 00852 00853 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00854 00855 for (i = 0; i < h; i++) { 00856 sptr = datas + i * wpls; 00857 dptr = datad + i * wpld; 00858 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00859 *dptr = (*sptr); 00860 } 00861 } 00862 } 00863 00864 static void 00865 fdilate_2_4(l_uint32 *datad, 00866 l_int32 w, 00867 l_int32 h, 00868 l_int32 wpld, 00869 l_uint32 *datas, 00870 l_int32 wpls) 00871 { 00872 l_int32 i; 00873 register l_int32 j, pwpls; 00874 register l_uint32 *sptr, *dptr; 00875 00876 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00877 00878 for (i = 0; i < h; i++) { 00879 sptr = datas + i * wpls; 00880 dptr = datad + i * wpld; 00881 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00882 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 00883 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); 00884 } 00885 } 00886 } 00887 00888 static void 00889 ferode_2_4(l_uint32 *datad, 00890 l_int32 w, 00891 l_int32 h, 00892 l_int32 wpld, 00893 l_uint32 *datas, 00894 l_int32 wpls) 00895 { 00896 l_int32 i; 00897 register l_int32 j, pwpls; 00898 register l_uint32 *sptr, *dptr; 00899 00900 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00901 00902 for (i = 0; i < h; i++) { 00903 sptr = datas + i * wpls; 00904 dptr = datad + i * wpld; 00905 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00906 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 00907 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); 00908 } 00909 } 00910 } 00911 00912 static void 00913 fdilate_2_5(l_uint32 *datad, 00914 l_int32 w, 00915 l_int32 h, 00916 l_int32 wpld, 00917 l_uint32 *datas, 00918 l_int32 wpls) 00919 { 00920 l_int32 i; 00921 register l_int32 j, pwpls; 00922 register l_uint32 *sptr, *dptr; 00923 l_int32 wpls2; 00924 00925 wpls2 = 2 * wpls; 00926 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00927 00928 for (i = 0; i < h; i++) { 00929 sptr = datas + i * wpls; 00930 dptr = datad + i * wpld; 00931 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00932 *dptr = (*(sptr + wpls2)) | 00933 (*(sptr - wpls)); 00934 } 00935 } 00936 } 00937 00938 static void 00939 ferode_2_5(l_uint32 *datad, 00940 l_int32 w, 00941 l_int32 h, 00942 l_int32 wpld, 00943 l_uint32 *datas, 00944 l_int32 wpls) 00945 { 00946 l_int32 i; 00947 register l_int32 j, pwpls; 00948 register l_uint32 *sptr, *dptr; 00949 l_int32 wpls2; 00950 00951 wpls2 = 2 * wpls; 00952 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00953 00954 for (i = 0; i < h; i++) { 00955 sptr = datas + i * wpls; 00956 dptr = datad + i * wpld; 00957 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00958 *dptr = (*(sptr - wpls2)) & 00959 (*(sptr + wpls)); 00960 } 00961 } 00962 } 00963 00964 static void 00965 fdilate_2_6(l_uint32 *datad, 00966 l_int32 w, 00967 l_int32 h, 00968 l_int32 wpld, 00969 l_uint32 *datas, 00970 l_int32 wpls) 00971 { 00972 l_int32 i; 00973 register l_int32 j, pwpls; 00974 register l_uint32 *sptr, *dptr; 00975 00976 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 00977 00978 for (i = 0; i < h; i++) { 00979 sptr = datas + i * wpls; 00980 dptr = datad + i * wpld; 00981 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 00982 *dptr = (*sptr); 00983 } 00984 } 00985 } 00986 00987 static void 00988 ferode_2_6(l_uint32 *datad, 00989 l_int32 w, 00990 l_int32 h, 00991 l_int32 wpld, 00992 l_uint32 *datas, 00993 l_int32 wpls) 00994 { 00995 l_int32 i; 00996 register l_int32 j, pwpls; 00997 register l_uint32 *sptr, *dptr; 00998 00999 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01000 01001 for (i = 0; i < h; i++) { 01002 sptr = datas + i * wpls; 01003 dptr = datad + i * wpld; 01004 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01005 *dptr = (*sptr); 01006 } 01007 } 01008 } 01009 01010 static void 01011 fdilate_2_7(l_uint32 *datad, 01012 l_int32 w, 01013 l_int32 h, 01014 l_int32 wpld, 01015 l_uint32 *datas, 01016 l_int32 wpls) 01017 { 01018 l_int32 i; 01019 register l_int32 j, pwpls; 01020 register l_uint32 *sptr, *dptr; 01021 01022 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01023 01024 for (i = 0; i < h; i++) { 01025 sptr = datas + i * wpls; 01026 dptr = datad + i * wpld; 01027 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01028 *dptr = (*sptr); 01029 } 01030 } 01031 } 01032 01033 static void 01034 ferode_2_7(l_uint32 *datad, 01035 l_int32 w, 01036 l_int32 h, 01037 l_int32 wpld, 01038 l_uint32 *datas, 01039 l_int32 wpls) 01040 { 01041 l_int32 i; 01042 register l_int32 j, pwpls; 01043 register l_uint32 *sptr, *dptr; 01044 01045 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01046 01047 for (i = 0; i < h; i++) { 01048 sptr = datas + i * wpls; 01049 dptr = datad + i * wpld; 01050 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01051 *dptr = (*sptr); 01052 } 01053 } 01054 } 01055 01056 static void 01057 fdilate_2_8(l_uint32 *datad, 01058 l_int32 w, 01059 l_int32 h, 01060 l_int32 wpld, 01061 l_uint32 *datas, 01062 l_int32 wpls) 01063 { 01064 l_int32 i; 01065 register l_int32 j, pwpls; 01066 register l_uint32 *sptr, *dptr; 01067 01068 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01069 01070 for (i = 0; i < h; i++) { 01071 sptr = datas + i * wpls; 01072 dptr = datad + i * wpld; 01073 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01074 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01075 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); 01076 } 01077 } 01078 } 01079 01080 static void 01081 ferode_2_8(l_uint32 *datad, 01082 l_int32 w, 01083 l_int32 h, 01084 l_int32 wpld, 01085 l_uint32 *datas, 01086 l_int32 wpls) 01087 { 01088 l_int32 i; 01089 register l_int32 j, pwpls; 01090 register l_uint32 *sptr, *dptr; 01091 01092 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01093 01094 for (i = 0; i < h; i++) { 01095 sptr = datas + i * wpls; 01096 dptr = datad + i * wpld; 01097 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01098 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01099 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); 01100 } 01101 } 01102 } 01103 01104 static void 01105 fdilate_2_9(l_uint32 *datad, 01106 l_int32 w, 01107 l_int32 h, 01108 l_int32 wpld, 01109 l_uint32 *datas, 01110 l_int32 wpls) 01111 { 01112 l_int32 i; 01113 register l_int32 j, pwpls; 01114 register l_uint32 *sptr, *dptr; 01115 l_int32 wpls2; 01116 01117 wpls2 = 2 * wpls; 01118 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01119 01120 for (i = 0; i < h; i++) { 01121 sptr = datas + i * wpls; 01122 dptr = datad + i * wpld; 01123 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01124 *dptr = (*(sptr + wpls2)) | 01125 (*(sptr - wpls2)); 01126 } 01127 } 01128 } 01129 01130 static void 01131 ferode_2_9(l_uint32 *datad, 01132 l_int32 w, 01133 l_int32 h, 01134 l_int32 wpld, 01135 l_uint32 *datas, 01136 l_int32 wpls) 01137 { 01138 l_int32 i; 01139 register l_int32 j, pwpls; 01140 register l_uint32 *sptr, *dptr; 01141 l_int32 wpls2; 01142 01143 wpls2 = 2 * wpls; 01144 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01145 01146 for (i = 0; i < h; i++) { 01147 sptr = datas + i * wpls; 01148 dptr = datad + i * wpld; 01149 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01150 *dptr = (*(sptr - wpls2)) & 01151 (*(sptr + wpls2)); 01152 } 01153 } 01154 } 01155 01156 static void 01157 fdilate_2_10(l_uint32 *datad, 01158 l_int32 w, 01159 l_int32 h, 01160 l_int32 wpld, 01161 l_uint32 *datas, 01162 l_int32 wpls) 01163 { 01164 l_int32 i; 01165 register l_int32 j, pwpls; 01166 register l_uint32 *sptr, *dptr; 01167 01168 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01169 01170 for (i = 0; i < h; i++) { 01171 sptr = datas + i * wpls; 01172 dptr = datad + i * wpld; 01173 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01174 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01175 (*sptr) | 01176 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); 01177 } 01178 } 01179 } 01180 01181 static void 01182 ferode_2_10(l_uint32 *datad, 01183 l_int32 w, 01184 l_int32 h, 01185 l_int32 wpld, 01186 l_uint32 *datas, 01187 l_int32 wpls) 01188 { 01189 l_int32 i; 01190 register l_int32 j, pwpls; 01191 register l_uint32 *sptr, *dptr; 01192 01193 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01194 01195 for (i = 0; i < h; i++) { 01196 sptr = datas + i * wpls; 01197 dptr = datad + i * wpld; 01198 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01199 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01200 (*sptr) & 01201 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); 01202 } 01203 } 01204 } 01205 01206 static void 01207 fdilate_2_11(l_uint32 *datad, 01208 l_int32 w, 01209 l_int32 h, 01210 l_int32 wpld, 01211 l_uint32 *datas, 01212 l_int32 wpls) 01213 { 01214 l_int32 i; 01215 register l_int32 j, pwpls; 01216 register l_uint32 *sptr, *dptr; 01217 l_int32 wpls3; 01218 01219 wpls3 = 3 * wpls; 01220 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01221 01222 for (i = 0; i < h; i++) { 01223 sptr = datas + i * wpls; 01224 dptr = datad + i * wpld; 01225 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01226 *dptr = (*(sptr + wpls3)) | 01227 (*sptr) | 01228 (*(sptr - wpls3)); 01229 } 01230 } 01231 } 01232 01233 static void 01234 ferode_2_11(l_uint32 *datad, 01235 l_int32 w, 01236 l_int32 h, 01237 l_int32 wpld, 01238 l_uint32 *datas, 01239 l_int32 wpls) 01240 { 01241 l_int32 i; 01242 register l_int32 j, pwpls; 01243 register l_uint32 *sptr, *dptr; 01244 l_int32 wpls3; 01245 01246 wpls3 = 3 * wpls; 01247 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01248 01249 for (i = 0; i < h; i++) { 01250 sptr = datas + i * wpls; 01251 dptr = datad + i * wpld; 01252 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01253 *dptr = (*(sptr - wpls3)) & 01254 (*sptr) & 01255 (*(sptr + wpls3)); 01256 } 01257 } 01258 } 01259 01260 static void 01261 fdilate_2_12(l_uint32 *datad, 01262 l_int32 w, 01263 l_int32 h, 01264 l_int32 wpld, 01265 l_uint32 *datas, 01266 l_int32 wpls) 01267 { 01268 l_int32 i; 01269 register l_int32 j, pwpls; 01270 register l_uint32 *sptr, *dptr; 01271 01272 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01273 01274 for (i = 0; i < h; i++) { 01275 sptr = datas + i * wpls; 01276 dptr = datad + i * wpld; 01277 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01278 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01279 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); 01280 } 01281 } 01282 } 01283 01284 static void 01285 ferode_2_12(l_uint32 *datad, 01286 l_int32 w, 01287 l_int32 h, 01288 l_int32 wpld, 01289 l_uint32 *datas, 01290 l_int32 wpls) 01291 { 01292 l_int32 i; 01293 register l_int32 j, pwpls; 01294 register l_uint32 *sptr, *dptr; 01295 01296 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01297 01298 for (i = 0; i < h; i++) { 01299 sptr = datas + i * wpls; 01300 dptr = datad + i * wpld; 01301 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01302 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01303 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); 01304 } 01305 } 01306 } 01307 01308 static void 01309 fdilate_2_13(l_uint32 *datad, 01310 l_int32 w, 01311 l_int32 h, 01312 l_int32 wpld, 01313 l_uint32 *datas, 01314 l_int32 wpls) 01315 { 01316 l_int32 i; 01317 register l_int32 j, pwpls; 01318 register l_uint32 *sptr, *dptr; 01319 l_int32 wpls2; 01320 l_int32 wpls3; 01321 01322 wpls2 = 2 * wpls; 01323 wpls3 = 3 * wpls; 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 + wpls3)) | 01331 (*(sptr - wpls2)); 01332 } 01333 } 01334 } 01335 01336 static void 01337 ferode_2_13(l_uint32 *datad, 01338 l_int32 w, 01339 l_int32 h, 01340 l_int32 wpld, 01341 l_uint32 *datas, 01342 l_int32 wpls) 01343 { 01344 l_int32 i; 01345 register l_int32 j, pwpls; 01346 register l_uint32 *sptr, *dptr; 01347 l_int32 wpls2; 01348 l_int32 wpls3; 01349 01350 wpls2 = 2 * wpls; 01351 wpls3 = 3 * wpls; 01352 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01353 01354 for (i = 0; i < h; i++) { 01355 sptr = datas + i * wpls; 01356 dptr = datad + i * wpld; 01357 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01358 *dptr = (*(sptr - wpls3)) & 01359 (*(sptr + wpls2)); 01360 } 01361 } 01362 } 01363 01364 static void 01365 fdilate_2_14(l_uint32 *datad, 01366 l_int32 w, 01367 l_int32 h, 01368 l_int32 wpld, 01369 l_uint32 *datas, 01370 l_int32 wpls) 01371 { 01372 l_int32 i; 01373 register l_int32 j, pwpls; 01374 register l_uint32 *sptr, *dptr; 01375 01376 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01377 01378 for (i = 0; i < h; i++) { 01379 sptr = datas + i * wpls; 01380 dptr = datad + i * wpld; 01381 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01382 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01383 (*sptr) | 01384 ((*(sptr) >> 4) | (*(sptr - 1) << 28)); 01385 } 01386 } 01387 } 01388 01389 static void 01390 ferode_2_14(l_uint32 *datad, 01391 l_int32 w, 01392 l_int32 h, 01393 l_int32 wpld, 01394 l_uint32 *datas, 01395 l_int32 wpls) 01396 { 01397 l_int32 i; 01398 register l_int32 j, pwpls; 01399 register l_uint32 *sptr, *dptr; 01400 01401 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01402 01403 for (i = 0; i < h; i++) { 01404 sptr = datas + i * wpls; 01405 dptr = datad + i * wpld; 01406 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01407 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01408 (*sptr) & 01409 ((*(sptr) << 4) | (*(sptr + 1) >> 28)); 01410 } 01411 } 01412 } 01413 01414 static void 01415 fdilate_2_15(l_uint32 *datad, 01416 l_int32 w, 01417 l_int32 h, 01418 l_int32 wpld, 01419 l_uint32 *datas, 01420 l_int32 wpls) 01421 { 01422 l_int32 i; 01423 register l_int32 j, pwpls; 01424 register l_uint32 *sptr, *dptr; 01425 l_int32 wpls4; 01426 01427 wpls4 = 4 * wpls; 01428 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01429 01430 for (i = 0; i < h; i++) { 01431 sptr = datas + i * wpls; 01432 dptr = datad + i * wpld; 01433 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01434 *dptr = (*(sptr + wpls4)) | 01435 (*sptr) | 01436 (*(sptr - wpls4)); 01437 } 01438 } 01439 } 01440 01441 static void 01442 ferode_2_15(l_uint32 *datad, 01443 l_int32 w, 01444 l_int32 h, 01445 l_int32 wpld, 01446 l_uint32 *datas, 01447 l_int32 wpls) 01448 { 01449 l_int32 i; 01450 register l_int32 j, pwpls; 01451 register l_uint32 *sptr, *dptr; 01452 l_int32 wpls4; 01453 01454 wpls4 = 4 * wpls; 01455 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01456 01457 for (i = 0; i < h; i++) { 01458 sptr = datas + i * wpls; 01459 dptr = datad + i * wpld; 01460 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01461 *dptr = (*(sptr - wpls4)) & 01462 (*sptr) & 01463 (*(sptr + wpls4)); 01464 } 01465 } 01466 } 01467 01468 static void 01469 fdilate_2_16(l_uint32 *datad, 01470 l_int32 w, 01471 l_int32 h, 01472 l_int32 wpld, 01473 l_uint32 *datas, 01474 l_int32 wpls) 01475 { 01476 l_int32 i; 01477 register l_int32 j, pwpls; 01478 register l_uint32 *sptr, *dptr; 01479 01480 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01481 01482 for (i = 0; i < h; i++) { 01483 sptr = datas + i * wpls; 01484 dptr = datad + i * wpld; 01485 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01486 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 01487 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); 01488 } 01489 } 01490 } 01491 01492 static void 01493 ferode_2_16(l_uint32 *datad, 01494 l_int32 w, 01495 l_int32 h, 01496 l_int32 wpld, 01497 l_uint32 *datas, 01498 l_int32 wpls) 01499 { 01500 l_int32 i; 01501 register l_int32 j, pwpls; 01502 register l_uint32 *sptr, *dptr; 01503 01504 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01505 01506 for (i = 0; i < h; i++) { 01507 sptr = datas + i * wpls; 01508 dptr = datad + i * wpld; 01509 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01510 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 01511 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); 01512 } 01513 } 01514 } 01515 01516 static void 01517 fdilate_2_17(l_uint32 *datad, 01518 l_int32 w, 01519 l_int32 h, 01520 l_int32 wpld, 01521 l_uint32 *datas, 01522 l_int32 wpls) 01523 { 01524 l_int32 i; 01525 register l_int32 j, pwpls; 01526 register l_uint32 *sptr, *dptr; 01527 l_int32 wpls3; 01528 l_int32 wpls4; 01529 01530 wpls3 = 3 * wpls; 01531 wpls4 = 4 * wpls; 01532 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01533 01534 for (i = 0; i < h; i++) { 01535 sptr = datas + i * wpls; 01536 dptr = datad + i * wpld; 01537 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01538 *dptr = (*(sptr + wpls4)) | 01539 (*(sptr - wpls3)); 01540 } 01541 } 01542 } 01543 01544 static void 01545 ferode_2_17(l_uint32 *datad, 01546 l_int32 w, 01547 l_int32 h, 01548 l_int32 wpld, 01549 l_uint32 *datas, 01550 l_int32 wpls) 01551 { 01552 l_int32 i; 01553 register l_int32 j, pwpls; 01554 register l_uint32 *sptr, *dptr; 01555 l_int32 wpls3; 01556 l_int32 wpls4; 01557 01558 wpls3 = 3 * wpls; 01559 wpls4 = 4 * wpls; 01560 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01561 01562 for (i = 0; i < h; i++) { 01563 sptr = datas + i * wpls; 01564 dptr = datad + i * wpld; 01565 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01566 *dptr = (*(sptr - wpls4)) & 01567 (*(sptr + wpls3)); 01568 } 01569 } 01570 } 01571 01572 static void 01573 fdilate_2_18(l_uint32 *datad, 01574 l_int32 w, 01575 l_int32 h, 01576 l_int32 wpld, 01577 l_uint32 *datas, 01578 l_int32 wpls) 01579 { 01580 l_int32 i; 01581 register l_int32 j, pwpls; 01582 register l_uint32 *sptr, *dptr; 01583 01584 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01585 01586 for (i = 0; i < h; i++) { 01587 sptr = datas + i * wpls; 01588 dptr = datad + i * wpld; 01589 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01590 *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 01591 (*sptr) | 01592 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); 01593 } 01594 } 01595 } 01596 01597 static void 01598 ferode_2_18(l_uint32 *datad, 01599 l_int32 w, 01600 l_int32 h, 01601 l_int32 wpld, 01602 l_uint32 *datas, 01603 l_int32 wpls) 01604 { 01605 l_int32 i; 01606 register l_int32 j, pwpls; 01607 register l_uint32 *sptr, *dptr; 01608 01609 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01610 01611 for (i = 0; i < h; i++) { 01612 sptr = datas + i * wpls; 01613 dptr = datad + i * wpld; 01614 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01615 *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 01616 (*sptr) & 01617 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); 01618 } 01619 } 01620 } 01621 01622 static void 01623 fdilate_2_19(l_uint32 *datad, 01624 l_int32 w, 01625 l_int32 h, 01626 l_int32 wpld, 01627 l_uint32 *datas, 01628 l_int32 wpls) 01629 { 01630 l_int32 i; 01631 register l_int32 j, pwpls; 01632 register l_uint32 *sptr, *dptr; 01633 l_int32 wpls5; 01634 01635 wpls5 = 5 * wpls; 01636 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01637 01638 for (i = 0; i < h; i++) { 01639 sptr = datas + i * wpls; 01640 dptr = datad + i * wpld; 01641 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01642 *dptr = (*(sptr + wpls5)) | 01643 (*sptr) | 01644 (*(sptr - wpls5)); 01645 } 01646 } 01647 } 01648 01649 static void 01650 ferode_2_19(l_uint32 *datad, 01651 l_int32 w, 01652 l_int32 h, 01653 l_int32 wpld, 01654 l_uint32 *datas, 01655 l_int32 wpls) 01656 { 01657 l_int32 i; 01658 register l_int32 j, pwpls; 01659 register l_uint32 *sptr, *dptr; 01660 l_int32 wpls5; 01661 01662 wpls5 = 5 * wpls; 01663 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01664 01665 for (i = 0; i < h; i++) { 01666 sptr = datas + i * wpls; 01667 dptr = datad + i * wpld; 01668 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01669 *dptr = (*(sptr - wpls5)) & 01670 (*sptr) & 01671 (*(sptr + wpls5)); 01672 } 01673 } 01674 } 01675 01676 static void 01677 fdilate_2_20(l_uint32 *datad, 01678 l_int32 w, 01679 l_int32 h, 01680 l_int32 wpld, 01681 l_uint32 *datas, 01682 l_int32 wpls) 01683 { 01684 l_int32 i; 01685 register l_int32 j, pwpls; 01686 register l_uint32 *sptr, *dptr; 01687 01688 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01689 01690 for (i = 0; i < h; i++) { 01691 sptr = datas + i * wpls; 01692 dptr = datad + i * wpld; 01693 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01694 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01695 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | 01696 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01697 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); 01698 } 01699 } 01700 } 01701 01702 static void 01703 ferode_2_20(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) >> 6) | (*(sptr - 1) << 26)) & 01721 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & 01722 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01723 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); 01724 } 01725 } 01726 } 01727 01728 static void 01729 fdilate_2_21(l_uint32 *datad, 01730 l_int32 w, 01731 l_int32 h, 01732 l_int32 wpld, 01733 l_uint32 *datas, 01734 l_int32 wpls) 01735 { 01736 l_int32 i; 01737 register l_int32 j, pwpls; 01738 register l_uint32 *sptr, *dptr; 01739 l_int32 wpls2; 01740 l_int32 wpls6; 01741 01742 wpls2 = 2 * wpls; 01743 wpls6 = 6 * wpls; 01744 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01745 01746 for (i = 0; i < h; i++) { 01747 sptr = datas + i * wpls; 01748 dptr = datad + i * wpld; 01749 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01750 *dptr = (*(sptr + wpls6)) | 01751 (*(sptr + wpls2)) | 01752 (*(sptr - wpls2)) | 01753 (*(sptr - wpls6)); 01754 } 01755 } 01756 } 01757 01758 static void 01759 ferode_2_21(l_uint32 *datad, 01760 l_int32 w, 01761 l_int32 h, 01762 l_int32 wpld, 01763 l_uint32 *datas, 01764 l_int32 wpls) 01765 { 01766 l_int32 i; 01767 register l_int32 j, pwpls; 01768 register l_uint32 *sptr, *dptr; 01769 l_int32 wpls2; 01770 l_int32 wpls6; 01771 01772 wpls2 = 2 * wpls; 01773 wpls6 = 6 * wpls; 01774 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01775 01776 for (i = 0; i < h; i++) { 01777 sptr = datas + i * wpls; 01778 dptr = datad + i * wpld; 01779 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01780 *dptr = (*(sptr - wpls6)) & 01781 (*(sptr - wpls2)) & 01782 (*(sptr + wpls2)) & 01783 (*(sptr + wpls6)); 01784 } 01785 } 01786 } 01787 01788 static void 01789 fdilate_2_22(l_uint32 *datad, 01790 l_int32 w, 01791 l_int32 h, 01792 l_int32 wpld, 01793 l_uint32 *datas, 01794 l_int32 wpls) 01795 { 01796 l_int32 i; 01797 register l_int32 j, pwpls; 01798 register l_uint32 *sptr, *dptr; 01799 01800 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01801 01802 for (i = 0; i < h; i++) { 01803 sptr = datas + i * wpls; 01804 dptr = datad + i * wpld; 01805 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01806 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 01807 (*sptr) | 01808 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); 01809 } 01810 } 01811 } 01812 01813 static void 01814 ferode_2_22(l_uint32 *datad, 01815 l_int32 w, 01816 l_int32 h, 01817 l_int32 wpld, 01818 l_uint32 *datas, 01819 l_int32 wpls) 01820 { 01821 l_int32 i; 01822 register l_int32 j, pwpls; 01823 register l_uint32 *sptr, *dptr; 01824 01825 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01826 01827 for (i = 0; i < h; i++) { 01828 sptr = datas + i * wpls; 01829 dptr = datad + i * wpld; 01830 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01831 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 01832 (*sptr) & 01833 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); 01834 } 01835 } 01836 } 01837 01838 static void 01839 fdilate_2_23(l_uint32 *datad, 01840 l_int32 w, 01841 l_int32 h, 01842 l_int32 wpld, 01843 l_uint32 *datas, 01844 l_int32 wpls) 01845 { 01846 l_int32 i; 01847 register l_int32 j, pwpls; 01848 register l_uint32 *sptr, *dptr; 01849 l_int32 wpls6; 01850 01851 wpls6 = 6 * wpls; 01852 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01853 01854 for (i = 0; i < h; i++) { 01855 sptr = datas + i * wpls; 01856 dptr = datad + i * wpld; 01857 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01858 *dptr = (*(sptr + wpls6)) | 01859 (*sptr) | 01860 (*(sptr - wpls6)); 01861 } 01862 } 01863 } 01864 01865 static void 01866 ferode_2_23(l_uint32 *datad, 01867 l_int32 w, 01868 l_int32 h, 01869 l_int32 wpld, 01870 l_uint32 *datas, 01871 l_int32 wpls) 01872 { 01873 l_int32 i; 01874 register l_int32 j, pwpls; 01875 register l_uint32 *sptr, *dptr; 01876 l_int32 wpls6; 01877 01878 wpls6 = 6 * wpls; 01879 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01880 01881 for (i = 0; i < h; i++) { 01882 sptr = datas + i * wpls; 01883 dptr = datad + i * wpld; 01884 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01885 *dptr = (*(sptr - wpls6)) & 01886 (*sptr) & 01887 (*(sptr + wpls6)); 01888 } 01889 } 01890 } 01891 01892 static void 01893 fdilate_2_24(l_uint32 *datad, 01894 l_int32 w, 01895 l_int32 h, 01896 l_int32 wpld, 01897 l_uint32 *datas, 01898 l_int32 wpls) 01899 { 01900 l_int32 i; 01901 register l_int32 j, pwpls; 01902 register l_uint32 *sptr, *dptr; 01903 01904 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01905 01906 for (i = 0; i < h; i++) { 01907 sptr = datas + i * wpls; 01908 dptr = datad + i * wpld; 01909 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01910 *dptr = ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 01911 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 01912 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | 01913 ((*(sptr) >> 7) | (*(sptr - 1) << 25)); 01914 } 01915 } 01916 } 01917 01918 static void 01919 ferode_2_24(l_uint32 *datad, 01920 l_int32 w, 01921 l_int32 h, 01922 l_int32 wpld, 01923 l_uint32 *datas, 01924 l_int32 wpls) 01925 { 01926 l_int32 i; 01927 register l_int32 j, pwpls; 01928 register l_uint32 *sptr, *dptr; 01929 01930 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01931 01932 for (i = 0; i < h; i++) { 01933 sptr = datas + i * wpls; 01934 dptr = datad + i * wpld; 01935 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01936 *dptr = ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 01937 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 01938 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & 01939 ((*(sptr) << 7) | (*(sptr + 1) >> 25)); 01940 } 01941 } 01942 } 01943 01944 static void 01945 fdilate_2_25(l_uint32 *datad, 01946 l_int32 w, 01947 l_int32 h, 01948 l_int32 wpld, 01949 l_uint32 *datas, 01950 l_int32 wpls) 01951 { 01952 l_int32 i; 01953 register l_int32 j, pwpls; 01954 register l_uint32 *sptr, *dptr; 01955 l_int32 wpls2; 01956 l_int32 wpls3; 01957 l_int32 wpls7; 01958 l_int32 wpls8; 01959 01960 wpls2 = 2 * wpls; 01961 wpls3 = 3 * wpls; 01962 wpls7 = 7 * wpls; 01963 wpls8 = 8 * wpls; 01964 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01965 01966 for (i = 0; i < h; i++) { 01967 sptr = datas + i * wpls; 01968 dptr = datad + i * wpld; 01969 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 01970 *dptr = (*(sptr + wpls8)) | 01971 (*(sptr + wpls3)) | 01972 (*(sptr - wpls2)) | 01973 (*(sptr - wpls7)); 01974 } 01975 } 01976 } 01977 01978 static void 01979 ferode_2_25(l_uint32 *datad, 01980 l_int32 w, 01981 l_int32 h, 01982 l_int32 wpld, 01983 l_uint32 *datas, 01984 l_int32 wpls) 01985 { 01986 l_int32 i; 01987 register l_int32 j, pwpls; 01988 register l_uint32 *sptr, *dptr; 01989 l_int32 wpls2; 01990 l_int32 wpls3; 01991 l_int32 wpls7; 01992 l_int32 wpls8; 01993 01994 wpls2 = 2 * wpls; 01995 wpls3 = 3 * wpls; 01996 wpls7 = 7 * wpls; 01997 wpls8 = 8 * wpls; 01998 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 01999 02000 for (i = 0; i < h; i++) { 02001 sptr = datas + i * wpls; 02002 dptr = datad + i * wpld; 02003 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02004 *dptr = (*(sptr - wpls8)) & 02005 (*(sptr - wpls3)) & 02006 (*(sptr + wpls2)) & 02007 (*(sptr + wpls7)); 02008 } 02009 } 02010 } 02011 02012 static void 02013 fdilate_2_26(l_uint32 *datad, 02014 l_int32 w, 02015 l_int32 h, 02016 l_int32 wpld, 02017 l_uint32 *datas, 02018 l_int32 wpls) 02019 { 02020 l_int32 i; 02021 register l_int32 j, pwpls; 02022 register l_uint32 *sptr, *dptr; 02023 02024 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02025 02026 for (i = 0; i < h; i++) { 02027 sptr = datas + i * wpls; 02028 dptr = datad + i * wpld; 02029 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02030 *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 02031 (*sptr) | 02032 ((*(sptr) >> 7) | (*(sptr - 1) << 25)); 02033 } 02034 } 02035 } 02036 02037 static void 02038 ferode_2_26(l_uint32 *datad, 02039 l_int32 w, 02040 l_int32 h, 02041 l_int32 wpld, 02042 l_uint32 *datas, 02043 l_int32 wpls) 02044 { 02045 l_int32 i; 02046 register l_int32 j, pwpls; 02047 register l_uint32 *sptr, *dptr; 02048 02049 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02050 02051 for (i = 0; i < h; i++) { 02052 sptr = datas + i * wpls; 02053 dptr = datad + i * wpld; 02054 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02055 *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 02056 (*sptr) & 02057 ((*(sptr) << 7) | (*(sptr + 1) >> 25)); 02058 } 02059 } 02060 } 02061 02062 static void 02063 fdilate_2_27(l_uint32 *datad, 02064 l_int32 w, 02065 l_int32 h, 02066 l_int32 wpld, 02067 l_uint32 *datas, 02068 l_int32 wpls) 02069 { 02070 l_int32 i; 02071 register l_int32 j, pwpls; 02072 register l_uint32 *sptr, *dptr; 02073 l_int32 wpls7; 02074 02075 wpls7 = 7 * wpls; 02076 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02077 02078 for (i = 0; i < h; i++) { 02079 sptr = datas + i * wpls; 02080 dptr = datad + i * wpld; 02081 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02082 *dptr = (*(sptr + wpls7)) | 02083 (*sptr) | 02084 (*(sptr - wpls7)); 02085 } 02086 } 02087 } 02088 02089 static void 02090 ferode_2_27(l_uint32 *datad, 02091 l_int32 w, 02092 l_int32 h, 02093 l_int32 wpld, 02094 l_uint32 *datas, 02095 l_int32 wpls) 02096 { 02097 l_int32 i; 02098 register l_int32 j, pwpls; 02099 register l_uint32 *sptr, *dptr; 02100 l_int32 wpls7; 02101 02102 wpls7 = 7 * wpls; 02103 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02104 02105 for (i = 0; i < h; i++) { 02106 sptr = datas + i * wpls; 02107 dptr = datad + i * wpld; 02108 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02109 *dptr = (*(sptr - wpls7)) & 02110 (*sptr) & 02111 (*(sptr + wpls7)); 02112 } 02113 } 02114 } 02115 02116 static void 02117 fdilate_2_28(l_uint32 *datad, 02118 l_int32 w, 02119 l_int32 h, 02120 l_int32 wpld, 02121 l_uint32 *datas, 02122 l_int32 wpls) 02123 { 02124 l_int32 i; 02125 register l_int32 j, pwpls; 02126 register l_uint32 *sptr, *dptr; 02127 02128 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02129 02130 for (i = 0; i < h; i++) { 02131 sptr = datas + i * wpls; 02132 dptr = datad + i * wpld; 02133 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02134 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02135 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); 02136 } 02137 } 02138 } 02139 02140 static void 02141 ferode_2_28(l_uint32 *datad, 02142 l_int32 w, 02143 l_int32 h, 02144 l_int32 wpld, 02145 l_uint32 *datas, 02146 l_int32 wpls) 02147 { 02148 l_int32 i; 02149 register l_int32 j, pwpls; 02150 register l_uint32 *sptr, *dptr; 02151 02152 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02153 02154 for (i = 0; i < h; i++) { 02155 sptr = datas + i * wpls; 02156 dptr = datad + i * wpld; 02157 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02158 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02159 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); 02160 } 02161 } 02162 } 02163 02164 static void 02165 fdilate_2_29(l_uint32 *datad, 02166 l_int32 w, 02167 l_int32 h, 02168 l_int32 wpld, 02169 l_uint32 *datas, 02170 l_int32 wpls) 02171 { 02172 l_int32 i; 02173 register l_int32 j, pwpls; 02174 register l_uint32 *sptr, *dptr; 02175 l_int32 wpls5; 02176 l_int32 wpls6; 02177 02178 wpls5 = 5 * wpls; 02179 wpls6 = 6 * wpls; 02180 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02181 02182 for (i = 0; i < h; i++) { 02183 sptr = datas + i * wpls; 02184 dptr = datad + i * wpld; 02185 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02186 *dptr = (*(sptr + wpls6)) | 02187 (*(sptr - wpls5)); 02188 } 02189 } 02190 } 02191 02192 static void 02193 ferode_2_29(l_uint32 *datad, 02194 l_int32 w, 02195 l_int32 h, 02196 l_int32 wpld, 02197 l_uint32 *datas, 02198 l_int32 wpls) 02199 { 02200 l_int32 i; 02201 register l_int32 j, pwpls; 02202 register l_uint32 *sptr, *dptr; 02203 l_int32 wpls5; 02204 l_int32 wpls6; 02205 02206 wpls5 = 5 * wpls; 02207 wpls6 = 6 * wpls; 02208 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02209 02210 for (i = 0; i < h; i++) { 02211 sptr = datas + i * wpls; 02212 dptr = datad + i * wpld; 02213 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02214 *dptr = (*(sptr - wpls6)) & 02215 (*(sptr + wpls5)); 02216 } 02217 } 02218 } 02219 02220 static void 02221 fdilate_2_30(l_uint32 *datad, 02222 l_int32 w, 02223 l_int32 h, 02224 l_int32 wpld, 02225 l_uint32 *datas, 02226 l_int32 wpls) 02227 { 02228 l_int32 i; 02229 register l_int32 j, pwpls; 02230 register l_uint32 *sptr, *dptr; 02231 02232 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02233 02234 for (i = 0; i < h; i++) { 02235 sptr = datas + i * wpls; 02236 dptr = datad + i * wpld; 02237 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02238 *dptr = ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02239 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 02240 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02241 ((*(sptr) >> 9) | (*(sptr - 1) << 23)); 02242 } 02243 } 02244 } 02245 02246 static void 02247 ferode_2_30(l_uint32 *datad, 02248 l_int32 w, 02249 l_int32 h, 02250 l_int32 wpld, 02251 l_uint32 *datas, 02252 l_int32 wpls) 02253 { 02254 l_int32 i; 02255 register l_int32 j, pwpls; 02256 register l_uint32 *sptr, *dptr; 02257 02258 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02259 02260 for (i = 0; i < h; i++) { 02261 sptr = datas + i * wpls; 02262 dptr = datad + i * wpld; 02263 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02264 *dptr = ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02265 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 02266 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02267 ((*(sptr) << 9) | (*(sptr + 1) >> 23)); 02268 } 02269 } 02270 } 02271 02272 static void 02273 fdilate_2_31(l_uint32 *datad, 02274 l_int32 w, 02275 l_int32 h, 02276 l_int32 wpld, 02277 l_uint32 *datas, 02278 l_int32 wpls) 02279 { 02280 l_int32 i; 02281 register l_int32 j, pwpls; 02282 register l_uint32 *sptr, *dptr; 02283 l_int32 wpls3; 02284 l_int32 wpls9; 02285 02286 wpls3 = 3 * wpls; 02287 wpls9 = 9 * wpls; 02288 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02289 02290 for (i = 0; i < h; i++) { 02291 sptr = datas + i * wpls; 02292 dptr = datad + i * wpld; 02293 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02294 *dptr = (*(sptr + wpls9)) | 02295 (*(sptr + wpls3)) | 02296 (*(sptr - wpls3)) | 02297 (*(sptr - wpls9)); 02298 } 02299 } 02300 } 02301 02302 static void 02303 ferode_2_31(l_uint32 *datad, 02304 l_int32 w, 02305 l_int32 h, 02306 l_int32 wpld, 02307 l_uint32 *datas, 02308 l_int32 wpls) 02309 { 02310 l_int32 i; 02311 register l_int32 j, pwpls; 02312 register l_uint32 *sptr, *dptr; 02313 l_int32 wpls3; 02314 l_int32 wpls9; 02315 02316 wpls3 = 3 * wpls; 02317 wpls9 = 9 * wpls; 02318 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02319 02320 for (i = 0; i < h; i++) { 02321 sptr = datas + i * wpls; 02322 dptr = datad + i * wpld; 02323 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02324 *dptr = (*(sptr - wpls9)) & 02325 (*(sptr - wpls3)) & 02326 (*(sptr + wpls3)) & 02327 (*(sptr + wpls9)); 02328 } 02329 } 02330 } 02331 02332 static void 02333 fdilate_2_32(l_uint32 *datad, 02334 l_int32 w, 02335 l_int32 h, 02336 l_int32 wpld, 02337 l_uint32 *datas, 02338 l_int32 wpls) 02339 { 02340 l_int32 i; 02341 register l_int32 j, pwpls; 02342 register l_uint32 *sptr, *dptr; 02343 02344 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02345 02346 for (i = 0; i < h; i++) { 02347 sptr = datas + i * wpls; 02348 dptr = datad + i * wpld; 02349 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02350 *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 02351 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 02352 (*sptr) | 02353 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 02354 ((*(sptr) >> 10) | (*(sptr - 1) << 22)); 02355 } 02356 } 02357 } 02358 02359 static void 02360 ferode_2_32(l_uint32 *datad, 02361 l_int32 w, 02362 l_int32 h, 02363 l_int32 wpld, 02364 l_uint32 *datas, 02365 l_int32 wpls) 02366 { 02367 l_int32 i; 02368 register l_int32 j, pwpls; 02369 register l_uint32 *sptr, *dptr; 02370 02371 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02372 02373 for (i = 0; i < h; i++) { 02374 sptr = datas + i * wpls; 02375 dptr = datad + i * wpld; 02376 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02377 *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 02378 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 02379 (*sptr) & 02380 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 02381 ((*(sptr) << 10) | (*(sptr + 1) >> 22)); 02382 } 02383 } 02384 } 02385 02386 static void 02387 fdilate_2_33(l_uint32 *datad, 02388 l_int32 w, 02389 l_int32 h, 02390 l_int32 wpld, 02391 l_uint32 *datas, 02392 l_int32 wpls) 02393 { 02394 l_int32 i; 02395 register l_int32 j, pwpls; 02396 register l_uint32 *sptr, *dptr; 02397 l_int32 wpls5; 02398 l_int32 wpls10; 02399 02400 wpls5 = 5 * wpls; 02401 wpls10 = 10 * wpls; 02402 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02403 02404 for (i = 0; i < h; i++) { 02405 sptr = datas + i * wpls; 02406 dptr = datad + i * wpld; 02407 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02408 *dptr = (*(sptr + wpls10)) | 02409 (*(sptr + wpls5)) | 02410 (*sptr) | 02411 (*(sptr - wpls5)) | 02412 (*(sptr - wpls10)); 02413 } 02414 } 02415 } 02416 02417 static void 02418 ferode_2_33(l_uint32 *datad, 02419 l_int32 w, 02420 l_int32 h, 02421 l_int32 wpld, 02422 l_uint32 *datas, 02423 l_int32 wpls) 02424 { 02425 l_int32 i; 02426 register l_int32 j, pwpls; 02427 register l_uint32 *sptr, *dptr; 02428 l_int32 wpls5; 02429 l_int32 wpls10; 02430 02431 wpls5 = 5 * wpls; 02432 wpls10 = 10 * wpls; 02433 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02434 02435 for (i = 0; i < h; i++) { 02436 sptr = datas + i * wpls; 02437 dptr = datad + i * wpld; 02438 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02439 *dptr = (*(sptr - wpls10)) & 02440 (*(sptr - wpls5)) & 02441 (*sptr) & 02442 (*(sptr + wpls5)) & 02443 (*(sptr + wpls10)); 02444 } 02445 } 02446 } 02447 02448 static void 02449 fdilate_2_34(l_uint32 *datad, 02450 l_int32 w, 02451 l_int32 h, 02452 l_int32 wpld, 02453 l_uint32 *datas, 02454 l_int32 wpls) 02455 { 02456 l_int32 i; 02457 register l_int32 j, pwpls; 02458 register l_uint32 *sptr, *dptr; 02459 02460 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02461 02462 for (i = 0; i < h; i++) { 02463 sptr = datas + i * wpls; 02464 dptr = datad + i * wpld; 02465 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02466 *dptr = ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 02467 (*sptr) | 02468 ((*(sptr) >> 9) | (*(sptr - 1) << 23)); 02469 } 02470 } 02471 } 02472 02473 static void 02474 ferode_2_34(l_uint32 *datad, 02475 l_int32 w, 02476 l_int32 h, 02477 l_int32 wpld, 02478 l_uint32 *datas, 02479 l_int32 wpls) 02480 { 02481 l_int32 i; 02482 register l_int32 j, pwpls; 02483 register l_uint32 *sptr, *dptr; 02484 02485 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02486 02487 for (i = 0; i < h; i++) { 02488 sptr = datas + i * wpls; 02489 dptr = datad + i * wpld; 02490 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02491 *dptr = ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 02492 (*sptr) & 02493 ((*(sptr) << 9) | (*(sptr + 1) >> 23)); 02494 } 02495 } 02496 } 02497 02498 static void 02499 fdilate_2_35(l_uint32 *datad, 02500 l_int32 w, 02501 l_int32 h, 02502 l_int32 wpld, 02503 l_uint32 *datas, 02504 l_int32 wpls) 02505 { 02506 l_int32 i; 02507 register l_int32 j, pwpls; 02508 register l_uint32 *sptr, *dptr; 02509 l_int32 wpls9; 02510 02511 wpls9 = 9 * wpls; 02512 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02513 02514 for (i = 0; i < h; i++) { 02515 sptr = datas + i * wpls; 02516 dptr = datad + i * wpld; 02517 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02518 *dptr = (*(sptr + wpls9)) | 02519 (*sptr) | 02520 (*(sptr - wpls9)); 02521 } 02522 } 02523 } 02524 02525 static void 02526 ferode_2_35(l_uint32 *datad, 02527 l_int32 w, 02528 l_int32 h, 02529 l_int32 wpld, 02530 l_uint32 *datas, 02531 l_int32 wpls) 02532 { 02533 l_int32 i; 02534 register l_int32 j, pwpls; 02535 register l_uint32 *sptr, *dptr; 02536 l_int32 wpls9; 02537 02538 wpls9 = 9 * wpls; 02539 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02540 02541 for (i = 0; i < h; i++) { 02542 sptr = datas + i * wpls; 02543 dptr = datad + i * wpld; 02544 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02545 *dptr = (*(sptr - wpls9)) & 02546 (*sptr) & 02547 (*(sptr + wpls9)); 02548 } 02549 } 02550 } 02551 02552 static void 02553 fdilate_2_36(l_uint32 *datad, 02554 l_int32 w, 02555 l_int32 h, 02556 l_int32 wpld, 02557 l_uint32 *datas, 02558 l_int32 wpls) 02559 { 02560 l_int32 i; 02561 register l_int32 j, pwpls; 02562 register l_uint32 *sptr, *dptr; 02563 02564 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02565 02566 for (i = 0; i < h; i++) { 02567 sptr = datas + i * wpls; 02568 dptr = datad + i * wpld; 02569 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02570 *dptr = ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02571 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02572 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 02573 ((*(sptr) >> 10) | (*(sptr - 1) << 22)); 02574 } 02575 } 02576 } 02577 02578 static void 02579 ferode_2_36(l_uint32 *datad, 02580 l_int32 w, 02581 l_int32 h, 02582 l_int32 wpld, 02583 l_uint32 *datas, 02584 l_int32 wpls) 02585 { 02586 l_int32 i; 02587 register l_int32 j, pwpls; 02588 register l_uint32 *sptr, *dptr; 02589 02590 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02591 02592 for (i = 0; i < h; i++) { 02593 sptr = datas + i * wpls; 02594 dptr = datad + i * wpld; 02595 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02596 *dptr = ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 02597 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02598 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 02599 ((*(sptr) << 10) | (*(sptr + 1) >> 22)); 02600 } 02601 } 02602 } 02603 02604 static void 02605 fdilate_2_37(l_uint32 *datad, 02606 l_int32 w, 02607 l_int32 h, 02608 l_int32 wpld, 02609 l_uint32 *datas, 02610 l_int32 wpls) 02611 { 02612 l_int32 i; 02613 register l_int32 j, pwpls; 02614 register l_uint32 *sptr, *dptr; 02615 l_int32 wpls3; 02616 l_int32 wpls4; 02617 l_int32 wpls10; 02618 l_int32 wpls11; 02619 02620 wpls3 = 3 * wpls; 02621 wpls4 = 4 * wpls; 02622 wpls10 = 10 * wpls; 02623 wpls11 = 11 * wpls; 02624 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02625 02626 for (i = 0; i < h; i++) { 02627 sptr = datas + i * wpls; 02628 dptr = datad + i * wpld; 02629 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02630 *dptr = (*(sptr + wpls11)) | 02631 (*(sptr + wpls4)) | 02632 (*(sptr - wpls3)) | 02633 (*(sptr - wpls10)); 02634 } 02635 } 02636 } 02637 02638 static void 02639 ferode_2_37(l_uint32 *datad, 02640 l_int32 w, 02641 l_int32 h, 02642 l_int32 wpld, 02643 l_uint32 *datas, 02644 l_int32 wpls) 02645 { 02646 l_int32 i; 02647 register l_int32 j, pwpls; 02648 register l_uint32 *sptr, *dptr; 02649 l_int32 wpls3; 02650 l_int32 wpls4; 02651 l_int32 wpls10; 02652 l_int32 wpls11; 02653 02654 wpls3 = 3 * wpls; 02655 wpls4 = 4 * wpls; 02656 wpls10 = 10 * wpls; 02657 wpls11 = 11 * wpls; 02658 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02659 02660 for (i = 0; i < h; i++) { 02661 sptr = datas + i * wpls; 02662 dptr = datad + i * wpld; 02663 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02664 *dptr = (*(sptr - wpls11)) & 02665 (*(sptr - wpls4)) & 02666 (*(sptr + wpls3)) & 02667 (*(sptr + wpls10)); 02668 } 02669 } 02670 } 02671 02672 static void 02673 fdilate_2_38(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) << 12) | (*(sptr + 1) >> 20)) | 02691 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 02692 (*sptr) | 02693 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 02694 ((*(sptr) >> 12) | (*(sptr - 1) << 20)); 02695 } 02696 } 02697 } 02698 02699 static void 02700 ferode_2_38(l_uint32 *datad, 02701 l_int32 w, 02702 l_int32 h, 02703 l_int32 wpld, 02704 l_uint32 *datas, 02705 l_int32 wpls) 02706 { 02707 l_int32 i; 02708 register l_int32 j, pwpls; 02709 register l_uint32 *sptr, *dptr; 02710 02711 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02712 02713 for (i = 0; i < h; i++) { 02714 sptr = datas + i * wpls; 02715 dptr = datad + i * wpld; 02716 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02717 *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02718 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 02719 (*sptr) & 02720 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 02721 ((*(sptr) << 12) | (*(sptr + 1) >> 20)); 02722 } 02723 } 02724 } 02725 02726 static void 02727 fdilate_2_39(l_uint32 *datad, 02728 l_int32 w, 02729 l_int32 h, 02730 l_int32 wpld, 02731 l_uint32 *datas, 02732 l_int32 wpls) 02733 { 02734 l_int32 i; 02735 register l_int32 j, pwpls; 02736 register l_uint32 *sptr, *dptr; 02737 l_int32 wpls6; 02738 l_int32 wpls12; 02739 02740 wpls6 = 6 * wpls; 02741 wpls12 = 12 * wpls; 02742 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02743 02744 for (i = 0; i < h; i++) { 02745 sptr = datas + i * wpls; 02746 dptr = datad + i * wpld; 02747 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02748 *dptr = (*(sptr + wpls12)) | 02749 (*(sptr + wpls6)) | 02750 (*sptr) | 02751 (*(sptr - wpls6)) | 02752 (*(sptr - wpls12)); 02753 } 02754 } 02755 } 02756 02757 static void 02758 ferode_2_39(l_uint32 *datad, 02759 l_int32 w, 02760 l_int32 h, 02761 l_int32 wpld, 02762 l_uint32 *datas, 02763 l_int32 wpls) 02764 { 02765 l_int32 i; 02766 register l_int32 j, pwpls; 02767 register l_uint32 *sptr, *dptr; 02768 l_int32 wpls6; 02769 l_int32 wpls12; 02770 02771 wpls6 = 6 * wpls; 02772 wpls12 = 12 * wpls; 02773 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02774 02775 for (i = 0; i < h; i++) { 02776 sptr = datas + i * wpls; 02777 dptr = datad + i * wpld; 02778 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02779 *dptr = (*(sptr - wpls12)) & 02780 (*(sptr - wpls6)) & 02781 (*sptr) & 02782 (*(sptr + wpls6)) & 02783 (*(sptr + wpls12)); 02784 } 02785 } 02786 } 02787 02788 static void 02789 fdilate_2_40(l_uint32 *datad, 02790 l_int32 w, 02791 l_int32 h, 02792 l_int32 wpld, 02793 l_uint32 *datas, 02794 l_int32 wpls) 02795 { 02796 l_int32 i; 02797 register l_int32 j, pwpls; 02798 register l_uint32 *sptr, *dptr; 02799 02800 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02801 02802 for (i = 0; i < h; i++) { 02803 sptr = datas + i * wpls; 02804 dptr = datad + i * wpld; 02805 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02806 *dptr = ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 02807 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 02808 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 02809 ((*(sptr) >> 12) | (*(sptr - 1) << 20)); 02810 } 02811 } 02812 } 02813 02814 static void 02815 ferode_2_40(l_uint32 *datad, 02816 l_int32 w, 02817 l_int32 h, 02818 l_int32 wpld, 02819 l_uint32 *datas, 02820 l_int32 wpls) 02821 { 02822 l_int32 i; 02823 register l_int32 j, pwpls; 02824 register l_uint32 *sptr, *dptr; 02825 02826 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02827 02828 for (i = 0; i < h; i++) { 02829 sptr = datas + i * wpls; 02830 dptr = datad + i * wpld; 02831 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02832 *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 02833 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 02834 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 02835 ((*(sptr) << 12) | (*(sptr + 1) >> 20)); 02836 } 02837 } 02838 } 02839 02840 static void 02841 fdilate_2_41(l_uint32 *datad, 02842 l_int32 w, 02843 l_int32 h, 02844 l_int32 wpld, 02845 l_uint32 *datas, 02846 l_int32 wpls) 02847 { 02848 l_int32 i; 02849 register l_int32 j, pwpls; 02850 register l_uint32 *sptr, *dptr; 02851 l_int32 wpls4; 02852 l_int32 wpls12; 02853 02854 wpls4 = 4 * wpls; 02855 wpls12 = 12 * wpls; 02856 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02857 02858 for (i = 0; i < h; i++) { 02859 sptr = datas + i * wpls; 02860 dptr = datad + i * wpld; 02861 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02862 *dptr = (*(sptr + wpls12)) | 02863 (*(sptr + wpls4)) | 02864 (*(sptr - wpls4)) | 02865 (*(sptr - wpls12)); 02866 } 02867 } 02868 } 02869 02870 static void 02871 ferode_2_41(l_uint32 *datad, 02872 l_int32 w, 02873 l_int32 h, 02874 l_int32 wpld, 02875 l_uint32 *datas, 02876 l_int32 wpls) 02877 { 02878 l_int32 i; 02879 register l_int32 j, pwpls; 02880 register l_uint32 *sptr, *dptr; 02881 l_int32 wpls4; 02882 l_int32 wpls12; 02883 02884 wpls4 = 4 * wpls; 02885 wpls12 = 12 * wpls; 02886 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02887 02888 for (i = 0; i < h; i++) { 02889 sptr = datas + i * wpls; 02890 dptr = datad + i * wpld; 02891 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02892 *dptr = (*(sptr - wpls12)) & 02893 (*(sptr - wpls4)) & 02894 (*(sptr + wpls4)) & 02895 (*(sptr + wpls12)); 02896 } 02897 } 02898 } 02899 02900 static void 02901 fdilate_2_42(l_uint32 *datad, 02902 l_int32 w, 02903 l_int32 h, 02904 l_int32 wpld, 02905 l_uint32 *datas, 02906 l_int32 wpls) 02907 { 02908 l_int32 i; 02909 register l_int32 j, pwpls; 02910 register l_uint32 *sptr, *dptr; 02911 02912 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02913 02914 for (i = 0; i < h; i++) { 02915 sptr = datas + i * wpls; 02916 dptr = datad + i * wpld; 02917 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02918 *dptr = ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 02919 (*sptr) | 02920 ((*(sptr) >> 11) | (*(sptr - 1) << 21)); 02921 } 02922 } 02923 } 02924 02925 static void 02926 ferode_2_42(l_uint32 *datad, 02927 l_int32 w, 02928 l_int32 h, 02929 l_int32 wpld, 02930 l_uint32 *datas, 02931 l_int32 wpls) 02932 { 02933 l_int32 i; 02934 register l_int32 j, pwpls; 02935 register l_uint32 *sptr, *dptr; 02936 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) >> 11) | (*(sptr - 1) << 21)) & 02944 (*sptr) & 02945 ((*(sptr) << 11) | (*(sptr + 1) >> 21)); 02946 } 02947 } 02948 } 02949 02950 static void 02951 fdilate_2_43(l_uint32 *datad, 02952 l_int32 w, 02953 l_int32 h, 02954 l_int32 wpld, 02955 l_uint32 *datas, 02956 l_int32 wpls) 02957 { 02958 l_int32 i; 02959 register l_int32 j, pwpls; 02960 register l_uint32 *sptr, *dptr; 02961 l_int32 wpls11; 02962 02963 wpls11 = 11 * wpls; 02964 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02965 02966 for (i = 0; i < h; i++) { 02967 sptr = datas + i * wpls; 02968 dptr = datad + i * wpld; 02969 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02970 *dptr = (*(sptr + wpls11)) | 02971 (*sptr) | 02972 (*(sptr - wpls11)); 02973 } 02974 } 02975 } 02976 02977 static void 02978 ferode_2_43(l_uint32 *datad, 02979 l_int32 w, 02980 l_int32 h, 02981 l_int32 wpld, 02982 l_uint32 *datas, 02983 l_int32 wpls) 02984 { 02985 l_int32 i; 02986 register l_int32 j, pwpls; 02987 register l_uint32 *sptr, *dptr; 02988 l_int32 wpls11; 02989 02990 wpls11 = 11 * wpls; 02991 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 02992 02993 for (i = 0; i < h; i++) { 02994 sptr = datas + i * wpls; 02995 dptr = datad + i * wpld; 02996 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 02997 *dptr = (*(sptr - wpls11)) & 02998 (*sptr) & 02999 (*(sptr + wpls11)); 03000 } 03001 } 03002 } 03003 03004 static void 03005 fdilate_2_44(l_uint32 *datad, 03006 l_int32 w, 03007 l_int32 h, 03008 l_int32 wpld, 03009 l_uint32 *datas, 03010 l_int32 wpls) 03011 { 03012 l_int32 i; 03013 register l_int32 j, pwpls; 03014 register l_uint32 *sptr, *dptr; 03015 03016 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03017 03018 for (i = 0; i < h; i++) { 03019 sptr = datas + i * wpls; 03020 dptr = datad + i * wpld; 03021 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03022 *dptr = ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 03023 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 03024 (*sptr) | 03025 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 03026 ((*(sptr) >> 14) | (*(sptr - 1) << 18)); 03027 } 03028 } 03029 } 03030 03031 static void 03032 ferode_2_44(l_uint32 *datad, 03033 l_int32 w, 03034 l_int32 h, 03035 l_int32 wpld, 03036 l_uint32 *datas, 03037 l_int32 wpls) 03038 { 03039 l_int32 i; 03040 register l_int32 j, pwpls; 03041 register l_uint32 *sptr, *dptr; 03042 03043 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03044 03045 for (i = 0; i < h; i++) { 03046 sptr = datas + i * wpls; 03047 dptr = datad + i * wpld; 03048 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03049 *dptr = ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 03050 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 03051 (*sptr) & 03052 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 03053 ((*(sptr) << 14) | (*(sptr + 1) >> 18)); 03054 } 03055 } 03056 } 03057 03058 static void 03059 fdilate_2_45(l_uint32 *datad, 03060 l_int32 w, 03061 l_int32 h, 03062 l_int32 wpld, 03063 l_uint32 *datas, 03064 l_int32 wpls) 03065 { 03066 l_int32 i; 03067 register l_int32 j, pwpls; 03068 register l_uint32 *sptr, *dptr; 03069 l_int32 wpls7; 03070 l_int32 wpls14; 03071 03072 wpls7 = 7 * wpls; 03073 wpls14 = 14 * wpls; 03074 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03075 03076 for (i = 0; i < h; i++) { 03077 sptr = datas + i * wpls; 03078 dptr = datad + i * wpld; 03079 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03080 *dptr = (*(sptr + wpls14)) | 03081 (*(sptr + wpls7)) | 03082 (*sptr) | 03083 (*(sptr - wpls7)) | 03084 (*(sptr - wpls14)); 03085 } 03086 } 03087 } 03088 03089 static void 03090 ferode_2_45(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 wpls7; 03101 l_int32 wpls14; 03102 03103 wpls7 = 7 * wpls; 03104 wpls14 = 14 * 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 - wpls14)) & 03112 (*(sptr - wpls7)) & 03113 (*sptr) & 03114 (*(sptr + wpls7)) & 03115 (*(sptr + wpls14)); 03116 } 03117 } 03118 } 03119 03120 static void 03121 fdilate_2_46(l_uint32 *datad, 03122 l_int32 w, 03123 l_int32 h, 03124 l_int32 wpld, 03125 l_uint32 *datas, 03126 l_int32 wpls) 03127 { 03128 l_int32 i; 03129 register l_int32 j, pwpls; 03130 register l_uint32 *sptr, *dptr; 03131 03132 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03133 03134 for (i = 0; i < h; i++) { 03135 sptr = datas + i * wpls; 03136 dptr = datad + i * wpld; 03137 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03138 *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 03139 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 03140 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | 03141 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 03142 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 03143 ((*(sptr) >> 15) | (*(sptr - 1) << 17)); 03144 } 03145 } 03146 } 03147 03148 static void 03149 ferode_2_46(l_uint32 *datad, 03150 l_int32 w, 03151 l_int32 h, 03152 l_int32 wpld, 03153 l_uint32 *datas, 03154 l_int32 wpls) 03155 { 03156 l_int32 i; 03157 register l_int32 j, pwpls; 03158 register l_uint32 *sptr, *dptr; 03159 03160 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03161 03162 for (i = 0; i < h; i++) { 03163 sptr = datas + i * wpls; 03164 dptr = datad + i * wpld; 03165 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03166 *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 03167 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 03168 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & 03169 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 03170 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 03171 ((*(sptr) << 15) | (*(sptr + 1) >> 17)); 03172 } 03173 } 03174 } 03175 03176 static void 03177 fdilate_2_47(l_uint32 *datad, 03178 l_int32 w, 03179 l_int32 h, 03180 l_int32 wpld, 03181 l_uint32 *datas, 03182 l_int32 wpls) 03183 { 03184 l_int32 i; 03185 register l_int32 j, pwpls; 03186 register l_uint32 *sptr, *dptr; 03187 l_int32 wpls3; 03188 l_int32 wpls9; 03189 l_int32 wpls15; 03190 03191 wpls3 = 3 * wpls; 03192 wpls9 = 9 * wpls; 03193 wpls15 = 15 * wpls; 03194 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03195 03196 for (i = 0; i < h; i++) { 03197 sptr = datas + i * wpls; 03198 dptr = datad + i * wpld; 03199 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03200 *dptr = (*(sptr + wpls15)) | 03201 (*(sptr + wpls9)) | 03202 (*(sptr + wpls3)) | 03203 (*(sptr - wpls3)) | 03204 (*(sptr - wpls9)) | 03205 (*(sptr - wpls15)); 03206 } 03207 } 03208 } 03209 03210 static void 03211 ferode_2_47(l_uint32 *datad, 03212 l_int32 w, 03213 l_int32 h, 03214 l_int32 wpld, 03215 l_uint32 *datas, 03216 l_int32 wpls) 03217 { 03218 l_int32 i; 03219 register l_int32 j, pwpls; 03220 register l_uint32 *sptr, *dptr; 03221 l_int32 wpls3; 03222 l_int32 wpls9; 03223 l_int32 wpls15; 03224 03225 wpls3 = 3 * wpls; 03226 wpls9 = 9 * wpls; 03227 wpls15 = 15 * wpls; 03228 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03229 03230 for (i = 0; i < h; i++) { 03231 sptr = datas + i * wpls; 03232 dptr = datad + i * wpld; 03233 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03234 *dptr = (*(sptr - wpls15)) & 03235 (*(sptr - wpls9)) & 03236 (*(sptr - wpls3)) & 03237 (*(sptr + wpls3)) & 03238 (*(sptr + wpls9)) & 03239 (*(sptr + wpls15)); 03240 } 03241 } 03242 } 03243 03244 static void 03245 fdilate_2_48(l_uint32 *datad, 03246 l_int32 w, 03247 l_int32 h, 03248 l_int32 wpld, 03249 l_uint32 *datas, 03250 l_int32 wpls) 03251 { 03252 l_int32 i; 03253 register l_int32 j, pwpls; 03254 register l_uint32 *sptr, *dptr; 03255 03256 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03257 03258 for (i = 0; i < h; i++) { 03259 sptr = datas + i * wpls; 03260 dptr = datad + i * wpld; 03261 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03262 *dptr = ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | 03263 (*sptr) | 03264 ((*(sptr) >> 13) | (*(sptr - 1) << 19)); 03265 } 03266 } 03267 } 03268 03269 static void 03270 ferode_2_48(l_uint32 *datad, 03271 l_int32 w, 03272 l_int32 h, 03273 l_int32 wpld, 03274 l_uint32 *datas, 03275 l_int32 wpls) 03276 { 03277 l_int32 i; 03278 register l_int32 j, pwpls; 03279 register l_uint32 *sptr, *dptr; 03280 03281 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03282 03283 for (i = 0; i < h; i++) { 03284 sptr = datas + i * wpls; 03285 dptr = datad + i * wpld; 03286 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03287 *dptr = ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & 03288 (*sptr) & 03289 ((*(sptr) << 13) | (*(sptr + 1) >> 19)); 03290 } 03291 } 03292 } 03293 03294 static void 03295 fdilate_2_49(l_uint32 *datad, 03296 l_int32 w, 03297 l_int32 h, 03298 l_int32 wpld, 03299 l_uint32 *datas, 03300 l_int32 wpls) 03301 { 03302 l_int32 i; 03303 register l_int32 j, pwpls; 03304 register l_uint32 *sptr, *dptr; 03305 l_int32 wpls13; 03306 03307 wpls13 = 13 * wpls; 03308 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03309 03310 for (i = 0; i < h; i++) { 03311 sptr = datas + i * wpls; 03312 dptr = datad + i * wpld; 03313 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03314 *dptr = (*(sptr + wpls13)) | 03315 (*sptr) | 03316 (*(sptr - wpls13)); 03317 } 03318 } 03319 } 03320 03321 static void 03322 ferode_2_49(l_uint32 *datad, 03323 l_int32 w, 03324 l_int32 h, 03325 l_int32 wpld, 03326 l_uint32 *datas, 03327 l_int32 wpls) 03328 { 03329 l_int32 i; 03330 register l_int32 j, pwpls; 03331 register l_uint32 *sptr, *dptr; 03332 l_int32 wpls13; 03333 03334 wpls13 = 13 * wpls; 03335 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03336 03337 for (i = 0; i < h; i++) { 03338 sptr = datas + i * wpls; 03339 dptr = datad + i * wpld; 03340 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03341 *dptr = (*(sptr - wpls13)) & 03342 (*sptr) & 03343 (*(sptr + wpls13)); 03344 } 03345 } 03346 } 03347 03348 static void 03349 fdilate_2_50(l_uint32 *datad, 03350 l_int32 w, 03351 l_int32 h, 03352 l_int32 wpld, 03353 l_uint32 *datas, 03354 l_int32 wpls) 03355 { 03356 l_int32 i; 03357 register l_int32 j, pwpls; 03358 register l_uint32 *sptr, *dptr; 03359 03360 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03361 03362 for (i = 0; i < h; i++) { 03363 sptr = datas + i * wpls; 03364 dptr = datad + i * wpld; 03365 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03366 *dptr = ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 03367 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 03368 (*sptr) | 03369 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 03370 ((*(sptr) >> 16) | (*(sptr - 1) << 16)); 03371 } 03372 } 03373 } 03374 03375 static void 03376 ferode_2_50(l_uint32 *datad, 03377 l_int32 w, 03378 l_int32 h, 03379 l_int32 wpld, 03380 l_uint32 *datas, 03381 l_int32 wpls) 03382 { 03383 l_int32 i; 03384 register l_int32 j, pwpls; 03385 register l_uint32 *sptr, *dptr; 03386 03387 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03388 03389 for (i = 0; i < h; i++) { 03390 sptr = datas + i * wpls; 03391 dptr = datad + i * wpld; 03392 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03393 *dptr = ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 03394 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 03395 (*sptr) & 03396 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 03397 ((*(sptr) << 16) | (*(sptr + 1) >> 16)); 03398 } 03399 } 03400 } 03401 03402 static void 03403 fdilate_2_51(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 wpls8; 03414 l_int32 wpls16; 03415 03416 wpls8 = 8 * wpls; 03417 wpls16 = 16 * wpls; 03418 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03419 03420 for (i = 0; i < h; i++) { 03421 sptr = datas + i * wpls; 03422 dptr = datad + i * wpld; 03423 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03424 *dptr = (*(sptr + wpls16)) | 03425 (*(sptr + wpls8)) | 03426 (*sptr) | 03427 (*(sptr - wpls8)) | 03428 (*(sptr - wpls16)); 03429 } 03430 } 03431 } 03432 03433 static void 03434 ferode_2_51(l_uint32 *datad, 03435 l_int32 w, 03436 l_int32 h, 03437 l_int32 wpld, 03438 l_uint32 *datas, 03439 l_int32 wpls) 03440 { 03441 l_int32 i; 03442 register l_int32 j, pwpls; 03443 register l_uint32 *sptr, *dptr; 03444 l_int32 wpls8; 03445 l_int32 wpls16; 03446 03447 wpls8 = 8 * wpls; 03448 wpls16 = 16 * wpls; 03449 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03450 03451 for (i = 0; i < h; i++) { 03452 sptr = datas + i * wpls; 03453 dptr = datad + i * wpld; 03454 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03455 *dptr = (*(sptr - wpls16)) & 03456 (*(sptr - wpls8)) & 03457 (*sptr) & 03458 (*(sptr + wpls8)) & 03459 (*(sptr + wpls16)); 03460 } 03461 } 03462 } 03463 03464 static void 03465 fdilate_2_52(l_uint32 *datad, 03466 l_int32 w, 03467 l_int32 h, 03468 l_int32 wpld, 03469 l_uint32 *datas, 03470 l_int32 wpls) 03471 { 03472 l_int32 i; 03473 register l_int32 j, pwpls; 03474 register l_uint32 *sptr, *dptr; 03475 03476 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03477 03478 for (i = 0; i < h; i++) { 03479 sptr = datas + i * wpls; 03480 dptr = datad + i * wpld; 03481 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03482 *dptr = ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 03483 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 03484 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 03485 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | 03486 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 03487 ((*(sptr) >> 17) | (*(sptr - 1) << 15)); 03488 } 03489 } 03490 } 03491 03492 static void 03493 ferode_2_52(l_uint32 *datad, 03494 l_int32 w, 03495 l_int32 h, 03496 l_int32 wpld, 03497 l_uint32 *datas, 03498 l_int32 wpls) 03499 { 03500 l_int32 i; 03501 register l_int32 j, pwpls; 03502 register l_uint32 *sptr, *dptr; 03503 03504 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03505 03506 for (i = 0; i < h; i++) { 03507 sptr = datas + i * wpls; 03508 dptr = datad + i * wpld; 03509 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03510 *dptr = ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 03511 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 03512 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 03513 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & 03514 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 03515 ((*(sptr) << 17) | (*(sptr + 1) >> 15)); 03516 } 03517 } 03518 } 03519 03520 static void 03521 fdilate_2_53(l_uint32 *datad, 03522 l_int32 w, 03523 l_int32 h, 03524 l_int32 wpld, 03525 l_uint32 *datas, 03526 l_int32 wpls) 03527 { 03528 l_int32 i; 03529 register l_int32 j, pwpls; 03530 register l_uint32 *sptr, *dptr; 03531 l_int32 wpls3; 03532 l_int32 wpls4; 03533 l_int32 wpls10; 03534 l_int32 wpls11; 03535 l_int32 wpls17; 03536 l_int32 wpls18; 03537 03538 wpls3 = 3 * wpls; 03539 wpls4 = 4 * wpls; 03540 wpls10 = 10 * wpls; 03541 wpls11 = 11 * wpls; 03542 wpls17 = 17 * wpls; 03543 wpls18 = 18 * wpls; 03544 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03545 03546 for (i = 0; i < h; i++) { 03547 sptr = datas + i * wpls; 03548 dptr = datad + i * wpld; 03549 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03550 *dptr = (*(sptr + wpls18)) | 03551 (*(sptr + wpls11)) | 03552 (*(sptr + wpls4)) | 03553 (*(sptr - wpls3)) | 03554 (*(sptr - wpls10)) | 03555 (*(sptr - wpls17)); 03556 } 03557 } 03558 } 03559 03560 static void 03561 ferode_2_53(l_uint32 *datad, 03562 l_int32 w, 03563 l_int32 h, 03564 l_int32 wpld, 03565 l_uint32 *datas, 03566 l_int32 wpls) 03567 { 03568 l_int32 i; 03569 register l_int32 j, pwpls; 03570 register l_uint32 *sptr, *dptr; 03571 l_int32 wpls3; 03572 l_int32 wpls4; 03573 l_int32 wpls10; 03574 l_int32 wpls11; 03575 l_int32 wpls17; 03576 l_int32 wpls18; 03577 03578 wpls3 = 3 * wpls; 03579 wpls4 = 4 * wpls; 03580 wpls10 = 10 * wpls; 03581 wpls11 = 11 * wpls; 03582 wpls17 = 17 * wpls; 03583 wpls18 = 18 * wpls; 03584 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03585 03586 for (i = 0; i < h; i++) { 03587 sptr = datas + i * wpls; 03588 dptr = datad + i * wpld; 03589 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03590 *dptr = (*(sptr - wpls18)) & 03591 (*(sptr - wpls11)) & 03592 (*(sptr - wpls4)) & 03593 (*(sptr + wpls3)) & 03594 (*(sptr + wpls10)) & 03595 (*(sptr + wpls17)); 03596 } 03597 } 03598 } 03599 03600 static void 03601 fdilate_2_54(l_uint32 *datad, 03602 l_int32 w, 03603 l_int32 h, 03604 l_int32 wpld, 03605 l_uint32 *datas, 03606 l_int32 wpls) 03607 { 03608 l_int32 i; 03609 register l_int32 j, pwpls; 03610 register l_uint32 *sptr, *dptr; 03611 03612 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03613 03614 for (i = 0; i < h; i++) { 03615 sptr = datas + i * wpls; 03616 dptr = datad + i * wpld; 03617 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03618 *dptr = ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | 03619 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | 03620 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 03621 ((*(sptr) >> 16) | (*(sptr - 1) << 16)); 03622 } 03623 } 03624 } 03625 03626 static void 03627 ferode_2_54(l_uint32 *datad, 03628 l_int32 w, 03629 l_int32 h, 03630 l_int32 wpld, 03631 l_uint32 *datas, 03632 l_int32 wpls) 03633 { 03634 l_int32 i; 03635 register l_int32 j, pwpls; 03636 register l_uint32 *sptr, *dptr; 03637 03638 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03639 03640 for (i = 0; i < h; i++) { 03641 sptr = datas + i * wpls; 03642 dptr = datad + i * wpld; 03643 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03644 *dptr = ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & 03645 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & 03646 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 03647 ((*(sptr) << 16) | (*(sptr + 1) >> 16)); 03648 } 03649 } 03650 } 03651 03652 static void 03653 fdilate_2_55(l_uint32 *datad, 03654 l_int32 w, 03655 l_int32 h, 03656 l_int32 wpld, 03657 l_uint32 *datas, 03658 l_int32 wpls) 03659 { 03660 l_int32 i; 03661 register l_int32 j, pwpls; 03662 register l_uint32 *sptr, *dptr; 03663 l_int32 wpls5; 03664 l_int32 wpls6; 03665 l_int32 wpls16; 03666 l_int32 wpls17; 03667 03668 wpls5 = 5 * wpls; 03669 wpls6 = 6 * wpls; 03670 wpls16 = 16 * wpls; 03671 wpls17 = 17 * wpls; 03672 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03673 03674 for (i = 0; i < h; i++) { 03675 sptr = datas + i * wpls; 03676 dptr = datad + i * wpld; 03677 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03678 *dptr = (*(sptr + wpls17)) | 03679 (*(sptr + wpls6)) | 03680 (*(sptr - wpls5)) | 03681 (*(sptr - wpls16)); 03682 } 03683 } 03684 } 03685 03686 static void 03687 ferode_2_55(l_uint32 *datad, 03688 l_int32 w, 03689 l_int32 h, 03690 l_int32 wpld, 03691 l_uint32 *datas, 03692 l_int32 wpls) 03693 { 03694 l_int32 i; 03695 register l_int32 j, pwpls; 03696 register l_uint32 *sptr, *dptr; 03697 l_int32 wpls5; 03698 l_int32 wpls6; 03699 l_int32 wpls16; 03700 l_int32 wpls17; 03701 03702 wpls5 = 5 * wpls; 03703 wpls6 = 6 * wpls; 03704 wpls16 = 16 * wpls; 03705 wpls17 = 17 * wpls; 03706 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03707 03708 for (i = 0; i < h; i++) { 03709 sptr = datas + i * wpls; 03710 dptr = datad + i * wpld; 03711 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03712 *dptr = (*(sptr - wpls17)) & 03713 (*(sptr - wpls6)) & 03714 (*(sptr + wpls5)) & 03715 (*(sptr + wpls16)); 03716 } 03717 } 03718 } 03719 03720 static void 03721 fdilate_2_56(l_uint32 *datad, 03722 l_int32 w, 03723 l_int32 h, 03724 l_int32 wpld, 03725 l_uint32 *datas, 03726 l_int32 wpls) 03727 { 03728 l_int32 i; 03729 register l_int32 j, pwpls; 03730 register l_uint32 *sptr, *dptr; 03731 03732 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03733 03734 for (i = 0; i < h; i++) { 03735 sptr = datas + i * wpls; 03736 dptr = datad + i * wpld; 03737 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03738 *dptr = ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 03739 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 03740 (*sptr) | 03741 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 03742 ((*(sptr) >> 18) | (*(sptr - 1) << 14)); 03743 } 03744 } 03745 } 03746 03747 static void 03748 ferode_2_56(l_uint32 *datad, 03749 l_int32 w, 03750 l_int32 h, 03751 l_int32 wpld, 03752 l_uint32 *datas, 03753 l_int32 wpls) 03754 { 03755 l_int32 i; 03756 register l_int32 j, pwpls; 03757 register l_uint32 *sptr, *dptr; 03758 03759 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03760 03761 for (i = 0; i < h; i++) { 03762 sptr = datas + i * wpls; 03763 dptr = datad + i * wpld; 03764 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03765 *dptr = ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 03766 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 03767 (*sptr) & 03768 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 03769 ((*(sptr) << 18) | (*(sptr + 1) >> 14)); 03770 } 03771 } 03772 } 03773 03774 static void 03775 fdilate_2_57(l_uint32 *datad, 03776 l_int32 w, 03777 l_int32 h, 03778 l_int32 wpld, 03779 l_uint32 *datas, 03780 l_int32 wpls) 03781 { 03782 l_int32 i; 03783 register l_int32 j, pwpls; 03784 register l_uint32 *sptr, *dptr; 03785 l_int32 wpls9; 03786 l_int32 wpls18; 03787 03788 wpls9 = 9 * wpls; 03789 wpls18 = 18 * wpls; 03790 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03791 03792 for (i = 0; i < h; i++) { 03793 sptr = datas + i * wpls; 03794 dptr = datad + i * wpld; 03795 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03796 *dptr = (*(sptr + wpls18)) | 03797 (*(sptr + wpls9)) | 03798 (*sptr) | 03799 (*(sptr - wpls9)) | 03800 (*(sptr - wpls18)); 03801 } 03802 } 03803 } 03804 03805 static void 03806 ferode_2_57(l_uint32 *datad, 03807 l_int32 w, 03808 l_int32 h, 03809 l_int32 wpld, 03810 l_uint32 *datas, 03811 l_int32 wpls) 03812 { 03813 l_int32 i; 03814 register l_int32 j, pwpls; 03815 register l_uint32 *sptr, *dptr; 03816 l_int32 wpls9; 03817 l_int32 wpls18; 03818 03819 wpls9 = 9 * wpls; 03820 wpls18 = 18 * wpls; 03821 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03822 03823 for (i = 0; i < h; i++) { 03824 sptr = datas + i * wpls; 03825 dptr = datad + i * wpld; 03826 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03827 *dptr = (*(sptr - wpls18)) & 03828 (*(sptr - wpls9)) & 03829 (*sptr) & 03830 (*(sptr + wpls9)) & 03831 (*(sptr + wpls18)); 03832 } 03833 } 03834 } 03835 03836 static void 03837 fdilate_2_58(l_uint32 *datad, 03838 l_int32 w, 03839 l_int32 h, 03840 l_int32 wpld, 03841 l_uint32 *datas, 03842 l_int32 wpls) 03843 { 03844 l_int32 i; 03845 register l_int32 j, pwpls; 03846 register l_uint32 *sptr, *dptr; 03847 03848 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03849 03850 for (i = 0; i < h; i++) { 03851 sptr = datas + i * wpls; 03852 dptr = datad + i * wpld; 03853 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03854 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 03855 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | 03856 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | 03857 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 03858 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | 03859 ((*(sptr) >> 20) | (*(sptr - 1) << 12)); 03860 } 03861 } 03862 } 03863 03864 static void 03865 ferode_2_58(l_uint32 *datad, 03866 l_int32 w, 03867 l_int32 h, 03868 l_int32 wpld, 03869 l_uint32 *datas, 03870 l_int32 wpls) 03871 { 03872 l_int32 i; 03873 register l_int32 j, pwpls; 03874 register l_uint32 *sptr, *dptr; 03875 03876 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03877 03878 for (i = 0; i < h; i++) { 03879 sptr = datas + i * wpls; 03880 dptr = datad + i * wpld; 03881 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03882 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 03883 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & 03884 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & 03885 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 03886 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & 03887 ((*(sptr) << 20) | (*(sptr + 1) >> 12)); 03888 } 03889 } 03890 } 03891 03892 static void 03893 fdilate_2_59(l_uint32 *datad, 03894 l_int32 w, 03895 l_int32 h, 03896 l_int32 wpld, 03897 l_uint32 *datas, 03898 l_int32 wpls) 03899 { 03900 l_int32 i; 03901 register l_int32 j, pwpls; 03902 register l_uint32 *sptr, *dptr; 03903 l_int32 wpls4; 03904 l_int32 wpls12; 03905 l_int32 wpls20; 03906 03907 wpls4 = 4 * wpls; 03908 wpls12 = 12 * wpls; 03909 wpls20 = 20 * wpls; 03910 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03911 03912 for (i = 0; i < h; i++) { 03913 sptr = datas + i * wpls; 03914 dptr = datad + i * wpld; 03915 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03916 *dptr = (*(sptr + wpls20)) | 03917 (*(sptr + wpls12)) | 03918 (*(sptr + wpls4)) | 03919 (*(sptr - wpls4)) | 03920 (*(sptr - wpls12)) | 03921 (*(sptr - wpls20)); 03922 } 03923 } 03924 } 03925 03926 static void 03927 ferode_2_59(l_uint32 *datad, 03928 l_int32 w, 03929 l_int32 h, 03930 l_int32 wpld, 03931 l_uint32 *datas, 03932 l_int32 wpls) 03933 { 03934 l_int32 i; 03935 register l_int32 j, pwpls; 03936 register l_uint32 *sptr, *dptr; 03937 l_int32 wpls4; 03938 l_int32 wpls12; 03939 l_int32 wpls20; 03940 03941 wpls4 = 4 * wpls; 03942 wpls12 = 12 * wpls; 03943 wpls20 = 20 * wpls; 03944 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03945 03946 for (i = 0; i < h; i++) { 03947 sptr = datas + i * wpls; 03948 dptr = datad + i * wpld; 03949 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03950 *dptr = (*(sptr - wpls20)) & 03951 (*(sptr - wpls12)) & 03952 (*(sptr - wpls4)) & 03953 (*(sptr + wpls4)) & 03954 (*(sptr + wpls12)) & 03955 (*(sptr + wpls20)); 03956 } 03957 } 03958 } 03959 03960 static void 03961 fdilate_2_60(l_uint32 *datad, 03962 l_int32 w, 03963 l_int32 h, 03964 l_int32 wpld, 03965 l_uint32 *datas, 03966 l_int32 wpls) 03967 { 03968 l_int32 i; 03969 register l_int32 j, pwpls; 03970 register l_uint32 *sptr, *dptr; 03971 03972 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 03973 03974 for (i = 0; i < h; i++) { 03975 sptr = datas + i * wpls; 03976 dptr = datad + i * wpld; 03977 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 03978 *dptr = ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | 03979 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 03980 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 03981 (*sptr) | 03982 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | 03983 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | 03984 ((*(sptr) >> 21) | (*(sptr - 1) << 11)); 03985 } 03986 } 03987 } 03988 03989 static void 03990 ferode_2_60(l_uint32 *datad, 03991 l_int32 w, 03992 l_int32 h, 03993 l_int32 wpld, 03994 l_uint32 *datas, 03995 l_int32 wpls) 03996 { 03997 l_int32 i; 03998 register l_int32 j, pwpls; 03999 register l_uint32 *sptr, *dptr; 04000 04001 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04002 04003 for (i = 0; i < h; i++) { 04004 sptr = datas + i * wpls; 04005 dptr = datad + i * wpld; 04006 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04007 *dptr = ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & 04008 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 04009 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 04010 (*sptr) & 04011 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & 04012 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & 04013 ((*(sptr) << 21) | (*(sptr + 1) >> 11)); 04014 } 04015 } 04016 } 04017 04018 static void 04019 fdilate_2_61(l_uint32 *datad, 04020 l_int32 w, 04021 l_int32 h, 04022 l_int32 wpld, 04023 l_uint32 *datas, 04024 l_int32 wpls) 04025 { 04026 l_int32 i; 04027 register l_int32 j, pwpls; 04028 register l_uint32 *sptr, *dptr; 04029 l_int32 wpls7; 04030 l_int32 wpls14; 04031 l_int32 wpls21; 04032 04033 wpls7 = 7 * wpls; 04034 wpls14 = 14 * wpls; 04035 wpls21 = 21 * wpls; 04036 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04037 04038 for (i = 0; i < h; i++) { 04039 sptr = datas + i * wpls; 04040 dptr = datad + i * wpld; 04041 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04042 *dptr = (*(sptr + wpls21)) | 04043 (*(sptr + wpls14)) | 04044 (*(sptr + wpls7)) | 04045 (*sptr) | 04046 (*(sptr - wpls7)) | 04047 (*(sptr - wpls14)) | 04048 (*(sptr - wpls21)); 04049 } 04050 } 04051 } 04052 04053 static void 04054 ferode_2_61(l_uint32 *datad, 04055 l_int32 w, 04056 l_int32 h, 04057 l_int32 wpld, 04058 l_uint32 *datas, 04059 l_int32 wpls) 04060 { 04061 l_int32 i; 04062 register l_int32 j, pwpls; 04063 register l_uint32 *sptr, *dptr; 04064 l_int32 wpls7; 04065 l_int32 wpls14; 04066 l_int32 wpls21; 04067 04068 wpls7 = 7 * wpls; 04069 wpls14 = 14 * wpls; 04070 wpls21 = 21 * wpls; 04071 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04072 04073 for (i = 0; i < h; i++) { 04074 sptr = datas + i * wpls; 04075 dptr = datad + i * wpld; 04076 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04077 *dptr = (*(sptr - wpls21)) & 04078 (*(sptr - wpls14)) & 04079 (*(sptr - wpls7)) & 04080 (*sptr) & 04081 (*(sptr + wpls7)) & 04082 (*(sptr + wpls14)) & 04083 (*(sptr + wpls21)); 04084 } 04085 } 04086 } 04087 04088 static void 04089 fdilate_2_62(l_uint32 *datad, 04090 l_int32 w, 04091 l_int32 h, 04092 l_int32 wpld, 04093 l_uint32 *datas, 04094 l_int32 wpls) 04095 { 04096 l_int32 i; 04097 register l_int32 j, pwpls; 04098 register l_uint32 *sptr, *dptr; 04099 04100 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04101 04102 for (i = 0; i < h; i++) { 04103 sptr = datas + i * wpls; 04104 dptr = datad + i * wpld; 04105 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04106 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 04107 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | 04108 (*sptr) | 04109 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | 04110 ((*(sptr) >> 20) | (*(sptr - 1) << 12)); 04111 } 04112 } 04113 } 04114 04115 static void 04116 ferode_2_62(l_uint32 *datad, 04117 l_int32 w, 04118 l_int32 h, 04119 l_int32 wpld, 04120 l_uint32 *datas, 04121 l_int32 wpls) 04122 { 04123 l_int32 i; 04124 register l_int32 j, pwpls; 04125 register l_uint32 *sptr, *dptr; 04126 04127 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04128 04129 for (i = 0; i < h; i++) { 04130 sptr = datas + i * wpls; 04131 dptr = datad + i * wpld; 04132 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04133 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 04134 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & 04135 (*sptr) & 04136 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & 04137 ((*(sptr) << 20) | (*(sptr + 1) >> 12)); 04138 } 04139 } 04140 } 04141 04142 static void 04143 fdilate_2_63(l_uint32 *datad, 04144 l_int32 w, 04145 l_int32 h, 04146 l_int32 wpld, 04147 l_uint32 *datas, 04148 l_int32 wpls) 04149 { 04150 l_int32 i; 04151 register l_int32 j, pwpls; 04152 register l_uint32 *sptr, *dptr; 04153 l_int32 wpls10; 04154 l_int32 wpls20; 04155 04156 wpls10 = 10 * wpls; 04157 wpls20 = 20 * wpls; 04158 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04159 04160 for (i = 0; i < h; i++) { 04161 sptr = datas + i * wpls; 04162 dptr = datad + i * wpld; 04163 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04164 *dptr = (*(sptr + wpls20)) | 04165 (*(sptr + wpls10)) | 04166 (*sptr) | 04167 (*(sptr - wpls10)) | 04168 (*(sptr - wpls20)); 04169 } 04170 } 04171 } 04172 04173 static void 04174 ferode_2_63(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 wpls10; 04185 l_int32 wpls20; 04186 04187 wpls10 = 10 * wpls; 04188 wpls20 = 20 * wpls; 04189 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04190 04191 for (i = 0; i < h; i++) { 04192 sptr = datas + i * wpls; 04193 dptr = datad + i * wpld; 04194 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04195 *dptr = (*(sptr - wpls20)) & 04196 (*(sptr - wpls10)) & 04197 (*sptr) & 04198 (*(sptr + wpls10)) & 04199 (*(sptr + wpls20)); 04200 } 04201 } 04202 } 04203 04204 static void 04205 fdilate_2_64(l_uint32 *datad, 04206 l_int32 w, 04207 l_int32 h, 04208 l_int32 wpld, 04209 l_uint32 *datas, 04210 l_int32 wpls) 04211 { 04212 l_int32 i; 04213 register l_int32 j, pwpls; 04214 register l_uint32 *sptr, *dptr; 04215 04216 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04217 04218 for (i = 0; i < h; i++) { 04219 sptr = datas + i * wpls; 04220 dptr = datad + i * wpld; 04221 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04222 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | 04223 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | 04224 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | 04225 ((*(sptr) >> 19) | (*(sptr - 1) << 13)); 04226 } 04227 } 04228 } 04229 04230 static void 04231 ferode_2_64(l_uint32 *datad, 04232 l_int32 w, 04233 l_int32 h, 04234 l_int32 wpld, 04235 l_uint32 *datas, 04236 l_int32 wpls) 04237 { 04238 l_int32 i; 04239 register l_int32 j, pwpls; 04240 register l_uint32 *sptr, *dptr; 04241 04242 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04243 04244 for (i = 0; i < h; i++) { 04245 sptr = datas + i * wpls; 04246 dptr = datad + i * wpld; 04247 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04248 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & 04249 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & 04250 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & 04251 ((*(sptr) << 19) | (*(sptr + 1) >> 13)); 04252 } 04253 } 04254 } 04255 04256 static void 04257 fdilate_2_65(l_uint32 *datad, 04258 l_int32 w, 04259 l_int32 h, 04260 l_int32 wpld, 04261 l_uint32 *datas, 04262 l_int32 wpls) 04263 { 04264 l_int32 i; 04265 register l_int32 j, pwpls; 04266 register l_uint32 *sptr, *dptr; 04267 l_int32 wpls6; 04268 l_int32 wpls7; 04269 l_int32 wpls19; 04270 l_int32 wpls20; 04271 04272 wpls6 = 6 * wpls; 04273 wpls7 = 7 * wpls; 04274 wpls19 = 19 * wpls; 04275 wpls20 = 20 * wpls; 04276 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04277 04278 for (i = 0; i < h; i++) { 04279 sptr = datas + i * wpls; 04280 dptr = datad + i * wpld; 04281 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04282 *dptr = (*(sptr + wpls20)) | 04283 (*(sptr + wpls7)) | 04284 (*(sptr - wpls6)) | 04285 (*(sptr - wpls19)); 04286 } 04287 } 04288 } 04289 04290 static void 04291 ferode_2_65(l_uint32 *datad, 04292 l_int32 w, 04293 l_int32 h, 04294 l_int32 wpld, 04295 l_uint32 *datas, 04296 l_int32 wpls) 04297 { 04298 l_int32 i; 04299 register l_int32 j, pwpls; 04300 register l_uint32 *sptr, *dptr; 04301 l_int32 wpls6; 04302 l_int32 wpls7; 04303 l_int32 wpls19; 04304 l_int32 wpls20; 04305 04306 wpls6 = 6 * wpls; 04307 wpls7 = 7 * wpls; 04308 wpls19 = 19 * wpls; 04309 wpls20 = 20 * wpls; 04310 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04311 04312 for (i = 0; i < h; i++) { 04313 sptr = datas + i * wpls; 04314 dptr = datad + i * wpld; 04315 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04316 *dptr = (*(sptr - wpls20)) & 04317 (*(sptr - wpls7)) & 04318 (*(sptr + wpls6)) & 04319 (*(sptr + wpls19)); 04320 } 04321 } 04322 } 04323 04324 static void 04325 fdilate_2_66(l_uint32 *datad, 04326 l_int32 w, 04327 l_int32 h, 04328 l_int32 wpld, 04329 l_uint32 *datas, 04330 l_int32 wpls) 04331 { 04332 l_int32 i; 04333 register l_int32 j, pwpls; 04334 register l_uint32 *sptr, *dptr; 04335 04336 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04337 04338 for (i = 0; i < h; i++) { 04339 sptr = datas + i * wpls; 04340 dptr = datad + i * wpld; 04341 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04342 *dptr = ((*(sptr) << 23) | (*(sptr + 1) >> 9)) | 04343 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | 04344 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 04345 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | 04346 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | 04347 ((*(sptr) >> 22) | (*(sptr - 1) << 10)); 04348 } 04349 } 04350 } 04351 04352 static void 04353 ferode_2_66(l_uint32 *datad, 04354 l_int32 w, 04355 l_int32 h, 04356 l_int32 wpld, 04357 l_uint32 *datas, 04358 l_int32 wpls) 04359 { 04360 l_int32 i; 04361 register l_int32 j, pwpls; 04362 register l_uint32 *sptr, *dptr; 04363 04364 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04365 04366 for (i = 0; i < h; i++) { 04367 sptr = datas + i * wpls; 04368 dptr = datad + i * wpld; 04369 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04370 *dptr = ((*(sptr) >> 23) | (*(sptr - 1) << 9)) & 04371 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & 04372 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 04373 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & 04374 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & 04375 ((*(sptr) << 22) | (*(sptr + 1) >> 10)); 04376 } 04377 } 04378 } 04379 04380 static void 04381 fdilate_2_67(l_uint32 *datad, 04382 l_int32 w, 04383 l_int32 h, 04384 l_int32 wpld, 04385 l_uint32 *datas, 04386 l_int32 wpls) 04387 { 04388 l_int32 i; 04389 register l_int32 j, pwpls; 04390 register l_uint32 *sptr, *dptr; 04391 l_int32 wpls4; 04392 l_int32 wpls5; 04393 l_int32 wpls13; 04394 l_int32 wpls14; 04395 l_int32 wpls22; 04396 l_int32 wpls23; 04397 04398 wpls4 = 4 * wpls; 04399 wpls5 = 5 * wpls; 04400 wpls13 = 13 * wpls; 04401 wpls14 = 14 * wpls; 04402 wpls22 = 22 * wpls; 04403 wpls23 = 23 * wpls; 04404 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04405 04406 for (i = 0; i < h; i++) { 04407 sptr = datas + i * wpls; 04408 dptr = datad + i * wpld; 04409 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04410 *dptr = (*(sptr + wpls23)) | 04411 (*(sptr + wpls14)) | 04412 (*(sptr + wpls5)) | 04413 (*(sptr - wpls4)) | 04414 (*(sptr - wpls13)) | 04415 (*(sptr - wpls22)); 04416 } 04417 } 04418 } 04419 04420 static void 04421 ferode_2_67(l_uint32 *datad, 04422 l_int32 w, 04423 l_int32 h, 04424 l_int32 wpld, 04425 l_uint32 *datas, 04426 l_int32 wpls) 04427 { 04428 l_int32 i; 04429 register l_int32 j, pwpls; 04430 register l_uint32 *sptr, *dptr; 04431 l_int32 wpls4; 04432 l_int32 wpls5; 04433 l_int32 wpls13; 04434 l_int32 wpls14; 04435 l_int32 wpls22; 04436 l_int32 wpls23; 04437 04438 wpls4 = 4 * wpls; 04439 wpls5 = 5 * wpls; 04440 wpls13 = 13 * wpls; 04441 wpls14 = 14 * wpls; 04442 wpls22 = 22 * wpls; 04443 wpls23 = 23 * wpls; 04444 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04445 04446 for (i = 0; i < h; i++) { 04447 sptr = datas + i * wpls; 04448 dptr = datad + i * wpld; 04449 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04450 *dptr = (*(sptr - wpls23)) & 04451 (*(sptr - wpls14)) & 04452 (*(sptr - wpls5)) & 04453 (*(sptr + wpls4)) & 04454 (*(sptr + wpls13)) & 04455 (*(sptr + wpls22)); 04456 } 04457 } 04458 } 04459 04460 static void 04461 fdilate_2_68(l_uint32 *datad, 04462 l_int32 w, 04463 l_int32 h, 04464 l_int32 wpld, 04465 l_uint32 *datas, 04466 l_int32 wpls) 04467 { 04468 l_int32 i; 04469 register l_int32 j, pwpls; 04470 register l_uint32 *sptr, *dptr; 04471 04472 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04473 04474 for (i = 0; i < h; i++) { 04475 sptr = datas + i * wpls; 04476 dptr = datad + i * wpld; 04477 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04478 *dptr = ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | 04479 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | 04480 (*sptr) | 04481 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | 04482 ((*(sptr) >> 22) | (*(sptr - 1) << 10)); 04483 } 04484 } 04485 } 04486 04487 static void 04488 ferode_2_68(l_uint32 *datad, 04489 l_int32 w, 04490 l_int32 h, 04491 l_int32 wpld, 04492 l_uint32 *datas, 04493 l_int32 wpls) 04494 { 04495 l_int32 i; 04496 register l_int32 j, pwpls; 04497 register l_uint32 *sptr, *dptr; 04498 04499 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04500 04501 for (i = 0; i < h; i++) { 04502 sptr = datas + i * wpls; 04503 dptr = datad + i * wpld; 04504 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04505 *dptr = ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & 04506 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & 04507 (*sptr) & 04508 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & 04509 ((*(sptr) << 22) | (*(sptr + 1) >> 10)); 04510 } 04511 } 04512 } 04513 04514 static void 04515 fdilate_2_69(l_uint32 *datad, 04516 l_int32 w, 04517 l_int32 h, 04518 l_int32 wpld, 04519 l_uint32 *datas, 04520 l_int32 wpls) 04521 { 04522 l_int32 i; 04523 register l_int32 j, pwpls; 04524 register l_uint32 *sptr, *dptr; 04525 l_int32 wpls11; 04526 l_int32 wpls22; 04527 04528 wpls11 = 11 * wpls; 04529 wpls22 = 22 * wpls; 04530 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04531 04532 for (i = 0; i < h; i++) { 04533 sptr = datas + i * wpls; 04534 dptr = datad + i * wpld; 04535 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04536 *dptr = (*(sptr + wpls22)) | 04537 (*(sptr + wpls11)) | 04538 (*sptr) | 04539 (*(sptr - wpls11)) | 04540 (*(sptr - wpls22)); 04541 } 04542 } 04543 } 04544 04545 static void 04546 ferode_2_69(l_uint32 *datad, 04547 l_int32 w, 04548 l_int32 h, 04549 l_int32 wpld, 04550 l_uint32 *datas, 04551 l_int32 wpls) 04552 { 04553 l_int32 i; 04554 register l_int32 j, pwpls; 04555 register l_uint32 *sptr, *dptr; 04556 l_int32 wpls11; 04557 l_int32 wpls22; 04558 04559 wpls11 = 11 * wpls; 04560 wpls22 = 22 * wpls; 04561 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04562 04563 for (i = 0; i < h; i++) { 04564 sptr = datas + i * wpls; 04565 dptr = datad + i * wpld; 04566 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04567 *dptr = (*(sptr - wpls22)) & 04568 (*(sptr - wpls11)) & 04569 (*sptr) & 04570 (*(sptr + wpls11)) & 04571 (*(sptr + wpls22)); 04572 } 04573 } 04574 } 04575 04576 static void 04577 fdilate_2_70(l_uint32 *datad, 04578 l_int32 w, 04579 l_int32 h, 04580 l_int32 wpld, 04581 l_uint32 *datas, 04582 l_int32 wpls) 04583 { 04584 l_int32 i; 04585 register l_int32 j, pwpls; 04586 register l_uint32 *sptr, *dptr; 04587 04588 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04589 04590 for (i = 0; i < h; i++) { 04591 sptr = datas + i * wpls; 04592 dptr = datad + i * wpld; 04593 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04594 *dptr = ((*(sptr) << 24) | (*(sptr + 1) >> 8)) | 04595 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | 04596 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | 04597 (*sptr) | 04598 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | 04599 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | 04600 ((*(sptr) >> 24) | (*(sptr - 1) << 8)); 04601 } 04602 } 04603 } 04604 04605 static void 04606 ferode_2_70(l_uint32 *datad, 04607 l_int32 w, 04608 l_int32 h, 04609 l_int32 wpld, 04610 l_uint32 *datas, 04611 l_int32 wpls) 04612 { 04613 l_int32 i; 04614 register l_int32 j, pwpls; 04615 register l_uint32 *sptr, *dptr; 04616 04617 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04618 04619 for (i = 0; i < h; i++) { 04620 sptr = datas + i * wpls; 04621 dptr = datad + i * wpld; 04622 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04623 *dptr = ((*(sptr) >> 24) | (*(sptr - 1) << 8)) & 04624 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & 04625 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & 04626 (*sptr) & 04627 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & 04628 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & 04629 ((*(sptr) << 24) | (*(sptr + 1) >> 8)); 04630 } 04631 } 04632 } 04633 04634 static void 04635 fdilate_2_71(l_uint32 *datad, 04636 l_int32 w, 04637 l_int32 h, 04638 l_int32 wpld, 04639 l_uint32 *datas, 04640 l_int32 wpls) 04641 { 04642 l_int32 i; 04643 register l_int32 j, pwpls; 04644 register l_uint32 *sptr, *dptr; 04645 l_int32 wpls8; 04646 l_int32 wpls16; 04647 l_int32 wpls24; 04648 04649 wpls8 = 8 * wpls; 04650 wpls16 = 16 * wpls; 04651 wpls24 = 24 * wpls; 04652 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04653 04654 for (i = 0; i < h; i++) { 04655 sptr = datas + i * wpls; 04656 dptr = datad + i * wpld; 04657 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04658 *dptr = (*(sptr + wpls24)) | 04659 (*(sptr + wpls16)) | 04660 (*(sptr + wpls8)) | 04661 (*sptr) | 04662 (*(sptr - wpls8)) | 04663 (*(sptr - wpls16)) | 04664 (*(sptr - wpls24)); 04665 } 04666 } 04667 } 04668 04669 static void 04670 ferode_2_71(l_uint32 *datad, 04671 l_int32 w, 04672 l_int32 h, 04673 l_int32 wpld, 04674 l_uint32 *datas, 04675 l_int32 wpls) 04676 { 04677 l_int32 i; 04678 register l_int32 j, pwpls; 04679 register l_uint32 *sptr, *dptr; 04680 l_int32 wpls8; 04681 l_int32 wpls16; 04682 l_int32 wpls24; 04683 04684 wpls8 = 8 * wpls; 04685 wpls16 = 16 * wpls; 04686 wpls24 = 24 * wpls; 04687 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04688 04689 for (i = 0; i < h; i++) { 04690 sptr = datas + i * wpls; 04691 dptr = datad + i * wpld; 04692 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04693 *dptr = (*(sptr - wpls24)) & 04694 (*(sptr - wpls16)) & 04695 (*(sptr - wpls8)) & 04696 (*sptr) & 04697 (*(sptr + wpls8)) & 04698 (*(sptr + wpls16)) & 04699 (*(sptr + wpls24)); 04700 } 04701 } 04702 } 04703 04704 static void 04705 fdilate_2_72(l_uint32 *datad, 04706 l_int32 w, 04707 l_int32 h, 04708 l_int32 wpld, 04709 l_uint32 *datas, 04710 l_int32 wpls) 04711 { 04712 l_int32 i; 04713 register l_int32 j, pwpls; 04714 register l_uint32 *sptr, *dptr; 04715 04716 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04717 04718 for (i = 0; i < h; i++) { 04719 sptr = datas + i * wpls; 04720 dptr = datad + i * wpld; 04721 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04722 *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) | 04723 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | 04724 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | 04725 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | 04726 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | 04727 ((*(sptr) >> 25) | (*(sptr - 1) << 7)); 04728 } 04729 } 04730 } 04731 04732 static void 04733 ferode_2_72(l_uint32 *datad, 04734 l_int32 w, 04735 l_int32 h, 04736 l_int32 wpld, 04737 l_uint32 *datas, 04738 l_int32 wpls) 04739 { 04740 l_int32 i; 04741 register l_int32 j, pwpls; 04742 register l_uint32 *sptr, *dptr; 04743 04744 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04745 04746 for (i = 0; i < h; i++) { 04747 sptr = datas + i * wpls; 04748 dptr = datad + i * wpld; 04749 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04750 *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) & 04751 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & 04752 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & 04753 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & 04754 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & 04755 ((*(sptr) << 25) | (*(sptr + 1) >> 7)); 04756 } 04757 } 04758 } 04759 04760 static void 04761 fdilate_2_73(l_uint32 *datad, 04762 l_int32 w, 04763 l_int32 h, 04764 l_int32 wpld, 04765 l_uint32 *datas, 04766 l_int32 wpls) 04767 { 04768 l_int32 i; 04769 register l_int32 j, pwpls; 04770 register l_uint32 *sptr, *dptr; 04771 l_int32 wpls5; 04772 l_int32 wpls15; 04773 l_int32 wpls25; 04774 04775 wpls5 = 5 * wpls; 04776 wpls15 = 15 * wpls; 04777 wpls25 = 25 * wpls; 04778 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04779 04780 for (i = 0; i < h; i++) { 04781 sptr = datas + i * wpls; 04782 dptr = datad + i * wpld; 04783 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04784 *dptr = (*(sptr + wpls25)) | 04785 (*(sptr + wpls15)) | 04786 (*(sptr + wpls5)) | 04787 (*(sptr - wpls5)) | 04788 (*(sptr - wpls15)) | 04789 (*(sptr - wpls25)); 04790 } 04791 } 04792 } 04793 04794 static void 04795 ferode_2_73(l_uint32 *datad, 04796 l_int32 w, 04797 l_int32 h, 04798 l_int32 wpld, 04799 l_uint32 *datas, 04800 l_int32 wpls) 04801 { 04802 l_int32 i; 04803 register l_int32 j, pwpls; 04804 register l_uint32 *sptr, *dptr; 04805 l_int32 wpls5; 04806 l_int32 wpls15; 04807 l_int32 wpls25; 04808 04809 wpls5 = 5 * wpls; 04810 wpls15 = 15 * wpls; 04811 wpls25 = 25 * wpls; 04812 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04813 04814 for (i = 0; i < h; i++) { 04815 sptr = datas + i * wpls; 04816 dptr = datad + i * wpld; 04817 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04818 *dptr = (*(sptr - wpls25)) & 04819 (*(sptr - wpls15)) & 04820 (*(sptr - wpls5)) & 04821 (*(sptr + wpls5)) & 04822 (*(sptr + wpls15)) & 04823 (*(sptr + wpls25)); 04824 } 04825 } 04826 } 04827 04828 static void 04829 fdilate_2_74(l_uint32 *datad, 04830 l_int32 w, 04831 l_int32 h, 04832 l_int32 wpld, 04833 l_uint32 *datas, 04834 l_int32 wpls) 04835 { 04836 l_int32 i; 04837 register l_int32 j, pwpls; 04838 register l_uint32 *sptr, *dptr; 04839 04840 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04841 04842 for (i = 0; i < h; i++) { 04843 sptr = datas + i * wpls; 04844 dptr = datad + i * wpld; 04845 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04846 *dptr = ((*(sptr) << 27) | (*(sptr + 1) >> 5)) | 04847 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | 04848 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | 04849 (*sptr) | 04850 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | 04851 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | 04852 ((*(sptr) >> 27) | (*(sptr - 1) << 5)); 04853 } 04854 } 04855 } 04856 04857 static void 04858 ferode_2_74(l_uint32 *datad, 04859 l_int32 w, 04860 l_int32 h, 04861 l_int32 wpld, 04862 l_uint32 *datas, 04863 l_int32 wpls) 04864 { 04865 l_int32 i; 04866 register l_int32 j, pwpls; 04867 register l_uint32 *sptr, *dptr; 04868 04869 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04870 04871 for (i = 0; i < h; i++) { 04872 sptr = datas + i * wpls; 04873 dptr = datad + i * wpld; 04874 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04875 *dptr = ((*(sptr) >> 27) | (*(sptr - 1) << 5)) & 04876 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & 04877 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & 04878 (*sptr) & 04879 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & 04880 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & 04881 ((*(sptr) << 27) | (*(sptr + 1) >> 5)); 04882 } 04883 } 04884 } 04885 04886 static void 04887 fdilate_2_75(l_uint32 *datad, 04888 l_int32 w, 04889 l_int32 h, 04890 l_int32 wpld, 04891 l_uint32 *datas, 04892 l_int32 wpls) 04893 { 04894 l_int32 i; 04895 register l_int32 j, pwpls; 04896 register l_uint32 *sptr, *dptr; 04897 l_int32 wpls9; 04898 l_int32 wpls18; 04899 l_int32 wpls27; 04900 04901 wpls9 = 9 * wpls; 04902 wpls18 = 18 * wpls; 04903 wpls27 = 27 * wpls; 04904 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04905 04906 for (i = 0; i < h; i++) { 04907 sptr = datas + i * wpls; 04908 dptr = datad + i * wpld; 04909 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04910 *dptr = (*(sptr + wpls27)) | 04911 (*(sptr + wpls18)) | 04912 (*(sptr + wpls9)) | 04913 (*sptr) | 04914 (*(sptr - wpls9)) | 04915 (*(sptr - wpls18)) | 04916 (*(sptr - wpls27)); 04917 } 04918 } 04919 } 04920 04921 static void 04922 ferode_2_75(l_uint32 *datad, 04923 l_int32 w, 04924 l_int32 h, 04925 l_int32 wpld, 04926 l_uint32 *datas, 04927 l_int32 wpls) 04928 { 04929 l_int32 i; 04930 register l_int32 j, pwpls; 04931 register l_uint32 *sptr, *dptr; 04932 l_int32 wpls9; 04933 l_int32 wpls18; 04934 l_int32 wpls27; 04935 04936 wpls9 = 9 * wpls; 04937 wpls18 = 18 * wpls; 04938 wpls27 = 27 * wpls; 04939 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ 04940 04941 for (i = 0; i < h; i++) { 04942 sptr = datas + i * wpls; 04943 dptr = datad + i * wpld; 04944 for (j = 0; j < pwpls; j++, sptr++, dptr++) { 04945 *dptr = (*(sptr - wpls27)) & 04946 (*(sptr - wpls18)) & 04947 (*(sptr - wpls9)) & 04948 (*sptr) & 04949 (*(sptr + wpls9)) & 04950 (*(sptr + wpls18)) & 04951 (*(sptr + wpls27)); 04952 } 04953 } 04954 } 04955