Leptonica 1.68
C Image Processing Library

fmorphgenlow.1.c

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