Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/leptonica/src/fmorphgenlow.1.c @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 /*====================================================================* | |
| 2 - Copyright (C) 2001 Leptonica. All rights reserved. | |
| 3 - | |
| 4 - Redistribution and use in source and binary forms, with or without | |
| 5 - modification, are permitted provided that the following conditions | |
| 6 - are met: | |
| 7 - 1. Redistributions of source code must retain the above copyright | |
| 8 - notice, this list of conditions and the following disclaimer. | |
| 9 - 2. Redistributions in binary form must reproduce the above | |
| 10 - copyright notice, this list of conditions and the following | |
| 11 - disclaimer in the documentation and/or other materials | |
| 12 - provided with the distribution. | |
| 13 - | |
| 14 - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| 15 - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| 16 - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| 17 - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY | |
| 18 - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
| 19 - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
| 20 - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
| 21 - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |
| 22 - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
| 23 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
| 24 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 25 *====================================================================*/ | |
| 26 | |
| 27 /*! | |
| 28 * Low-level fast binary morphology with auto-generated sels | |
| 29 * | |
| 30 * Dispatcher: | |
| 31 * l_int32 fmorphopgen_low_1() | |
| 32 * | |
| 33 * Static Low-level: | |
| 34 * void fdilate_1_*() | |
| 35 * void ferode_1_*() | |
| 36 */ | |
| 37 | |
| 38 #include "allheaders.h" | |
| 39 | |
| 40 static void fdilate_1_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 41 static void ferode_1_0(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 42 static void fdilate_1_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 43 static void ferode_1_1(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 44 static void fdilate_1_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 45 static void ferode_1_2(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 46 static void fdilate_1_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 47 static void ferode_1_3(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 48 static void fdilate_1_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 49 static void ferode_1_4(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 50 static void fdilate_1_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 51 static void ferode_1_5(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 52 static void fdilate_1_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 53 static void ferode_1_6(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 54 static void fdilate_1_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 55 static void ferode_1_7(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 56 static void fdilate_1_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 57 static void ferode_1_8(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 58 static void fdilate_1_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 59 static void ferode_1_9(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 60 static void fdilate_1_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 61 static void ferode_1_10(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 62 static void fdilate_1_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 63 static void ferode_1_11(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 64 static void fdilate_1_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 65 static void ferode_1_12(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 66 static void fdilate_1_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 67 static void ferode_1_13(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 68 static void fdilate_1_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 69 static void ferode_1_14(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 70 static void fdilate_1_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 71 static void ferode_1_15(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 72 static void fdilate_1_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 73 static void ferode_1_16(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 74 static void fdilate_1_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 75 static void ferode_1_17(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 76 static void fdilate_1_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 77 static void ferode_1_18(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 78 static void fdilate_1_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 79 static void ferode_1_19(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 80 static void fdilate_1_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 81 static void ferode_1_20(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 82 static void fdilate_1_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 83 static void ferode_1_21(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 84 static void fdilate_1_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 85 static void ferode_1_22(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 86 static void fdilate_1_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 87 static void ferode_1_23(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 88 static void fdilate_1_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 89 static void ferode_1_24(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 90 static void fdilate_1_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 91 static void ferode_1_25(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 92 static void fdilate_1_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 93 static void ferode_1_26(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 94 static void fdilate_1_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 95 static void ferode_1_27(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 96 static void fdilate_1_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 97 static void ferode_1_28(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 98 static void fdilate_1_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 99 static void ferode_1_29(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 100 static void fdilate_1_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 101 static void ferode_1_30(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 102 static void fdilate_1_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 103 static void ferode_1_31(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 104 static void fdilate_1_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 105 static void ferode_1_32(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 106 static void fdilate_1_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 107 static void ferode_1_33(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 108 static void fdilate_1_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 109 static void ferode_1_34(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 110 static void fdilate_1_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 111 static void ferode_1_35(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 112 static void fdilate_1_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 113 static void ferode_1_36(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 114 static void fdilate_1_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 115 static void ferode_1_37(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 116 static void fdilate_1_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 117 static void ferode_1_38(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 118 static void fdilate_1_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 119 static void ferode_1_39(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 120 static void fdilate_1_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 121 static void ferode_1_40(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 122 static void fdilate_1_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 123 static void ferode_1_41(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 124 static void fdilate_1_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 125 static void ferode_1_42(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 126 static void fdilate_1_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 127 static void ferode_1_43(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 128 static void fdilate_1_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 129 static void ferode_1_44(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 130 static void fdilate_1_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 131 static void ferode_1_45(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 132 static void fdilate_1_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 133 static void ferode_1_46(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 134 static void fdilate_1_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 135 static void ferode_1_47(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 136 static void fdilate_1_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 137 static void ferode_1_48(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 138 static void fdilate_1_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 139 static void ferode_1_49(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 140 static void fdilate_1_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 141 static void ferode_1_50(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 142 static void fdilate_1_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 143 static void ferode_1_51(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 144 static void fdilate_1_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 145 static void ferode_1_52(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 146 static void fdilate_1_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 147 static void ferode_1_53(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 148 static void fdilate_1_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 149 static void ferode_1_54(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 150 static void fdilate_1_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 151 static void ferode_1_55(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 152 static void fdilate_1_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 153 static void ferode_1_56(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 154 static void fdilate_1_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 155 static void ferode_1_57(l_uint32 *, l_int32, l_int32, l_int32, l_uint32 *, l_int32); | |
| 156 | |
| 157 | |
| 158 /*---------------------------------------------------------------------* | |
| 159 * Fast morph dispatcher * | |
| 160 *---------------------------------------------------------------------*/ | |
| 161 /*! | |
| 162 * fmorphopgen_low_1() | |
| 163 * | |
| 164 * a dispatcher to appropriate low-level code | |
| 165 */ | |
| 166 l_int32 | |
| 167 fmorphopgen_low_1(l_uint32 *datad, | |
| 168 l_int32 w, | |
| 169 l_int32 h, | |
| 170 l_int32 wpld, | |
| 171 l_uint32 *datas, | |
| 172 l_int32 wpls, | |
| 173 l_int32 index) | |
| 174 { | |
| 175 | |
| 176 switch (index) | |
| 177 { | |
| 178 case 0: | |
| 179 fdilate_1_0(datad, w, h, wpld, datas, wpls); | |
| 180 break; | |
| 181 case 1: | |
| 182 ferode_1_0(datad, w, h, wpld, datas, wpls); | |
| 183 break; | |
| 184 case 2: | |
| 185 fdilate_1_1(datad, w, h, wpld, datas, wpls); | |
| 186 break; | |
| 187 case 3: | |
| 188 ferode_1_1(datad, w, h, wpld, datas, wpls); | |
| 189 break; | |
| 190 case 4: | |
| 191 fdilate_1_2(datad, w, h, wpld, datas, wpls); | |
| 192 break; | |
| 193 case 5: | |
| 194 ferode_1_2(datad, w, h, wpld, datas, wpls); | |
| 195 break; | |
| 196 case 6: | |
| 197 fdilate_1_3(datad, w, h, wpld, datas, wpls); | |
| 198 break; | |
| 199 case 7: | |
| 200 ferode_1_3(datad, w, h, wpld, datas, wpls); | |
| 201 break; | |
| 202 case 8: | |
| 203 fdilate_1_4(datad, w, h, wpld, datas, wpls); | |
| 204 break; | |
| 205 case 9: | |
| 206 ferode_1_4(datad, w, h, wpld, datas, wpls); | |
| 207 break; | |
| 208 case 10: | |
| 209 fdilate_1_5(datad, w, h, wpld, datas, wpls); | |
| 210 break; | |
| 211 case 11: | |
| 212 ferode_1_5(datad, w, h, wpld, datas, wpls); | |
| 213 break; | |
| 214 case 12: | |
| 215 fdilate_1_6(datad, w, h, wpld, datas, wpls); | |
| 216 break; | |
| 217 case 13: | |
| 218 ferode_1_6(datad, w, h, wpld, datas, wpls); | |
| 219 break; | |
| 220 case 14: | |
| 221 fdilate_1_7(datad, w, h, wpld, datas, wpls); | |
| 222 break; | |
| 223 case 15: | |
| 224 ferode_1_7(datad, w, h, wpld, datas, wpls); | |
| 225 break; | |
| 226 case 16: | |
| 227 fdilate_1_8(datad, w, h, wpld, datas, wpls); | |
| 228 break; | |
| 229 case 17: | |
| 230 ferode_1_8(datad, w, h, wpld, datas, wpls); | |
| 231 break; | |
| 232 case 18: | |
| 233 fdilate_1_9(datad, w, h, wpld, datas, wpls); | |
| 234 break; | |
| 235 case 19: | |
| 236 ferode_1_9(datad, w, h, wpld, datas, wpls); | |
| 237 break; | |
| 238 case 20: | |
| 239 fdilate_1_10(datad, w, h, wpld, datas, wpls); | |
| 240 break; | |
| 241 case 21: | |
| 242 ferode_1_10(datad, w, h, wpld, datas, wpls); | |
| 243 break; | |
| 244 case 22: | |
| 245 fdilate_1_11(datad, w, h, wpld, datas, wpls); | |
| 246 break; | |
| 247 case 23: | |
| 248 ferode_1_11(datad, w, h, wpld, datas, wpls); | |
| 249 break; | |
| 250 case 24: | |
| 251 fdilate_1_12(datad, w, h, wpld, datas, wpls); | |
| 252 break; | |
| 253 case 25: | |
| 254 ferode_1_12(datad, w, h, wpld, datas, wpls); | |
| 255 break; | |
| 256 case 26: | |
| 257 fdilate_1_13(datad, w, h, wpld, datas, wpls); | |
| 258 break; | |
| 259 case 27: | |
| 260 ferode_1_13(datad, w, h, wpld, datas, wpls); | |
| 261 break; | |
| 262 case 28: | |
| 263 fdilate_1_14(datad, w, h, wpld, datas, wpls); | |
| 264 break; | |
| 265 case 29: | |
| 266 ferode_1_14(datad, w, h, wpld, datas, wpls); | |
| 267 break; | |
| 268 case 30: | |
| 269 fdilate_1_15(datad, w, h, wpld, datas, wpls); | |
| 270 break; | |
| 271 case 31: | |
| 272 ferode_1_15(datad, w, h, wpld, datas, wpls); | |
| 273 break; | |
| 274 case 32: | |
| 275 fdilate_1_16(datad, w, h, wpld, datas, wpls); | |
| 276 break; | |
| 277 case 33: | |
| 278 ferode_1_16(datad, w, h, wpld, datas, wpls); | |
| 279 break; | |
| 280 case 34: | |
| 281 fdilate_1_17(datad, w, h, wpld, datas, wpls); | |
| 282 break; | |
| 283 case 35: | |
| 284 ferode_1_17(datad, w, h, wpld, datas, wpls); | |
| 285 break; | |
| 286 case 36: | |
| 287 fdilate_1_18(datad, w, h, wpld, datas, wpls); | |
| 288 break; | |
| 289 case 37: | |
| 290 ferode_1_18(datad, w, h, wpld, datas, wpls); | |
| 291 break; | |
| 292 case 38: | |
| 293 fdilate_1_19(datad, w, h, wpld, datas, wpls); | |
| 294 break; | |
| 295 case 39: | |
| 296 ferode_1_19(datad, w, h, wpld, datas, wpls); | |
| 297 break; | |
| 298 case 40: | |
| 299 fdilate_1_20(datad, w, h, wpld, datas, wpls); | |
| 300 break; | |
| 301 case 41: | |
| 302 ferode_1_20(datad, w, h, wpld, datas, wpls); | |
| 303 break; | |
| 304 case 42: | |
| 305 fdilate_1_21(datad, w, h, wpld, datas, wpls); | |
| 306 break; | |
| 307 case 43: | |
| 308 ferode_1_21(datad, w, h, wpld, datas, wpls); | |
| 309 break; | |
| 310 case 44: | |
| 311 fdilate_1_22(datad, w, h, wpld, datas, wpls); | |
| 312 break; | |
| 313 case 45: | |
| 314 ferode_1_22(datad, w, h, wpld, datas, wpls); | |
| 315 break; | |
| 316 case 46: | |
| 317 fdilate_1_23(datad, w, h, wpld, datas, wpls); | |
| 318 break; | |
| 319 case 47: | |
| 320 ferode_1_23(datad, w, h, wpld, datas, wpls); | |
| 321 break; | |
| 322 case 48: | |
| 323 fdilate_1_24(datad, w, h, wpld, datas, wpls); | |
| 324 break; | |
| 325 case 49: | |
| 326 ferode_1_24(datad, w, h, wpld, datas, wpls); | |
| 327 break; | |
| 328 case 50: | |
| 329 fdilate_1_25(datad, w, h, wpld, datas, wpls); | |
| 330 break; | |
| 331 case 51: | |
| 332 ferode_1_25(datad, w, h, wpld, datas, wpls); | |
| 333 break; | |
| 334 case 52: | |
| 335 fdilate_1_26(datad, w, h, wpld, datas, wpls); | |
| 336 break; | |
| 337 case 53: | |
| 338 ferode_1_26(datad, w, h, wpld, datas, wpls); | |
| 339 break; | |
| 340 case 54: | |
| 341 fdilate_1_27(datad, w, h, wpld, datas, wpls); | |
| 342 break; | |
| 343 case 55: | |
| 344 ferode_1_27(datad, w, h, wpld, datas, wpls); | |
| 345 break; | |
| 346 case 56: | |
| 347 fdilate_1_28(datad, w, h, wpld, datas, wpls); | |
| 348 break; | |
| 349 case 57: | |
| 350 ferode_1_28(datad, w, h, wpld, datas, wpls); | |
| 351 break; | |
| 352 case 58: | |
| 353 fdilate_1_29(datad, w, h, wpld, datas, wpls); | |
| 354 break; | |
| 355 case 59: | |
| 356 ferode_1_29(datad, w, h, wpld, datas, wpls); | |
| 357 break; | |
| 358 case 60: | |
| 359 fdilate_1_30(datad, w, h, wpld, datas, wpls); | |
| 360 break; | |
| 361 case 61: | |
| 362 ferode_1_30(datad, w, h, wpld, datas, wpls); | |
| 363 break; | |
| 364 case 62: | |
| 365 fdilate_1_31(datad, w, h, wpld, datas, wpls); | |
| 366 break; | |
| 367 case 63: | |
| 368 ferode_1_31(datad, w, h, wpld, datas, wpls); | |
| 369 break; | |
| 370 case 64: | |
| 371 fdilate_1_32(datad, w, h, wpld, datas, wpls); | |
| 372 break; | |
| 373 case 65: | |
| 374 ferode_1_32(datad, w, h, wpld, datas, wpls); | |
| 375 break; | |
| 376 case 66: | |
| 377 fdilate_1_33(datad, w, h, wpld, datas, wpls); | |
| 378 break; | |
| 379 case 67: | |
| 380 ferode_1_33(datad, w, h, wpld, datas, wpls); | |
| 381 break; | |
| 382 case 68: | |
| 383 fdilate_1_34(datad, w, h, wpld, datas, wpls); | |
| 384 break; | |
| 385 case 69: | |
| 386 ferode_1_34(datad, w, h, wpld, datas, wpls); | |
| 387 break; | |
| 388 case 70: | |
| 389 fdilate_1_35(datad, w, h, wpld, datas, wpls); | |
| 390 break; | |
| 391 case 71: | |
| 392 ferode_1_35(datad, w, h, wpld, datas, wpls); | |
| 393 break; | |
| 394 case 72: | |
| 395 fdilate_1_36(datad, w, h, wpld, datas, wpls); | |
| 396 break; | |
| 397 case 73: | |
| 398 ferode_1_36(datad, w, h, wpld, datas, wpls); | |
| 399 break; | |
| 400 case 74: | |
| 401 fdilate_1_37(datad, w, h, wpld, datas, wpls); | |
| 402 break; | |
| 403 case 75: | |
| 404 ferode_1_37(datad, w, h, wpld, datas, wpls); | |
| 405 break; | |
| 406 case 76: | |
| 407 fdilate_1_38(datad, w, h, wpld, datas, wpls); | |
| 408 break; | |
| 409 case 77: | |
| 410 ferode_1_38(datad, w, h, wpld, datas, wpls); | |
| 411 break; | |
| 412 case 78: | |
| 413 fdilate_1_39(datad, w, h, wpld, datas, wpls); | |
| 414 break; | |
| 415 case 79: | |
| 416 ferode_1_39(datad, w, h, wpld, datas, wpls); | |
| 417 break; | |
| 418 case 80: | |
| 419 fdilate_1_40(datad, w, h, wpld, datas, wpls); | |
| 420 break; | |
| 421 case 81: | |
| 422 ferode_1_40(datad, w, h, wpld, datas, wpls); | |
| 423 break; | |
| 424 case 82: | |
| 425 fdilate_1_41(datad, w, h, wpld, datas, wpls); | |
| 426 break; | |
| 427 case 83: | |
| 428 ferode_1_41(datad, w, h, wpld, datas, wpls); | |
| 429 break; | |
| 430 case 84: | |
| 431 fdilate_1_42(datad, w, h, wpld, datas, wpls); | |
| 432 break; | |
| 433 case 85: | |
| 434 ferode_1_42(datad, w, h, wpld, datas, wpls); | |
| 435 break; | |
| 436 case 86: | |
| 437 fdilate_1_43(datad, w, h, wpld, datas, wpls); | |
| 438 break; | |
| 439 case 87: | |
| 440 ferode_1_43(datad, w, h, wpld, datas, wpls); | |
| 441 break; | |
| 442 case 88: | |
| 443 fdilate_1_44(datad, w, h, wpld, datas, wpls); | |
| 444 break; | |
| 445 case 89: | |
| 446 ferode_1_44(datad, w, h, wpld, datas, wpls); | |
| 447 break; | |
| 448 case 90: | |
| 449 fdilate_1_45(datad, w, h, wpld, datas, wpls); | |
| 450 break; | |
| 451 case 91: | |
| 452 ferode_1_45(datad, w, h, wpld, datas, wpls); | |
| 453 break; | |
| 454 case 92: | |
| 455 fdilate_1_46(datad, w, h, wpld, datas, wpls); | |
| 456 break; | |
| 457 case 93: | |
| 458 ferode_1_46(datad, w, h, wpld, datas, wpls); | |
| 459 break; | |
| 460 case 94: | |
| 461 fdilate_1_47(datad, w, h, wpld, datas, wpls); | |
| 462 break; | |
| 463 case 95: | |
| 464 ferode_1_47(datad, w, h, wpld, datas, wpls); | |
| 465 break; | |
| 466 case 96: | |
| 467 fdilate_1_48(datad, w, h, wpld, datas, wpls); | |
| 468 break; | |
| 469 case 97: | |
| 470 ferode_1_48(datad, w, h, wpld, datas, wpls); | |
| 471 break; | |
| 472 case 98: | |
| 473 fdilate_1_49(datad, w, h, wpld, datas, wpls); | |
| 474 break; | |
| 475 case 99: | |
| 476 ferode_1_49(datad, w, h, wpld, datas, wpls); | |
| 477 break; | |
| 478 case 100: | |
| 479 fdilate_1_50(datad, w, h, wpld, datas, wpls); | |
| 480 break; | |
| 481 case 101: | |
| 482 ferode_1_50(datad, w, h, wpld, datas, wpls); | |
| 483 break; | |
| 484 case 102: | |
| 485 fdilate_1_51(datad, w, h, wpld, datas, wpls); | |
| 486 break; | |
| 487 case 103: | |
| 488 ferode_1_51(datad, w, h, wpld, datas, wpls); | |
| 489 break; | |
| 490 case 104: | |
| 491 fdilate_1_52(datad, w, h, wpld, datas, wpls); | |
| 492 break; | |
| 493 case 105: | |
| 494 ferode_1_52(datad, w, h, wpld, datas, wpls); | |
| 495 break; | |
| 496 case 106: | |
| 497 fdilate_1_53(datad, w, h, wpld, datas, wpls); | |
| 498 break; | |
| 499 case 107: | |
| 500 ferode_1_53(datad, w, h, wpld, datas, wpls); | |
| 501 break; | |
| 502 case 108: | |
| 503 fdilate_1_54(datad, w, h, wpld, datas, wpls); | |
| 504 break; | |
| 505 case 109: | |
| 506 ferode_1_54(datad, w, h, wpld, datas, wpls); | |
| 507 break; | |
| 508 case 110: | |
| 509 fdilate_1_55(datad, w, h, wpld, datas, wpls); | |
| 510 break; | |
| 511 case 111: | |
| 512 ferode_1_55(datad, w, h, wpld, datas, wpls); | |
| 513 break; | |
| 514 case 112: | |
| 515 fdilate_1_56(datad, w, h, wpld, datas, wpls); | |
| 516 break; | |
| 517 case 113: | |
| 518 ferode_1_56(datad, w, h, wpld, datas, wpls); | |
| 519 break; | |
| 520 case 114: | |
| 521 fdilate_1_57(datad, w, h, wpld, datas, wpls); | |
| 522 break; | |
| 523 case 115: | |
| 524 ferode_1_57(datad, w, h, wpld, datas, wpls); | |
| 525 break; | |
| 526 } | |
| 527 | |
| 528 return 0; | |
| 529 } | |
| 530 | |
| 531 | |
| 532 /*--------------------------------------------------------------------------* | |
| 533 * Low-level auto-generated static routines * | |
| 534 *--------------------------------------------------------------------------*/ | |
| 535 /* | |
| 536 * N.B. In all the low-level routines, the part of the image | |
| 537 * that is accessed has been clipped by 32 pixels on | |
| 538 * all four sides. This is done in the higher level | |
| 539 * code by redefining w and h smaller and by moving the | |
| 540 * start-of-image pointers up to the beginning of this | |
| 541 * interior rectangle. | |
| 542 */ | |
| 543 static void | |
| 544 fdilate_1_0(l_uint32 *datad, | |
| 545 l_int32 w, | |
| 546 l_int32 h, | |
| 547 l_int32 wpld, | |
| 548 l_uint32 *datas, | |
| 549 l_int32 wpls) | |
| 550 { | |
| 551 l_int32 i; | |
| 552 l_int32 j, pwpls; | |
| 553 l_uint32 *sptr, *dptr; | |
| 554 | |
| 555 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 556 | |
| 557 for (i = 0; i < h; i++) { | |
| 558 sptr = datas + i * wpls; | |
| 559 dptr = datad + i * wpld; | |
| 560 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 561 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 562 (*sptr); | |
| 563 } | |
| 564 } | |
| 565 } | |
| 566 | |
| 567 static void | |
| 568 ferode_1_0(l_uint32 *datad, | |
| 569 l_int32 w, | |
| 570 l_int32 h, | |
| 571 l_int32 wpld, | |
| 572 l_uint32 *datas, | |
| 573 l_int32 wpls) | |
| 574 { | |
| 575 l_int32 i; | |
| 576 l_int32 j, pwpls; | |
| 577 l_uint32 *sptr, *dptr; | |
| 578 | |
| 579 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 580 | |
| 581 for (i = 0; i < h; i++) { | |
| 582 sptr = datas + i * wpls; | |
| 583 dptr = datad + i * wpld; | |
| 584 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 585 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 586 (*sptr); | |
| 587 } | |
| 588 } | |
| 589 } | |
| 590 | |
| 591 static void | |
| 592 fdilate_1_1(l_uint32 *datad, | |
| 593 l_int32 w, | |
| 594 l_int32 h, | |
| 595 l_int32 wpld, | |
| 596 l_uint32 *datas, | |
| 597 l_int32 wpls) | |
| 598 { | |
| 599 l_int32 i; | |
| 600 l_int32 j, pwpls; | |
| 601 l_uint32 *sptr, *dptr; | |
| 602 | |
| 603 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 604 | |
| 605 for (i = 0; i < h; i++) { | |
| 606 sptr = datas + i * wpls; | |
| 607 dptr = datad + i * wpld; | |
| 608 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 609 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 610 (*sptr) | | |
| 611 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); | |
| 612 } | |
| 613 } | |
| 614 } | |
| 615 | |
| 616 static void | |
| 617 ferode_1_1(l_uint32 *datad, | |
| 618 l_int32 w, | |
| 619 l_int32 h, | |
| 620 l_int32 wpld, | |
| 621 l_uint32 *datas, | |
| 622 l_int32 wpls) | |
| 623 { | |
| 624 l_int32 i; | |
| 625 l_int32 j, pwpls; | |
| 626 l_uint32 *sptr, *dptr; | |
| 627 | |
| 628 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 629 | |
| 630 for (i = 0; i < h; i++) { | |
| 631 sptr = datas + i * wpls; | |
| 632 dptr = datad + i * wpld; | |
| 633 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 634 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 635 (*sptr) & | |
| 636 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); | |
| 637 } | |
| 638 } | |
| 639 } | |
| 640 | |
| 641 static void | |
| 642 fdilate_1_2(l_uint32 *datad, | |
| 643 l_int32 w, | |
| 644 l_int32 h, | |
| 645 l_int32 wpld, | |
| 646 l_uint32 *datas, | |
| 647 l_int32 wpls) | |
| 648 { | |
| 649 l_int32 i; | |
| 650 l_int32 j, pwpls; | |
| 651 l_uint32 *sptr, *dptr; | |
| 652 | |
| 653 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 654 | |
| 655 for (i = 0; i < h; i++) { | |
| 656 sptr = datas + i * wpls; | |
| 657 dptr = datad + i * wpld; | |
| 658 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 659 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 660 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 661 (*sptr) | | |
| 662 ((*(sptr) >> 1) | (*(sptr - 1) << 31)); | |
| 663 } | |
| 664 } | |
| 665 } | |
| 666 | |
| 667 static void | |
| 668 ferode_1_2(l_uint32 *datad, | |
| 669 l_int32 w, | |
| 670 l_int32 h, | |
| 671 l_int32 wpld, | |
| 672 l_uint32 *datas, | |
| 673 l_int32 wpls) | |
| 674 { | |
| 675 l_int32 i; | |
| 676 l_int32 j, pwpls; | |
| 677 l_uint32 *sptr, *dptr; | |
| 678 | |
| 679 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 680 | |
| 681 for (i = 0; i < h; i++) { | |
| 682 sptr = datas + i * wpls; | |
| 683 dptr = datad + i * wpld; | |
| 684 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 685 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 686 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 687 (*sptr) & | |
| 688 ((*(sptr) << 1) | (*(sptr + 1) >> 31)); | |
| 689 } | |
| 690 } | |
| 691 } | |
| 692 | |
| 693 static void | |
| 694 fdilate_1_3(l_uint32 *datad, | |
| 695 l_int32 w, | |
| 696 l_int32 h, | |
| 697 l_int32 wpld, | |
| 698 l_uint32 *datas, | |
| 699 l_int32 wpls) | |
| 700 { | |
| 701 l_int32 i; | |
| 702 l_int32 j, pwpls; | |
| 703 l_uint32 *sptr, *dptr; | |
| 704 | |
| 705 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 706 | |
| 707 for (i = 0; i < h; i++) { | |
| 708 sptr = datas + i * wpls; | |
| 709 dptr = datad + i * wpld; | |
| 710 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 711 *dptr = ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 712 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 713 (*sptr) | | |
| 714 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 715 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); | |
| 716 } | |
| 717 } | |
| 718 } | |
| 719 | |
| 720 static void | |
| 721 ferode_1_3(l_uint32 *datad, | |
| 722 l_int32 w, | |
| 723 l_int32 h, | |
| 724 l_int32 wpld, | |
| 725 l_uint32 *datas, | |
| 726 l_int32 wpls) | |
| 727 { | |
| 728 l_int32 i; | |
| 729 l_int32 j, pwpls; | |
| 730 l_uint32 *sptr, *dptr; | |
| 731 | |
| 732 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 733 | |
| 734 for (i = 0; i < h; i++) { | |
| 735 sptr = datas + i * wpls; | |
| 736 dptr = datad + i * wpld; | |
| 737 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 738 *dptr = ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 739 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 740 (*sptr) & | |
| 741 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 742 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); | |
| 743 } | |
| 744 } | |
| 745 } | |
| 746 | |
| 747 static void | |
| 748 fdilate_1_4(l_uint32 *datad, | |
| 749 l_int32 w, | |
| 750 l_int32 h, | |
| 751 l_int32 wpld, | |
| 752 l_uint32 *datas, | |
| 753 l_int32 wpls) | |
| 754 { | |
| 755 l_int32 i; | |
| 756 l_int32 j, pwpls; | |
| 757 l_uint32 *sptr, *dptr; | |
| 758 | |
| 759 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 760 | |
| 761 for (i = 0; i < h; i++) { | |
| 762 sptr = datas + i * wpls; | |
| 763 dptr = datad + i * wpld; | |
| 764 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 765 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 766 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 767 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 768 (*sptr) | | |
| 769 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 770 ((*(sptr) >> 2) | (*(sptr - 1) << 30)); | |
| 771 } | |
| 772 } | |
| 773 } | |
| 774 | |
| 775 static void | |
| 776 ferode_1_4(l_uint32 *datad, | |
| 777 l_int32 w, | |
| 778 l_int32 h, | |
| 779 l_int32 wpld, | |
| 780 l_uint32 *datas, | |
| 781 l_int32 wpls) | |
| 782 { | |
| 783 l_int32 i; | |
| 784 l_int32 j, pwpls; | |
| 785 l_uint32 *sptr, *dptr; | |
| 786 | |
| 787 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 788 | |
| 789 for (i = 0; i < h; i++) { | |
| 790 sptr = datas + i * wpls; | |
| 791 dptr = datad + i * wpld; | |
| 792 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 793 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 794 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 795 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 796 (*sptr) & | |
| 797 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 798 ((*(sptr) << 2) | (*(sptr + 1) >> 30)); | |
| 799 } | |
| 800 } | |
| 801 } | |
| 802 | |
| 803 static void | |
| 804 fdilate_1_5(l_uint32 *datad, | |
| 805 l_int32 w, | |
| 806 l_int32 h, | |
| 807 l_int32 wpld, | |
| 808 l_uint32 *datas, | |
| 809 l_int32 wpls) | |
| 810 { | |
| 811 l_int32 i; | |
| 812 l_int32 j, pwpls; | |
| 813 l_uint32 *sptr, *dptr; | |
| 814 | |
| 815 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 816 | |
| 817 for (i = 0; i < h; i++) { | |
| 818 sptr = datas + i * wpls; | |
| 819 dptr = datad + i * wpld; | |
| 820 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 821 *dptr = ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 822 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 823 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 824 (*sptr) | | |
| 825 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 826 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 827 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); | |
| 828 } | |
| 829 } | |
| 830 } | |
| 831 | |
| 832 static void | |
| 833 ferode_1_5(l_uint32 *datad, | |
| 834 l_int32 w, | |
| 835 l_int32 h, | |
| 836 l_int32 wpld, | |
| 837 l_uint32 *datas, | |
| 838 l_int32 wpls) | |
| 839 { | |
| 840 l_int32 i; | |
| 841 l_int32 j, pwpls; | |
| 842 l_uint32 *sptr, *dptr; | |
| 843 | |
| 844 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 845 | |
| 846 for (i = 0; i < h; i++) { | |
| 847 sptr = datas + i * wpls; | |
| 848 dptr = datad + i * wpld; | |
| 849 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 850 *dptr = ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 851 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 852 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 853 (*sptr) & | |
| 854 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 855 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 856 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); | |
| 857 } | |
| 858 } | |
| 859 } | |
| 860 | |
| 861 static void | |
| 862 fdilate_1_6(l_uint32 *datad, | |
| 863 l_int32 w, | |
| 864 l_int32 h, | |
| 865 l_int32 wpld, | |
| 866 l_uint32 *datas, | |
| 867 l_int32 wpls) | |
| 868 { | |
| 869 l_int32 i; | |
| 870 l_int32 j, pwpls; | |
| 871 l_uint32 *sptr, *dptr; | |
| 872 | |
| 873 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 874 | |
| 875 for (i = 0; i < h; i++) { | |
| 876 sptr = datas + i * wpls; | |
| 877 dptr = datad + i * wpld; | |
| 878 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 879 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 880 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 881 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 882 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 883 (*sptr) | | |
| 884 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 885 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 886 ((*(sptr) >> 3) | (*(sptr - 1) << 29)); | |
| 887 } | |
| 888 } | |
| 889 } | |
| 890 | |
| 891 static void | |
| 892 ferode_1_6(l_uint32 *datad, | |
| 893 l_int32 w, | |
| 894 l_int32 h, | |
| 895 l_int32 wpld, | |
| 896 l_uint32 *datas, | |
| 897 l_int32 wpls) | |
| 898 { | |
| 899 l_int32 i; | |
| 900 l_int32 j, pwpls; | |
| 901 l_uint32 *sptr, *dptr; | |
| 902 | |
| 903 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 904 | |
| 905 for (i = 0; i < h; i++) { | |
| 906 sptr = datas + i * wpls; | |
| 907 dptr = datad + i * wpld; | |
| 908 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 909 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 910 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 911 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 912 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 913 (*sptr) & | |
| 914 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 915 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 916 ((*(sptr) << 3) | (*(sptr + 1) >> 29)); | |
| 917 } | |
| 918 } | |
| 919 } | |
| 920 | |
| 921 static void | |
| 922 fdilate_1_7(l_uint32 *datad, | |
| 923 l_int32 w, | |
| 924 l_int32 h, | |
| 925 l_int32 wpld, | |
| 926 l_uint32 *datas, | |
| 927 l_int32 wpls) | |
| 928 { | |
| 929 l_int32 i; | |
| 930 l_int32 j, pwpls; | |
| 931 l_uint32 *sptr, *dptr; | |
| 932 | |
| 933 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 934 | |
| 935 for (i = 0; i < h; i++) { | |
| 936 sptr = datas + i * wpls; | |
| 937 dptr = datad + i * wpld; | |
| 938 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 939 *dptr = ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 940 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 941 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 942 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 943 (*sptr) | | |
| 944 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 945 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 946 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 947 ((*(sptr) >> 4) | (*(sptr - 1) << 28)); | |
| 948 } | |
| 949 } | |
| 950 } | |
| 951 | |
| 952 static void | |
| 953 ferode_1_7(l_uint32 *datad, | |
| 954 l_int32 w, | |
| 955 l_int32 h, | |
| 956 l_int32 wpld, | |
| 957 l_uint32 *datas, | |
| 958 l_int32 wpls) | |
| 959 { | |
| 960 l_int32 i; | |
| 961 l_int32 j, pwpls; | |
| 962 l_uint32 *sptr, *dptr; | |
| 963 | |
| 964 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 965 | |
| 966 for (i = 0; i < h; i++) { | |
| 967 sptr = datas + i * wpls; | |
| 968 dptr = datad + i * wpld; | |
| 969 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 970 *dptr = ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 971 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 972 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 973 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 974 (*sptr) & | |
| 975 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 976 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 977 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 978 ((*(sptr) << 4) | (*(sptr + 1) >> 28)); | |
| 979 } | |
| 980 } | |
| 981 } | |
| 982 | |
| 983 static void | |
| 984 fdilate_1_8(l_uint32 *datad, | |
| 985 l_int32 w, | |
| 986 l_int32 h, | |
| 987 l_int32 wpld, | |
| 988 l_uint32 *datas, | |
| 989 l_int32 wpls) | |
| 990 { | |
| 991 l_int32 i; | |
| 992 l_int32 j, pwpls; | |
| 993 l_uint32 *sptr, *dptr; | |
| 994 | |
| 995 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 996 | |
| 997 for (i = 0; i < h; i++) { | |
| 998 sptr = datas + i * wpls; | |
| 999 dptr = datad + i * wpld; | |
| 1000 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1001 *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1002 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1003 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1004 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1005 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1006 (*sptr) | | |
| 1007 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1008 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1009 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1010 ((*(sptr) >> 4) | (*(sptr - 1) << 28)); | |
| 1011 } | |
| 1012 } | |
| 1013 } | |
| 1014 | |
| 1015 static void | |
| 1016 ferode_1_8(l_uint32 *datad, | |
| 1017 l_int32 w, | |
| 1018 l_int32 h, | |
| 1019 l_int32 wpld, | |
| 1020 l_uint32 *datas, | |
| 1021 l_int32 wpls) | |
| 1022 { | |
| 1023 l_int32 i; | |
| 1024 l_int32 j, pwpls; | |
| 1025 l_uint32 *sptr, *dptr; | |
| 1026 | |
| 1027 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1028 | |
| 1029 for (i = 0; i < h; i++) { | |
| 1030 sptr = datas + i * wpls; | |
| 1031 dptr = datad + i * wpld; | |
| 1032 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1033 *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1034 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1035 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1036 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1037 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1038 (*sptr) & | |
| 1039 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1040 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1041 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1042 ((*(sptr) << 4) | (*(sptr + 1) >> 28)); | |
| 1043 } | |
| 1044 } | |
| 1045 } | |
| 1046 | |
| 1047 static void | |
| 1048 fdilate_1_9(l_uint32 *datad, | |
| 1049 l_int32 w, | |
| 1050 l_int32 h, | |
| 1051 l_int32 wpld, | |
| 1052 l_uint32 *datas, | |
| 1053 l_int32 wpls) | |
| 1054 { | |
| 1055 l_int32 i; | |
| 1056 l_int32 j, pwpls; | |
| 1057 l_uint32 *sptr, *dptr; | |
| 1058 | |
| 1059 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1060 | |
| 1061 for (i = 0; i < h; i++) { | |
| 1062 sptr = datas + i * wpls; | |
| 1063 dptr = datad + i * wpld; | |
| 1064 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1065 *dptr = ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1066 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1067 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1068 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1069 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1070 (*sptr) | | |
| 1071 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1072 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1073 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1074 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1075 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); | |
| 1076 } | |
| 1077 } | |
| 1078 } | |
| 1079 | |
| 1080 static void | |
| 1081 ferode_1_9(l_uint32 *datad, | |
| 1082 l_int32 w, | |
| 1083 l_int32 h, | |
| 1084 l_int32 wpld, | |
| 1085 l_uint32 *datas, | |
| 1086 l_int32 wpls) | |
| 1087 { | |
| 1088 l_int32 i; | |
| 1089 l_int32 j, pwpls; | |
| 1090 l_uint32 *sptr, *dptr; | |
| 1091 | |
| 1092 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1093 | |
| 1094 for (i = 0; i < h; i++) { | |
| 1095 sptr = datas + i * wpls; | |
| 1096 dptr = datad + i * wpld; | |
| 1097 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1098 *dptr = ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1099 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1100 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1101 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1102 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1103 (*sptr) & | |
| 1104 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1105 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1106 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1107 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1108 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); | |
| 1109 } | |
| 1110 } | |
| 1111 } | |
| 1112 | |
| 1113 static void | |
| 1114 fdilate_1_10(l_uint32 *datad, | |
| 1115 l_int32 w, | |
| 1116 l_int32 h, | |
| 1117 l_int32 wpld, | |
| 1118 l_uint32 *datas, | |
| 1119 l_int32 wpls) | |
| 1120 { | |
| 1121 l_int32 i; | |
| 1122 l_int32 j, pwpls; | |
| 1123 l_uint32 *sptr, *dptr; | |
| 1124 | |
| 1125 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1126 | |
| 1127 for (i = 0; i < h; i++) { | |
| 1128 sptr = datas + i * wpls; | |
| 1129 dptr = datad + i * wpld; | |
| 1130 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1131 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1132 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1133 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1134 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1135 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1136 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1137 (*sptr) | | |
| 1138 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1139 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1140 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1141 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1142 ((*(sptr) >> 5) | (*(sptr - 1) << 27)); | |
| 1143 } | |
| 1144 } | |
| 1145 } | |
| 1146 | |
| 1147 static void | |
| 1148 ferode_1_10(l_uint32 *datad, | |
| 1149 l_int32 w, | |
| 1150 l_int32 h, | |
| 1151 l_int32 wpld, | |
| 1152 l_uint32 *datas, | |
| 1153 l_int32 wpls) | |
| 1154 { | |
| 1155 l_int32 i; | |
| 1156 l_int32 j, pwpls; | |
| 1157 l_uint32 *sptr, *dptr; | |
| 1158 | |
| 1159 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1160 | |
| 1161 for (i = 0; i < h; i++) { | |
| 1162 sptr = datas + i * wpls; | |
| 1163 dptr = datad + i * wpld; | |
| 1164 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1165 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1166 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1167 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1168 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1169 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1170 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1171 (*sptr) & | |
| 1172 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1173 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1174 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1175 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1176 ((*(sptr) << 5) | (*(sptr + 1) >> 27)); | |
| 1177 } | |
| 1178 } | |
| 1179 } | |
| 1180 | |
| 1181 static void | |
| 1182 fdilate_1_11(l_uint32 *datad, | |
| 1183 l_int32 w, | |
| 1184 l_int32 h, | |
| 1185 l_int32 wpld, | |
| 1186 l_uint32 *datas, | |
| 1187 l_int32 wpls) | |
| 1188 { | |
| 1189 l_int32 i; | |
| 1190 l_int32 j, pwpls; | |
| 1191 l_uint32 *sptr, *dptr; | |
| 1192 | |
| 1193 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1194 | |
| 1195 for (i = 0; i < h; i++) { | |
| 1196 sptr = datas + i * wpls; | |
| 1197 dptr = datad + i * wpld; | |
| 1198 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1199 *dptr = ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1200 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1201 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1202 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1203 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1204 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1205 (*sptr) | | |
| 1206 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1207 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1208 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1209 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1210 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1211 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); | |
| 1212 } | |
| 1213 } | |
| 1214 } | |
| 1215 | |
| 1216 static void | |
| 1217 ferode_1_11(l_uint32 *datad, | |
| 1218 l_int32 w, | |
| 1219 l_int32 h, | |
| 1220 l_int32 wpld, | |
| 1221 l_uint32 *datas, | |
| 1222 l_int32 wpls) | |
| 1223 { | |
| 1224 l_int32 i; | |
| 1225 l_int32 j, pwpls; | |
| 1226 l_uint32 *sptr, *dptr; | |
| 1227 | |
| 1228 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1229 | |
| 1230 for (i = 0; i < h; i++) { | |
| 1231 sptr = datas + i * wpls; | |
| 1232 dptr = datad + i * wpld; | |
| 1233 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1234 *dptr = ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1235 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1236 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1237 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1238 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1239 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1240 (*sptr) & | |
| 1241 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1242 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1243 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1244 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1245 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1246 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); | |
| 1247 } | |
| 1248 } | |
| 1249 } | |
| 1250 | |
| 1251 static void | |
| 1252 fdilate_1_12(l_uint32 *datad, | |
| 1253 l_int32 w, | |
| 1254 l_int32 h, | |
| 1255 l_int32 wpld, | |
| 1256 l_uint32 *datas, | |
| 1257 l_int32 wpls) | |
| 1258 { | |
| 1259 l_int32 i; | |
| 1260 l_int32 j, pwpls; | |
| 1261 l_uint32 *sptr, *dptr; | |
| 1262 | |
| 1263 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1264 | |
| 1265 for (i = 0; i < h; i++) { | |
| 1266 sptr = datas + i * wpls; | |
| 1267 dptr = datad + i * wpld; | |
| 1268 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1269 *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1270 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1271 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1272 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1273 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1274 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1275 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1276 (*sptr) | | |
| 1277 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1278 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1279 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1280 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1281 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1282 ((*(sptr) >> 6) | (*(sptr - 1) << 26)); | |
| 1283 } | |
| 1284 } | |
| 1285 } | |
| 1286 | |
| 1287 static void | |
| 1288 ferode_1_12(l_uint32 *datad, | |
| 1289 l_int32 w, | |
| 1290 l_int32 h, | |
| 1291 l_int32 wpld, | |
| 1292 l_uint32 *datas, | |
| 1293 l_int32 wpls) | |
| 1294 { | |
| 1295 l_int32 i; | |
| 1296 l_int32 j, pwpls; | |
| 1297 l_uint32 *sptr, *dptr; | |
| 1298 | |
| 1299 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1300 | |
| 1301 for (i = 0; i < h; i++) { | |
| 1302 sptr = datas + i * wpls; | |
| 1303 dptr = datad + i * wpld; | |
| 1304 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1305 *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1306 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1307 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1308 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1309 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1310 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1311 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1312 (*sptr) & | |
| 1313 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1314 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1315 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1316 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1317 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1318 ((*(sptr) << 6) | (*(sptr + 1) >> 26)); | |
| 1319 } | |
| 1320 } | |
| 1321 } | |
| 1322 | |
| 1323 static void | |
| 1324 fdilate_1_13(l_uint32 *datad, | |
| 1325 l_int32 w, | |
| 1326 l_int32 h, | |
| 1327 l_int32 wpld, | |
| 1328 l_uint32 *datas, | |
| 1329 l_int32 wpls) | |
| 1330 { | |
| 1331 l_int32 i; | |
| 1332 l_int32 j, pwpls; | |
| 1333 l_uint32 *sptr, *dptr; | |
| 1334 | |
| 1335 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1336 | |
| 1337 for (i = 0; i < h; i++) { | |
| 1338 sptr = datas + i * wpls; | |
| 1339 dptr = datad + i * wpld; | |
| 1340 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1341 *dptr = ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1342 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1343 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1344 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1345 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1346 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1347 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1348 (*sptr) | | |
| 1349 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1350 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1351 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1352 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1353 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1354 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1355 ((*(sptr) >> 7) | (*(sptr - 1) << 25)); | |
| 1356 } | |
| 1357 } | |
| 1358 } | |
| 1359 | |
| 1360 static void | |
| 1361 ferode_1_13(l_uint32 *datad, | |
| 1362 l_int32 w, | |
| 1363 l_int32 h, | |
| 1364 l_int32 wpld, | |
| 1365 l_uint32 *datas, | |
| 1366 l_int32 wpls) | |
| 1367 { | |
| 1368 l_int32 i; | |
| 1369 l_int32 j, pwpls; | |
| 1370 l_uint32 *sptr, *dptr; | |
| 1371 | |
| 1372 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1373 | |
| 1374 for (i = 0; i < h; i++) { | |
| 1375 sptr = datas + i * wpls; | |
| 1376 dptr = datad + i * wpld; | |
| 1377 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1378 *dptr = ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1379 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1380 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1381 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1382 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1383 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1384 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1385 (*sptr) & | |
| 1386 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1387 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1388 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1389 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1390 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1391 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1392 ((*(sptr) << 7) | (*(sptr + 1) >> 25)); | |
| 1393 } | |
| 1394 } | |
| 1395 } | |
| 1396 | |
| 1397 static void | |
| 1398 fdilate_1_14(l_uint32 *datad, | |
| 1399 l_int32 w, | |
| 1400 l_int32 h, | |
| 1401 l_int32 wpld, | |
| 1402 l_uint32 *datas, | |
| 1403 l_int32 wpls) | |
| 1404 { | |
| 1405 l_int32 i; | |
| 1406 l_int32 j, pwpls; | |
| 1407 l_uint32 *sptr, *dptr; | |
| 1408 | |
| 1409 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1410 | |
| 1411 for (i = 0; i < h; i++) { | |
| 1412 sptr = datas + i * wpls; | |
| 1413 dptr = datad + i * wpld; | |
| 1414 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1415 *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1416 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1417 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1418 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1419 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1420 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1421 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1422 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1423 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1424 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1425 (*sptr) | | |
| 1426 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1427 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1428 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1429 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1430 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1431 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1432 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1433 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1434 ((*(sptr) >> 9) | (*(sptr - 1) << 23)); | |
| 1435 } | |
| 1436 } | |
| 1437 } | |
| 1438 | |
| 1439 static void | |
| 1440 ferode_1_14(l_uint32 *datad, | |
| 1441 l_int32 w, | |
| 1442 l_int32 h, | |
| 1443 l_int32 wpld, | |
| 1444 l_uint32 *datas, | |
| 1445 l_int32 wpls) | |
| 1446 { | |
| 1447 l_int32 i; | |
| 1448 l_int32 j, pwpls; | |
| 1449 l_uint32 *sptr, *dptr; | |
| 1450 | |
| 1451 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1452 | |
| 1453 for (i = 0; i < h; i++) { | |
| 1454 sptr = datas + i * wpls; | |
| 1455 dptr = datad + i * wpld; | |
| 1456 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1457 *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1458 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1459 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1460 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1461 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1462 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1463 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1464 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1465 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1466 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1467 (*sptr) & | |
| 1468 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1469 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1470 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1471 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1472 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1473 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1474 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1475 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1476 ((*(sptr) << 9) | (*(sptr + 1) >> 23)); | |
| 1477 } | |
| 1478 } | |
| 1479 } | |
| 1480 | |
| 1481 static void | |
| 1482 fdilate_1_15(l_uint32 *datad, | |
| 1483 l_int32 w, | |
| 1484 l_int32 h, | |
| 1485 l_int32 wpld, | |
| 1486 l_uint32 *datas, | |
| 1487 l_int32 wpls) | |
| 1488 { | |
| 1489 l_int32 i; | |
| 1490 l_int32 j, pwpls; | |
| 1491 l_uint32 *sptr, *dptr; | |
| 1492 | |
| 1493 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1494 | |
| 1495 for (i = 0; i < h; i++) { | |
| 1496 sptr = datas + i * wpls; | |
| 1497 dptr = datad + i * wpld; | |
| 1498 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1499 *dptr = ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1500 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1501 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1502 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1503 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1504 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1505 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1506 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1507 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1508 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1509 (*sptr) | | |
| 1510 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1511 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1512 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1513 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1514 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1515 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1516 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1517 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1518 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 1519 ((*(sptr) >> 10) | (*(sptr - 1) << 22)); | |
| 1520 } | |
| 1521 } | |
| 1522 } | |
| 1523 | |
| 1524 static void | |
| 1525 ferode_1_15(l_uint32 *datad, | |
| 1526 l_int32 w, | |
| 1527 l_int32 h, | |
| 1528 l_int32 wpld, | |
| 1529 l_uint32 *datas, | |
| 1530 l_int32 wpls) | |
| 1531 { | |
| 1532 l_int32 i; | |
| 1533 l_int32 j, pwpls; | |
| 1534 l_uint32 *sptr, *dptr; | |
| 1535 | |
| 1536 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1537 | |
| 1538 for (i = 0; i < h; i++) { | |
| 1539 sptr = datas + i * wpls; | |
| 1540 dptr = datad + i * wpld; | |
| 1541 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1542 *dptr = ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1543 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1544 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1545 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1546 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1547 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1548 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1549 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1550 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1551 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1552 (*sptr) & | |
| 1553 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1554 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1555 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1556 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1557 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1558 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1559 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1560 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1561 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 1562 ((*(sptr) << 10) | (*(sptr + 1) >> 22)); | |
| 1563 } | |
| 1564 } | |
| 1565 } | |
| 1566 | |
| 1567 static void | |
| 1568 fdilate_1_16(l_uint32 *datad, | |
| 1569 l_int32 w, | |
| 1570 l_int32 h, | |
| 1571 l_int32 wpld, | |
| 1572 l_uint32 *datas, | |
| 1573 l_int32 wpls) | |
| 1574 { | |
| 1575 l_int32 i; | |
| 1576 l_int32 j, pwpls; | |
| 1577 l_uint32 *sptr, *dptr; | |
| 1578 | |
| 1579 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1580 | |
| 1581 for (i = 0; i < h; i++) { | |
| 1582 sptr = datas + i * wpls; | |
| 1583 dptr = datad + i * wpld; | |
| 1584 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1585 *dptr = ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 1586 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 1587 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1588 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1589 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1590 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1591 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1592 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1593 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1594 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1595 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1596 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1597 (*sptr) | | |
| 1598 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1599 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1600 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1601 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1602 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1603 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1604 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1605 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1606 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 1607 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 1608 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 1609 ((*(sptr) >> 12) | (*(sptr - 1) << 20)); | |
| 1610 } | |
| 1611 } | |
| 1612 } | |
| 1613 | |
| 1614 static void | |
| 1615 ferode_1_16(l_uint32 *datad, | |
| 1616 l_int32 w, | |
| 1617 l_int32 h, | |
| 1618 l_int32 wpld, | |
| 1619 l_uint32 *datas, | |
| 1620 l_int32 wpls) | |
| 1621 { | |
| 1622 l_int32 i; | |
| 1623 l_int32 j, pwpls; | |
| 1624 l_uint32 *sptr, *dptr; | |
| 1625 | |
| 1626 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1627 | |
| 1628 for (i = 0; i < h; i++) { | |
| 1629 sptr = datas + i * wpls; | |
| 1630 dptr = datad + i * wpld; | |
| 1631 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1632 *dptr = ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 1633 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 1634 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1635 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1636 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1637 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1638 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1639 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1640 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1641 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1642 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1643 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1644 (*sptr) & | |
| 1645 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1646 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1647 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1648 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1649 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1650 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1651 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1652 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1653 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 1654 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 1655 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 1656 ((*(sptr) << 12) | (*(sptr + 1) >> 20)); | |
| 1657 } | |
| 1658 } | |
| 1659 } | |
| 1660 | |
| 1661 static void | |
| 1662 fdilate_1_17(l_uint32 *datad, | |
| 1663 l_int32 w, | |
| 1664 l_int32 h, | |
| 1665 l_int32 wpld, | |
| 1666 l_uint32 *datas, | |
| 1667 l_int32 wpls) | |
| 1668 { | |
| 1669 l_int32 i; | |
| 1670 l_int32 j, pwpls; | |
| 1671 l_uint32 *sptr, *dptr; | |
| 1672 | |
| 1673 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1674 | |
| 1675 for (i = 0; i < h; i++) { | |
| 1676 sptr = datas + i * wpls; | |
| 1677 dptr = datad + i * wpld; | |
| 1678 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1679 *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 1680 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 1681 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 1682 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 1683 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 1684 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1685 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1686 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1687 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1688 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1689 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1690 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1691 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1692 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1693 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1694 (*sptr) | | |
| 1695 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1696 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1697 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1698 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1699 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1700 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1701 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1702 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1703 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 1704 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 1705 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 1706 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 1707 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 1708 ((*(sptr) >> 14) | (*(sptr - 1) << 18)); | |
| 1709 } | |
| 1710 } | |
| 1711 } | |
| 1712 | |
| 1713 static void | |
| 1714 ferode_1_17(l_uint32 *datad, | |
| 1715 l_int32 w, | |
| 1716 l_int32 h, | |
| 1717 l_int32 wpld, | |
| 1718 l_uint32 *datas, | |
| 1719 l_int32 wpls) | |
| 1720 { | |
| 1721 l_int32 i; | |
| 1722 l_int32 j, pwpls; | |
| 1723 l_uint32 *sptr, *dptr; | |
| 1724 | |
| 1725 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1726 | |
| 1727 for (i = 0; i < h; i++) { | |
| 1728 sptr = datas + i * wpls; | |
| 1729 dptr = datad + i * wpld; | |
| 1730 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1731 *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 1732 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 1733 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 1734 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 1735 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 1736 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1737 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1738 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1739 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1740 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1741 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1742 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1743 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1744 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1745 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1746 (*sptr) & | |
| 1747 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1748 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1749 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1750 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1751 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1752 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1753 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1754 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1755 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 1756 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 1757 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 1758 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 1759 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 1760 ((*(sptr) << 14) | (*(sptr + 1) >> 18)); | |
| 1761 } | |
| 1762 } | |
| 1763 } | |
| 1764 | |
| 1765 static void | |
| 1766 fdilate_1_18(l_uint32 *datad, | |
| 1767 l_int32 w, | |
| 1768 l_int32 h, | |
| 1769 l_int32 wpld, | |
| 1770 l_uint32 *datas, | |
| 1771 l_int32 wpls) | |
| 1772 { | |
| 1773 l_int32 i; | |
| 1774 l_int32 j, pwpls; | |
| 1775 l_uint32 *sptr, *dptr; | |
| 1776 | |
| 1777 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1778 | |
| 1779 for (i = 0; i < h; i++) { | |
| 1780 sptr = datas + i * wpls; | |
| 1781 dptr = datad + i * wpld; | |
| 1782 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1783 *dptr = ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 1784 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 1785 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 1786 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 1787 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 1788 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1789 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1790 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1791 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1792 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1793 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1794 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1795 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1796 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1797 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1798 (*sptr) | | |
| 1799 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1800 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1801 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1802 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1803 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1804 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1805 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1806 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1807 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 1808 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 1809 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 1810 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 1811 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 1812 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 1813 ((*(sptr) >> 15) | (*(sptr - 1) << 17)); | |
| 1814 } | |
| 1815 } | |
| 1816 } | |
| 1817 | |
| 1818 static void | |
| 1819 ferode_1_18(l_uint32 *datad, | |
| 1820 l_int32 w, | |
| 1821 l_int32 h, | |
| 1822 l_int32 wpld, | |
| 1823 l_uint32 *datas, | |
| 1824 l_int32 wpls) | |
| 1825 { | |
| 1826 l_int32 i; | |
| 1827 l_int32 j, pwpls; | |
| 1828 l_uint32 *sptr, *dptr; | |
| 1829 | |
| 1830 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1831 | |
| 1832 for (i = 0; i < h; i++) { | |
| 1833 sptr = datas + i * wpls; | |
| 1834 dptr = datad + i * wpld; | |
| 1835 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1836 *dptr = ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 1837 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 1838 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 1839 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 1840 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 1841 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1842 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1843 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1844 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1845 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1846 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1847 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1848 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1849 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1850 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1851 (*sptr) & | |
| 1852 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1853 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1854 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1855 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1856 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1857 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1858 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1859 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1860 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 1861 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 1862 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 1863 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 1864 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 1865 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 1866 ((*(sptr) << 15) | (*(sptr + 1) >> 17)); | |
| 1867 } | |
| 1868 } | |
| 1869 } | |
| 1870 | |
| 1871 static void | |
| 1872 fdilate_1_19(l_uint32 *datad, | |
| 1873 l_int32 w, | |
| 1874 l_int32 h, | |
| 1875 l_int32 wpld, | |
| 1876 l_uint32 *datas, | |
| 1877 l_int32 wpls) | |
| 1878 { | |
| 1879 l_int32 i; | |
| 1880 l_int32 j, pwpls; | |
| 1881 l_uint32 *sptr, *dptr; | |
| 1882 | |
| 1883 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1884 | |
| 1885 for (i = 0; i < h; i++) { | |
| 1886 sptr = datas + i * wpls; | |
| 1887 dptr = datad + i * wpld; | |
| 1888 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1889 *dptr = ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 1890 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 1891 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 1892 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 1893 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 1894 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 1895 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 1896 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 1897 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 1898 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 1899 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 1900 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 1901 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 1902 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 1903 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 1904 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 1905 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 1906 (*sptr) | | |
| 1907 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 1908 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 1909 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 1910 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 1911 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 1912 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 1913 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 1914 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 1915 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 1916 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 1917 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 1918 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 1919 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 1920 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 1921 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 1922 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 1923 ((*(sptr) >> 17) | (*(sptr - 1) << 15)); | |
| 1924 } | |
| 1925 } | |
| 1926 } | |
| 1927 | |
| 1928 static void | |
| 1929 ferode_1_19(l_uint32 *datad, | |
| 1930 l_int32 w, | |
| 1931 l_int32 h, | |
| 1932 l_int32 wpld, | |
| 1933 l_uint32 *datas, | |
| 1934 l_int32 wpls) | |
| 1935 { | |
| 1936 l_int32 i; | |
| 1937 l_int32 j, pwpls; | |
| 1938 l_uint32 *sptr, *dptr; | |
| 1939 | |
| 1940 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1941 | |
| 1942 for (i = 0; i < h; i++) { | |
| 1943 sptr = datas + i * wpls; | |
| 1944 dptr = datad + i * wpld; | |
| 1945 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 1946 *dptr = ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 1947 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 1948 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 1949 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 1950 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 1951 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 1952 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 1953 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 1954 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 1955 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 1956 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 1957 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 1958 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 1959 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 1960 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 1961 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 1962 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 1963 (*sptr) & | |
| 1964 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 1965 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 1966 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 1967 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 1968 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 1969 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 1970 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 1971 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 1972 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 1973 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 1974 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 1975 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 1976 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 1977 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 1978 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 1979 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 1980 ((*(sptr) << 17) | (*(sptr + 1) >> 15)); | |
| 1981 } | |
| 1982 } | |
| 1983 } | |
| 1984 | |
| 1985 static void | |
| 1986 fdilate_1_20(l_uint32 *datad, | |
| 1987 l_int32 w, | |
| 1988 l_int32 h, | |
| 1989 l_int32 wpld, | |
| 1990 l_uint32 *datas, | |
| 1991 l_int32 wpls) | |
| 1992 { | |
| 1993 l_int32 i; | |
| 1994 l_int32 j, pwpls; | |
| 1995 l_uint32 *sptr, *dptr; | |
| 1996 | |
| 1997 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 1998 | |
| 1999 for (i = 0; i < h; i++) { | |
| 2000 sptr = datas + i * wpls; | |
| 2001 dptr = datad + i * wpld; | |
| 2002 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2003 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | | |
| 2004 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | | |
| 2005 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | | |
| 2006 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 2007 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 2008 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 2009 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 2010 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 2011 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 2012 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 2013 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 2014 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 2015 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 2016 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 2017 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 2018 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 2019 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 2020 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 2021 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 2022 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 2023 (*sptr) | | |
| 2024 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 2025 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 2026 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 2027 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 2028 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 2029 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 2030 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 2031 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 2032 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 2033 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 2034 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 2035 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 2036 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 2037 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 2038 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 2039 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 2040 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | | |
| 2041 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | | |
| 2042 ((*(sptr) >> 19) | (*(sptr - 1) << 13)); | |
| 2043 } | |
| 2044 } | |
| 2045 } | |
| 2046 | |
| 2047 static void | |
| 2048 ferode_1_20(l_uint32 *datad, | |
| 2049 l_int32 w, | |
| 2050 l_int32 h, | |
| 2051 l_int32 wpld, | |
| 2052 l_uint32 *datas, | |
| 2053 l_int32 wpls) | |
| 2054 { | |
| 2055 l_int32 i; | |
| 2056 l_int32 j, pwpls; | |
| 2057 l_uint32 *sptr, *dptr; | |
| 2058 | |
| 2059 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2060 | |
| 2061 for (i = 0; i < h; i++) { | |
| 2062 sptr = datas + i * wpls; | |
| 2063 dptr = datad + i * wpld; | |
| 2064 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2065 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & | |
| 2066 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & | |
| 2067 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & | |
| 2068 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 2069 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 2070 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 2071 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 2072 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 2073 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 2074 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 2075 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 2076 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 2077 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 2078 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 2079 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 2080 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 2081 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 2082 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 2083 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 2084 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 2085 (*sptr) & | |
| 2086 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 2087 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 2088 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 2089 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 2090 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 2091 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 2092 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 2093 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 2094 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 2095 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 2096 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 2097 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 2098 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 2099 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 2100 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 2101 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 2102 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & | |
| 2103 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & | |
| 2104 ((*(sptr) << 19) | (*(sptr + 1) >> 13)); | |
| 2105 } | |
| 2106 } | |
| 2107 } | |
| 2108 | |
| 2109 static void | |
| 2110 fdilate_1_21(l_uint32 *datad, | |
| 2111 l_int32 w, | |
| 2112 l_int32 h, | |
| 2113 l_int32 wpld, | |
| 2114 l_uint32 *datas, | |
| 2115 l_int32 wpls) | |
| 2116 { | |
| 2117 l_int32 i; | |
| 2118 l_int32 j, pwpls; | |
| 2119 l_uint32 *sptr, *dptr; | |
| 2120 | |
| 2121 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2122 | |
| 2123 for (i = 0; i < h; i++) { | |
| 2124 sptr = datas + i * wpls; | |
| 2125 dptr = datad + i * wpld; | |
| 2126 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2127 *dptr = ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | | |
| 2128 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | | |
| 2129 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | | |
| 2130 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 2131 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 2132 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 2133 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 2134 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 2135 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 2136 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 2137 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 2138 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 2139 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 2140 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 2141 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 2142 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 2143 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 2144 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 2145 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 2146 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 2147 (*sptr) | | |
| 2148 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 2149 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 2150 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 2151 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 2152 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 2153 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 2154 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 2155 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 2156 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 2157 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 2158 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 2159 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 2160 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 2161 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 2162 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 2163 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 2164 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | | |
| 2165 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | | |
| 2166 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | | |
| 2167 ((*(sptr) >> 20) | (*(sptr - 1) << 12)); | |
| 2168 } | |
| 2169 } | |
| 2170 } | |
| 2171 | |
| 2172 static void | |
| 2173 ferode_1_21(l_uint32 *datad, | |
| 2174 l_int32 w, | |
| 2175 l_int32 h, | |
| 2176 l_int32 wpld, | |
| 2177 l_uint32 *datas, | |
| 2178 l_int32 wpls) | |
| 2179 { | |
| 2180 l_int32 i; | |
| 2181 l_int32 j, pwpls; | |
| 2182 l_uint32 *sptr, *dptr; | |
| 2183 | |
| 2184 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2185 | |
| 2186 for (i = 0; i < h; i++) { | |
| 2187 sptr = datas + i * wpls; | |
| 2188 dptr = datad + i * wpld; | |
| 2189 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2190 *dptr = ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & | |
| 2191 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & | |
| 2192 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & | |
| 2193 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 2194 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 2195 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 2196 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 2197 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 2198 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 2199 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 2200 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 2201 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 2202 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 2203 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 2204 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 2205 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 2206 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 2207 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 2208 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 2209 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 2210 (*sptr) & | |
| 2211 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 2212 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 2213 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 2214 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 2215 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 2216 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 2217 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 2218 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 2219 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 2220 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 2221 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 2222 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 2223 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 2224 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 2225 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 2226 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 2227 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & | |
| 2228 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & | |
| 2229 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & | |
| 2230 ((*(sptr) << 20) | (*(sptr + 1) >> 12)); | |
| 2231 } | |
| 2232 } | |
| 2233 } | |
| 2234 | |
| 2235 static void | |
| 2236 fdilate_1_22(l_uint32 *datad, | |
| 2237 l_int32 w, | |
| 2238 l_int32 h, | |
| 2239 l_int32 wpld, | |
| 2240 l_uint32 *datas, | |
| 2241 l_int32 wpls) | |
| 2242 { | |
| 2243 l_int32 i; | |
| 2244 l_int32 j, pwpls; | |
| 2245 l_uint32 *sptr, *dptr; | |
| 2246 | |
| 2247 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2248 | |
| 2249 for (i = 0; i < h; i++) { | |
| 2250 sptr = datas + i * wpls; | |
| 2251 dptr = datad + i * wpld; | |
| 2252 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2253 *dptr = ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | | |
| 2254 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | | |
| 2255 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | | |
| 2256 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | | |
| 2257 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | | |
| 2258 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 2259 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 2260 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 2261 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 2262 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 2263 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 2264 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 2265 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 2266 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 2267 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 2268 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 2269 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 2270 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 2271 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 2272 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 2273 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 2274 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 2275 (*sptr) | | |
| 2276 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 2277 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 2278 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 2279 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 2280 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 2281 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 2282 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 2283 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 2284 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 2285 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 2286 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 2287 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 2288 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 2289 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 2290 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 2291 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 2292 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | | |
| 2293 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | | |
| 2294 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | | |
| 2295 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | | |
| 2296 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | | |
| 2297 ((*(sptr) >> 22) | (*(sptr - 1) << 10)); | |
| 2298 } | |
| 2299 } | |
| 2300 } | |
| 2301 | |
| 2302 static void | |
| 2303 ferode_1_22(l_uint32 *datad, | |
| 2304 l_int32 w, | |
| 2305 l_int32 h, | |
| 2306 l_int32 wpld, | |
| 2307 l_uint32 *datas, | |
| 2308 l_int32 wpls) | |
| 2309 { | |
| 2310 l_int32 i; | |
| 2311 l_int32 j, pwpls; | |
| 2312 l_uint32 *sptr, *dptr; | |
| 2313 | |
| 2314 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2315 | |
| 2316 for (i = 0; i < h; i++) { | |
| 2317 sptr = datas + i * wpls; | |
| 2318 dptr = datad + i * wpld; | |
| 2319 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2320 *dptr = ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & | |
| 2321 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & | |
| 2322 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & | |
| 2323 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & | |
| 2324 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & | |
| 2325 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 2326 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 2327 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 2328 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 2329 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 2330 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 2331 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 2332 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 2333 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 2334 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 2335 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 2336 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 2337 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 2338 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 2339 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 2340 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 2341 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 2342 (*sptr) & | |
| 2343 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 2344 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 2345 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 2346 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 2347 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 2348 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 2349 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 2350 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 2351 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 2352 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 2353 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 2354 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 2355 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 2356 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 2357 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 2358 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 2359 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & | |
| 2360 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & | |
| 2361 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & | |
| 2362 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & | |
| 2363 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & | |
| 2364 ((*(sptr) << 22) | (*(sptr + 1) >> 10)); | |
| 2365 } | |
| 2366 } | |
| 2367 } | |
| 2368 | |
| 2369 static void | |
| 2370 fdilate_1_23(l_uint32 *datad, | |
| 2371 l_int32 w, | |
| 2372 l_int32 h, | |
| 2373 l_int32 wpld, | |
| 2374 l_uint32 *datas, | |
| 2375 l_int32 wpls) | |
| 2376 { | |
| 2377 l_int32 i; | |
| 2378 l_int32 j, pwpls; | |
| 2379 l_uint32 *sptr, *dptr; | |
| 2380 | |
| 2381 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2382 | |
| 2383 for (i = 0; i < h; i++) { | |
| 2384 sptr = datas + i * wpls; | |
| 2385 dptr = datad + i * wpld; | |
| 2386 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2387 *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) | | |
| 2388 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) | | |
| 2389 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) | | |
| 2390 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | | |
| 2391 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | | |
| 2392 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | | |
| 2393 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | | |
| 2394 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | | |
| 2395 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 2396 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 2397 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 2398 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 2399 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 2400 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 2401 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 2402 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 2403 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 2404 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 2405 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 2406 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 2407 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 2408 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 2409 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 2410 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 2411 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 2412 (*sptr) | | |
| 2413 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 2414 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 2415 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 2416 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 2417 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 2418 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 2419 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 2420 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 2421 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 2422 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 2423 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 2424 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 2425 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 2426 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 2427 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 2428 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 2429 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | | |
| 2430 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | | |
| 2431 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | | |
| 2432 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | | |
| 2433 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | | |
| 2434 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) | | |
| 2435 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) | | |
| 2436 ((*(sptr) >> 24) | (*(sptr - 1) << 8)); | |
| 2437 } | |
| 2438 } | |
| 2439 } | |
| 2440 | |
| 2441 static void | |
| 2442 ferode_1_23(l_uint32 *datad, | |
| 2443 l_int32 w, | |
| 2444 l_int32 h, | |
| 2445 l_int32 wpld, | |
| 2446 l_uint32 *datas, | |
| 2447 l_int32 wpls) | |
| 2448 { | |
| 2449 l_int32 i; | |
| 2450 l_int32 j, pwpls; | |
| 2451 l_uint32 *sptr, *dptr; | |
| 2452 | |
| 2453 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2454 | |
| 2455 for (i = 0; i < h; i++) { | |
| 2456 sptr = datas + i * wpls; | |
| 2457 dptr = datad + i * wpld; | |
| 2458 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2459 *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) & | |
| 2460 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) & | |
| 2461 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) & | |
| 2462 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & | |
| 2463 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & | |
| 2464 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & | |
| 2465 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & | |
| 2466 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & | |
| 2467 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 2468 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 2469 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 2470 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 2471 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 2472 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 2473 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 2474 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 2475 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 2476 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 2477 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 2478 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 2479 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 2480 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 2481 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 2482 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 2483 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 2484 (*sptr) & | |
| 2485 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 2486 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 2487 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 2488 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 2489 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 2490 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 2491 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 2492 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 2493 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 2494 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 2495 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 2496 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 2497 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 2498 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 2499 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 2500 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 2501 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & | |
| 2502 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & | |
| 2503 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & | |
| 2504 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & | |
| 2505 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & | |
| 2506 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) & | |
| 2507 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) & | |
| 2508 ((*(sptr) << 24) | (*(sptr + 1) >> 8)); | |
| 2509 } | |
| 2510 } | |
| 2511 } | |
| 2512 | |
| 2513 static void | |
| 2514 fdilate_1_24(l_uint32 *datad, | |
| 2515 l_int32 w, | |
| 2516 l_int32 h, | |
| 2517 l_int32 wpld, | |
| 2518 l_uint32 *datas, | |
| 2519 l_int32 wpls) | |
| 2520 { | |
| 2521 l_int32 i; | |
| 2522 l_int32 j, pwpls; | |
| 2523 l_uint32 *sptr, *dptr; | |
| 2524 | |
| 2525 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2526 | |
| 2527 for (i = 0; i < h; i++) { | |
| 2528 sptr = datas + i * wpls; | |
| 2529 dptr = datad + i * wpld; | |
| 2530 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2531 *dptr = ((*(sptr) << 25) | (*(sptr + 1) >> 7)) | | |
| 2532 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) | | |
| 2533 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) | | |
| 2534 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) | | |
| 2535 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) | | |
| 2536 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) | | |
| 2537 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) | | |
| 2538 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) | | |
| 2539 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) | | |
| 2540 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) | | |
| 2541 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) | | |
| 2542 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) | | |
| 2543 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) | | |
| 2544 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) | | |
| 2545 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) | | |
| 2546 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) | | |
| 2547 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) | | |
| 2548 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) | | |
| 2549 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) | | |
| 2550 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) | | |
| 2551 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) | | |
| 2552 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) | | |
| 2553 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) | | |
| 2554 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 2555 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 2556 (*sptr) | | |
| 2557 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 2558 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 2559 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) | | |
| 2560 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) | | |
| 2561 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) | | |
| 2562 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) | | |
| 2563 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) | | |
| 2564 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) | | |
| 2565 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) | | |
| 2566 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) | | |
| 2567 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) | | |
| 2568 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) | | |
| 2569 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) | | |
| 2570 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) | | |
| 2571 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) | | |
| 2572 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) | | |
| 2573 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) | | |
| 2574 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) | | |
| 2575 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) | | |
| 2576 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) | | |
| 2577 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) | | |
| 2578 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) | | |
| 2579 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) | | |
| 2580 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) | | |
| 2581 ((*(sptr) >> 25) | (*(sptr - 1) << 7)); | |
| 2582 } | |
| 2583 } | |
| 2584 } | |
| 2585 | |
| 2586 static void | |
| 2587 ferode_1_24(l_uint32 *datad, | |
| 2588 l_int32 w, | |
| 2589 l_int32 h, | |
| 2590 l_int32 wpld, | |
| 2591 l_uint32 *datas, | |
| 2592 l_int32 wpls) | |
| 2593 { | |
| 2594 l_int32 i; | |
| 2595 l_int32 j, pwpls; | |
| 2596 l_uint32 *sptr, *dptr; | |
| 2597 | |
| 2598 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2599 | |
| 2600 for (i = 0; i < h; i++) { | |
| 2601 sptr = datas + i * wpls; | |
| 2602 dptr = datad + i * wpld; | |
| 2603 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2604 *dptr = ((*(sptr) >> 25) | (*(sptr - 1) << 7)) & | |
| 2605 ((*(sptr) >> 24) | (*(sptr - 1) << 8)) & | |
| 2606 ((*(sptr) >> 23) | (*(sptr - 1) << 9)) & | |
| 2607 ((*(sptr) >> 22) | (*(sptr - 1) << 10)) & | |
| 2608 ((*(sptr) >> 21) | (*(sptr - 1) << 11)) & | |
| 2609 ((*(sptr) >> 20) | (*(sptr - 1) << 12)) & | |
| 2610 ((*(sptr) >> 19) | (*(sptr - 1) << 13)) & | |
| 2611 ((*(sptr) >> 18) | (*(sptr - 1) << 14)) & | |
| 2612 ((*(sptr) >> 17) | (*(sptr - 1) << 15)) & | |
| 2613 ((*(sptr) >> 16) | (*(sptr - 1) << 16)) & | |
| 2614 ((*(sptr) >> 15) | (*(sptr - 1) << 17)) & | |
| 2615 ((*(sptr) >> 14) | (*(sptr - 1) << 18)) & | |
| 2616 ((*(sptr) >> 13) | (*(sptr - 1) << 19)) & | |
| 2617 ((*(sptr) >> 12) | (*(sptr - 1) << 20)) & | |
| 2618 ((*(sptr) >> 11) | (*(sptr - 1) << 21)) & | |
| 2619 ((*(sptr) >> 10) | (*(sptr - 1) << 22)) & | |
| 2620 ((*(sptr) >> 9) | (*(sptr - 1) << 23)) & | |
| 2621 ((*(sptr) >> 8) | (*(sptr - 1) << 24)) & | |
| 2622 ((*(sptr) >> 7) | (*(sptr - 1) << 25)) & | |
| 2623 ((*(sptr) >> 6) | (*(sptr - 1) << 26)) & | |
| 2624 ((*(sptr) >> 5) | (*(sptr - 1) << 27)) & | |
| 2625 ((*(sptr) >> 4) | (*(sptr - 1) << 28)) & | |
| 2626 ((*(sptr) >> 3) | (*(sptr - 1) << 29)) & | |
| 2627 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 2628 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 2629 (*sptr) & | |
| 2630 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 2631 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 2632 ((*(sptr) << 3) | (*(sptr + 1) >> 29)) & | |
| 2633 ((*(sptr) << 4) | (*(sptr + 1) >> 28)) & | |
| 2634 ((*(sptr) << 5) | (*(sptr + 1) >> 27)) & | |
| 2635 ((*(sptr) << 6) | (*(sptr + 1) >> 26)) & | |
| 2636 ((*(sptr) << 7) | (*(sptr + 1) >> 25)) & | |
| 2637 ((*(sptr) << 8) | (*(sptr + 1) >> 24)) & | |
| 2638 ((*(sptr) << 9) | (*(sptr + 1) >> 23)) & | |
| 2639 ((*(sptr) << 10) | (*(sptr + 1) >> 22)) & | |
| 2640 ((*(sptr) << 11) | (*(sptr + 1) >> 21)) & | |
| 2641 ((*(sptr) << 12) | (*(sptr + 1) >> 20)) & | |
| 2642 ((*(sptr) << 13) | (*(sptr + 1) >> 19)) & | |
| 2643 ((*(sptr) << 14) | (*(sptr + 1) >> 18)) & | |
| 2644 ((*(sptr) << 15) | (*(sptr + 1) >> 17)) & | |
| 2645 ((*(sptr) << 16) | (*(sptr + 1) >> 16)) & | |
| 2646 ((*(sptr) << 17) | (*(sptr + 1) >> 15)) & | |
| 2647 ((*(sptr) << 18) | (*(sptr + 1) >> 14)) & | |
| 2648 ((*(sptr) << 19) | (*(sptr + 1) >> 13)) & | |
| 2649 ((*(sptr) << 20) | (*(sptr + 1) >> 12)) & | |
| 2650 ((*(sptr) << 21) | (*(sptr + 1) >> 11)) & | |
| 2651 ((*(sptr) << 22) | (*(sptr + 1) >> 10)) & | |
| 2652 ((*(sptr) << 23) | (*(sptr + 1) >> 9)) & | |
| 2653 ((*(sptr) << 24) | (*(sptr + 1) >> 8)) & | |
| 2654 ((*(sptr) << 25) | (*(sptr + 1) >> 7)); | |
| 2655 } | |
| 2656 } | |
| 2657 } | |
| 2658 | |
| 2659 static void | |
| 2660 fdilate_1_25(l_uint32 *datad, | |
| 2661 l_int32 w, | |
| 2662 l_int32 h, | |
| 2663 l_int32 wpld, | |
| 2664 l_uint32 *datas, | |
| 2665 l_int32 wpls) | |
| 2666 { | |
| 2667 l_int32 i; | |
| 2668 l_int32 j, pwpls; | |
| 2669 l_uint32 *sptr, *dptr; | |
| 2670 | |
| 2671 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2672 | |
| 2673 for (i = 0; i < h; i++) { | |
| 2674 sptr = datas + i * wpls; | |
| 2675 dptr = datad + i * wpld; | |
| 2676 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2677 *dptr = (*(sptr + wpls)) | | |
| 2678 (*sptr); | |
| 2679 } | |
| 2680 } | |
| 2681 } | |
| 2682 | |
| 2683 static void | |
| 2684 ferode_1_25(l_uint32 *datad, | |
| 2685 l_int32 w, | |
| 2686 l_int32 h, | |
| 2687 l_int32 wpld, | |
| 2688 l_uint32 *datas, | |
| 2689 l_int32 wpls) | |
| 2690 { | |
| 2691 l_int32 i; | |
| 2692 l_int32 j, pwpls; | |
| 2693 l_uint32 *sptr, *dptr; | |
| 2694 | |
| 2695 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2696 | |
| 2697 for (i = 0; i < h; i++) { | |
| 2698 sptr = datas + i * wpls; | |
| 2699 dptr = datad + i * wpld; | |
| 2700 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2701 *dptr = (*(sptr - wpls)) & | |
| 2702 (*sptr); | |
| 2703 } | |
| 2704 } | |
| 2705 } | |
| 2706 | |
| 2707 static void | |
| 2708 fdilate_1_26(l_uint32 *datad, | |
| 2709 l_int32 w, | |
| 2710 l_int32 h, | |
| 2711 l_int32 wpld, | |
| 2712 l_uint32 *datas, | |
| 2713 l_int32 wpls) | |
| 2714 { | |
| 2715 l_int32 i; | |
| 2716 l_int32 j, pwpls; | |
| 2717 l_uint32 *sptr, *dptr; | |
| 2718 | |
| 2719 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2720 | |
| 2721 for (i = 0; i < h; i++) { | |
| 2722 sptr = datas + i * wpls; | |
| 2723 dptr = datad + i * wpld; | |
| 2724 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2725 *dptr = (*(sptr + wpls)) | | |
| 2726 (*sptr) | | |
| 2727 (*(sptr - wpls)); | |
| 2728 } | |
| 2729 } | |
| 2730 } | |
| 2731 | |
| 2732 static void | |
| 2733 ferode_1_26(l_uint32 *datad, | |
| 2734 l_int32 w, | |
| 2735 l_int32 h, | |
| 2736 l_int32 wpld, | |
| 2737 l_uint32 *datas, | |
| 2738 l_int32 wpls) | |
| 2739 { | |
| 2740 l_int32 i; | |
| 2741 l_int32 j, pwpls; | |
| 2742 l_uint32 *sptr, *dptr; | |
| 2743 | |
| 2744 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2745 | |
| 2746 for (i = 0; i < h; i++) { | |
| 2747 sptr = datas + i * wpls; | |
| 2748 dptr = datad + i * wpld; | |
| 2749 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2750 *dptr = (*(sptr - wpls)) & | |
| 2751 (*sptr) & | |
| 2752 (*(sptr + wpls)); | |
| 2753 } | |
| 2754 } | |
| 2755 } | |
| 2756 | |
| 2757 static void | |
| 2758 fdilate_1_27(l_uint32 *datad, | |
| 2759 l_int32 w, | |
| 2760 l_int32 h, | |
| 2761 l_int32 wpld, | |
| 2762 l_uint32 *datas, | |
| 2763 l_int32 wpls) | |
| 2764 { | |
| 2765 l_int32 i; | |
| 2766 l_int32 j, pwpls; | |
| 2767 l_uint32 *sptr, *dptr; | |
| 2768 l_int32 wpls2; | |
| 2769 | |
| 2770 wpls2 = 2 * wpls; | |
| 2771 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2772 | |
| 2773 for (i = 0; i < h; i++) { | |
| 2774 sptr = datas + i * wpls; | |
| 2775 dptr = datad + i * wpld; | |
| 2776 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2777 *dptr = (*(sptr + wpls2)) | | |
| 2778 (*(sptr + wpls)) | | |
| 2779 (*sptr) | | |
| 2780 (*(sptr - wpls)); | |
| 2781 } | |
| 2782 } | |
| 2783 } | |
| 2784 | |
| 2785 static void | |
| 2786 ferode_1_27(l_uint32 *datad, | |
| 2787 l_int32 w, | |
| 2788 l_int32 h, | |
| 2789 l_int32 wpld, | |
| 2790 l_uint32 *datas, | |
| 2791 l_int32 wpls) | |
| 2792 { | |
| 2793 l_int32 i; | |
| 2794 l_int32 j, pwpls; | |
| 2795 l_uint32 *sptr, *dptr; | |
| 2796 l_int32 wpls2; | |
| 2797 | |
| 2798 wpls2 = 2 * wpls; | |
| 2799 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2800 | |
| 2801 for (i = 0; i < h; i++) { | |
| 2802 sptr = datas + i * wpls; | |
| 2803 dptr = datad + i * wpld; | |
| 2804 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2805 *dptr = (*(sptr - wpls2)) & | |
| 2806 (*(sptr - wpls)) & | |
| 2807 (*sptr) & | |
| 2808 (*(sptr + wpls)); | |
| 2809 } | |
| 2810 } | |
| 2811 } | |
| 2812 | |
| 2813 static void | |
| 2814 fdilate_1_28(l_uint32 *datad, | |
| 2815 l_int32 w, | |
| 2816 l_int32 h, | |
| 2817 l_int32 wpld, | |
| 2818 l_uint32 *datas, | |
| 2819 l_int32 wpls) | |
| 2820 { | |
| 2821 l_int32 i; | |
| 2822 l_int32 j, pwpls; | |
| 2823 l_uint32 *sptr, *dptr; | |
| 2824 l_int32 wpls2; | |
| 2825 | |
| 2826 wpls2 = 2 * wpls; | |
| 2827 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2828 | |
| 2829 for (i = 0; i < h; i++) { | |
| 2830 sptr = datas + i * wpls; | |
| 2831 dptr = datad + i * wpld; | |
| 2832 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2833 *dptr = (*(sptr + wpls2)) | | |
| 2834 (*(sptr + wpls)) | | |
| 2835 (*sptr) | | |
| 2836 (*(sptr - wpls)) | | |
| 2837 (*(sptr - wpls2)); | |
| 2838 } | |
| 2839 } | |
| 2840 } | |
| 2841 | |
| 2842 static void | |
| 2843 ferode_1_28(l_uint32 *datad, | |
| 2844 l_int32 w, | |
| 2845 l_int32 h, | |
| 2846 l_int32 wpld, | |
| 2847 l_uint32 *datas, | |
| 2848 l_int32 wpls) | |
| 2849 { | |
| 2850 l_int32 i; | |
| 2851 l_int32 j, pwpls; | |
| 2852 l_uint32 *sptr, *dptr; | |
| 2853 l_int32 wpls2; | |
| 2854 | |
| 2855 wpls2 = 2 * wpls; | |
| 2856 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2857 | |
| 2858 for (i = 0; i < h; i++) { | |
| 2859 sptr = datas + i * wpls; | |
| 2860 dptr = datad + i * wpld; | |
| 2861 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2862 *dptr = (*(sptr - wpls2)) & | |
| 2863 (*(sptr - wpls)) & | |
| 2864 (*sptr) & | |
| 2865 (*(sptr + wpls)) & | |
| 2866 (*(sptr + wpls2)); | |
| 2867 } | |
| 2868 } | |
| 2869 } | |
| 2870 | |
| 2871 static void | |
| 2872 fdilate_1_29(l_uint32 *datad, | |
| 2873 l_int32 w, | |
| 2874 l_int32 h, | |
| 2875 l_int32 wpld, | |
| 2876 l_uint32 *datas, | |
| 2877 l_int32 wpls) | |
| 2878 { | |
| 2879 l_int32 i; | |
| 2880 l_int32 j, pwpls; | |
| 2881 l_uint32 *sptr, *dptr; | |
| 2882 l_int32 wpls2, wpls3; | |
| 2883 | |
| 2884 wpls2 = 2 * wpls; | |
| 2885 wpls3 = 3 * wpls; | |
| 2886 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2887 | |
| 2888 for (i = 0; i < h; i++) { | |
| 2889 sptr = datas + i * wpls; | |
| 2890 dptr = datad + i * wpld; | |
| 2891 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2892 *dptr = (*(sptr + wpls3)) | | |
| 2893 (*(sptr + wpls2)) | | |
| 2894 (*(sptr + wpls)) | | |
| 2895 (*sptr) | | |
| 2896 (*(sptr - wpls)) | | |
| 2897 (*(sptr - wpls2)); | |
| 2898 } | |
| 2899 } | |
| 2900 } | |
| 2901 | |
| 2902 static void | |
| 2903 ferode_1_29(l_uint32 *datad, | |
| 2904 l_int32 w, | |
| 2905 l_int32 h, | |
| 2906 l_int32 wpld, | |
| 2907 l_uint32 *datas, | |
| 2908 l_int32 wpls) | |
| 2909 { | |
| 2910 l_int32 i; | |
| 2911 l_int32 j, pwpls; | |
| 2912 l_uint32 *sptr, *dptr; | |
| 2913 l_int32 wpls2, wpls3; | |
| 2914 | |
| 2915 wpls2 = 2 * wpls; | |
| 2916 wpls3 = 3 * wpls; | |
| 2917 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2918 | |
| 2919 for (i = 0; i < h; i++) { | |
| 2920 sptr = datas + i * wpls; | |
| 2921 dptr = datad + i * wpld; | |
| 2922 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2923 *dptr = (*(sptr - wpls3)) & | |
| 2924 (*(sptr - wpls2)) & | |
| 2925 (*(sptr - wpls)) & | |
| 2926 (*sptr) & | |
| 2927 (*(sptr + wpls)) & | |
| 2928 (*(sptr + wpls2)); | |
| 2929 } | |
| 2930 } | |
| 2931 } | |
| 2932 | |
| 2933 static void | |
| 2934 fdilate_1_30(l_uint32 *datad, | |
| 2935 l_int32 w, | |
| 2936 l_int32 h, | |
| 2937 l_int32 wpld, | |
| 2938 l_uint32 *datas, | |
| 2939 l_int32 wpls) | |
| 2940 { | |
| 2941 l_int32 i; | |
| 2942 l_int32 j, pwpls; | |
| 2943 l_uint32 *sptr, *dptr; | |
| 2944 l_int32 wpls2, wpls3; | |
| 2945 | |
| 2946 wpls2 = 2 * wpls; | |
| 2947 wpls3 = 3 * wpls; | |
| 2948 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2949 | |
| 2950 for (i = 0; i < h; i++) { | |
| 2951 sptr = datas + i * wpls; | |
| 2952 dptr = datad + i * wpld; | |
| 2953 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2954 *dptr = (*(sptr + wpls3)) | | |
| 2955 (*(sptr + wpls2)) | | |
| 2956 (*(sptr + wpls)) | | |
| 2957 (*sptr) | | |
| 2958 (*(sptr - wpls)) | | |
| 2959 (*(sptr - wpls2)) | | |
| 2960 (*(sptr - wpls3)); | |
| 2961 } | |
| 2962 } | |
| 2963 } | |
| 2964 | |
| 2965 static void | |
| 2966 ferode_1_30(l_uint32 *datad, | |
| 2967 l_int32 w, | |
| 2968 l_int32 h, | |
| 2969 l_int32 wpld, | |
| 2970 l_uint32 *datas, | |
| 2971 l_int32 wpls) | |
| 2972 { | |
| 2973 l_int32 i; | |
| 2974 l_int32 j, pwpls; | |
| 2975 l_uint32 *sptr, *dptr; | |
| 2976 l_int32 wpls2, wpls3; | |
| 2977 | |
| 2978 wpls2 = 2 * wpls; | |
| 2979 wpls3 = 3 * wpls; | |
| 2980 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 2981 | |
| 2982 for (i = 0; i < h; i++) { | |
| 2983 sptr = datas + i * wpls; | |
| 2984 dptr = datad + i * wpld; | |
| 2985 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 2986 *dptr = (*(sptr - wpls3)) & | |
| 2987 (*(sptr - wpls2)) & | |
| 2988 (*(sptr - wpls)) & | |
| 2989 (*sptr) & | |
| 2990 (*(sptr + wpls)) & | |
| 2991 (*(sptr + wpls2)) & | |
| 2992 (*(sptr + wpls3)); | |
| 2993 } | |
| 2994 } | |
| 2995 } | |
| 2996 | |
| 2997 static void | |
| 2998 fdilate_1_31(l_uint32 *datad, | |
| 2999 l_int32 w, | |
| 3000 l_int32 h, | |
| 3001 l_int32 wpld, | |
| 3002 l_uint32 *datas, | |
| 3003 l_int32 wpls) | |
| 3004 { | |
| 3005 l_int32 i; | |
| 3006 l_int32 j, pwpls; | |
| 3007 l_uint32 *sptr, *dptr; | |
| 3008 l_int32 wpls2, wpls3, wpls4; | |
| 3009 | |
| 3010 wpls2 = 2 * wpls; | |
| 3011 wpls3 = 3 * wpls; | |
| 3012 wpls4 = 4 * wpls; | |
| 3013 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3014 | |
| 3015 for (i = 0; i < h; i++) { | |
| 3016 sptr = datas + i * wpls; | |
| 3017 dptr = datad + i * wpld; | |
| 3018 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3019 *dptr = (*(sptr + wpls4)) | | |
| 3020 (*(sptr + wpls3)) | | |
| 3021 (*(sptr + wpls2)) | | |
| 3022 (*(sptr + wpls)) | | |
| 3023 (*sptr) | | |
| 3024 (*(sptr - wpls)) | | |
| 3025 (*(sptr - wpls2)) | | |
| 3026 (*(sptr - wpls3)); | |
| 3027 } | |
| 3028 } | |
| 3029 } | |
| 3030 | |
| 3031 static void | |
| 3032 ferode_1_31(l_uint32 *datad, | |
| 3033 l_int32 w, | |
| 3034 l_int32 h, | |
| 3035 l_int32 wpld, | |
| 3036 l_uint32 *datas, | |
| 3037 l_int32 wpls) | |
| 3038 { | |
| 3039 l_int32 i; | |
| 3040 l_int32 j, pwpls; | |
| 3041 l_uint32 *sptr, *dptr; | |
| 3042 l_int32 wpls2, wpls3, wpls4; | |
| 3043 | |
| 3044 wpls2 = 2 * wpls; | |
| 3045 wpls3 = 3 * wpls; | |
| 3046 wpls4 = 4 * wpls; | |
| 3047 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3048 | |
| 3049 for (i = 0; i < h; i++) { | |
| 3050 sptr = datas + i * wpls; | |
| 3051 dptr = datad + i * wpld; | |
| 3052 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3053 *dptr = (*(sptr - wpls4)) & | |
| 3054 (*(sptr - wpls3)) & | |
| 3055 (*(sptr - wpls2)) & | |
| 3056 (*(sptr - wpls)) & | |
| 3057 (*sptr) & | |
| 3058 (*(sptr + wpls)) & | |
| 3059 (*(sptr + wpls2)) & | |
| 3060 (*(sptr + wpls3)); | |
| 3061 } | |
| 3062 } | |
| 3063 } | |
| 3064 | |
| 3065 static void | |
| 3066 fdilate_1_32(l_uint32 *datad, | |
| 3067 l_int32 w, | |
| 3068 l_int32 h, | |
| 3069 l_int32 wpld, | |
| 3070 l_uint32 *datas, | |
| 3071 l_int32 wpls) | |
| 3072 { | |
| 3073 l_int32 i; | |
| 3074 l_int32 j, pwpls; | |
| 3075 l_uint32 *sptr, *dptr; | |
| 3076 l_int32 wpls2, wpls3, wpls4; | |
| 3077 | |
| 3078 wpls2 = 2 * wpls; | |
| 3079 wpls3 = 3 * wpls; | |
| 3080 wpls4 = 4 * wpls; | |
| 3081 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3082 | |
| 3083 for (i = 0; i < h; i++) { | |
| 3084 sptr = datas + i * wpls; | |
| 3085 dptr = datad + i * wpld; | |
| 3086 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3087 *dptr = (*(sptr + wpls4)) | | |
| 3088 (*(sptr + wpls3)) | | |
| 3089 (*(sptr + wpls2)) | | |
| 3090 (*(sptr + wpls)) | | |
| 3091 (*sptr) | | |
| 3092 (*(sptr - wpls)) | | |
| 3093 (*(sptr - wpls2)) | | |
| 3094 (*(sptr - wpls3)) | | |
| 3095 (*(sptr - wpls4)); | |
| 3096 } | |
| 3097 } | |
| 3098 } | |
| 3099 | |
| 3100 static void | |
| 3101 ferode_1_32(l_uint32 *datad, | |
| 3102 l_int32 w, | |
| 3103 l_int32 h, | |
| 3104 l_int32 wpld, | |
| 3105 l_uint32 *datas, | |
| 3106 l_int32 wpls) | |
| 3107 { | |
| 3108 l_int32 i; | |
| 3109 l_int32 j, pwpls; | |
| 3110 l_uint32 *sptr, *dptr; | |
| 3111 l_int32 wpls2, wpls3, wpls4; | |
| 3112 | |
| 3113 wpls2 = 2 * wpls; | |
| 3114 wpls3 = 3 * wpls; | |
| 3115 wpls4 = 4 * wpls; | |
| 3116 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3117 | |
| 3118 for (i = 0; i < h; i++) { | |
| 3119 sptr = datas + i * wpls; | |
| 3120 dptr = datad + i * wpld; | |
| 3121 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3122 *dptr = (*(sptr - wpls4)) & | |
| 3123 (*(sptr - wpls3)) & | |
| 3124 (*(sptr - wpls2)) & | |
| 3125 (*(sptr - wpls)) & | |
| 3126 (*sptr) & | |
| 3127 (*(sptr + wpls)) & | |
| 3128 (*(sptr + wpls2)) & | |
| 3129 (*(sptr + wpls3)) & | |
| 3130 (*(sptr + wpls4)); | |
| 3131 } | |
| 3132 } | |
| 3133 } | |
| 3134 | |
| 3135 static void | |
| 3136 fdilate_1_33(l_uint32 *datad, | |
| 3137 l_int32 w, | |
| 3138 l_int32 h, | |
| 3139 l_int32 wpld, | |
| 3140 l_uint32 *datas, | |
| 3141 l_int32 wpls) | |
| 3142 { | |
| 3143 l_int32 i; | |
| 3144 l_int32 j, pwpls; | |
| 3145 l_uint32 *sptr, *dptr; | |
| 3146 l_int32 wpls2, wpls3, wpls4; | |
| 3147 l_int32 wpls5; | |
| 3148 | |
| 3149 wpls2 = 2 * wpls; | |
| 3150 wpls3 = 3 * wpls; | |
| 3151 wpls4 = 4 * wpls; | |
| 3152 wpls5 = 5 * wpls; | |
| 3153 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3154 | |
| 3155 for (i = 0; i < h; i++) { | |
| 3156 sptr = datas + i * wpls; | |
| 3157 dptr = datad + i * wpld; | |
| 3158 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3159 *dptr = (*(sptr + wpls5)) | | |
| 3160 (*(sptr + wpls4)) | | |
| 3161 (*(sptr + wpls3)) | | |
| 3162 (*(sptr + wpls2)) | | |
| 3163 (*(sptr + wpls)) | | |
| 3164 (*sptr) | | |
| 3165 (*(sptr - wpls)) | | |
| 3166 (*(sptr - wpls2)) | | |
| 3167 (*(sptr - wpls3)) | | |
| 3168 (*(sptr - wpls4)); | |
| 3169 } | |
| 3170 } | |
| 3171 } | |
| 3172 | |
| 3173 static void | |
| 3174 ferode_1_33(l_uint32 *datad, | |
| 3175 l_int32 w, | |
| 3176 l_int32 h, | |
| 3177 l_int32 wpld, | |
| 3178 l_uint32 *datas, | |
| 3179 l_int32 wpls) | |
| 3180 { | |
| 3181 l_int32 i; | |
| 3182 l_int32 j, pwpls; | |
| 3183 l_uint32 *sptr, *dptr; | |
| 3184 l_int32 wpls2, wpls3, wpls4; | |
| 3185 l_int32 wpls5; | |
| 3186 | |
| 3187 wpls2 = 2 * wpls; | |
| 3188 wpls3 = 3 * wpls; | |
| 3189 wpls4 = 4 * wpls; | |
| 3190 wpls5 = 5 * wpls; | |
| 3191 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3192 | |
| 3193 for (i = 0; i < h; i++) { | |
| 3194 sptr = datas + i * wpls; | |
| 3195 dptr = datad + i * wpld; | |
| 3196 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3197 *dptr = (*(sptr - wpls5)) & | |
| 3198 (*(sptr - wpls4)) & | |
| 3199 (*(sptr - wpls3)) & | |
| 3200 (*(sptr - wpls2)) & | |
| 3201 (*(sptr - wpls)) & | |
| 3202 (*sptr) & | |
| 3203 (*(sptr + wpls)) & | |
| 3204 (*(sptr + wpls2)) & | |
| 3205 (*(sptr + wpls3)) & | |
| 3206 (*(sptr + wpls4)); | |
| 3207 } | |
| 3208 } | |
| 3209 } | |
| 3210 | |
| 3211 static void | |
| 3212 fdilate_1_34(l_uint32 *datad, | |
| 3213 l_int32 w, | |
| 3214 l_int32 h, | |
| 3215 l_int32 wpld, | |
| 3216 l_uint32 *datas, | |
| 3217 l_int32 wpls) | |
| 3218 { | |
| 3219 l_int32 i; | |
| 3220 l_int32 j, pwpls; | |
| 3221 l_uint32 *sptr, *dptr; | |
| 3222 l_int32 wpls2, wpls3, wpls4; | |
| 3223 l_int32 wpls5; | |
| 3224 | |
| 3225 wpls2 = 2 * wpls; | |
| 3226 wpls3 = 3 * wpls; | |
| 3227 wpls4 = 4 * wpls; | |
| 3228 wpls5 = 5 * wpls; | |
| 3229 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3230 | |
| 3231 for (i = 0; i < h; i++) { | |
| 3232 sptr = datas + i * wpls; | |
| 3233 dptr = datad + i * wpld; | |
| 3234 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3235 *dptr = (*(sptr + wpls5)) | | |
| 3236 (*(sptr + wpls4)) | | |
| 3237 (*(sptr + wpls3)) | | |
| 3238 (*(sptr + wpls2)) | | |
| 3239 (*(sptr + wpls)) | | |
| 3240 (*sptr) | | |
| 3241 (*(sptr - wpls)) | | |
| 3242 (*(sptr - wpls2)) | | |
| 3243 (*(sptr - wpls3)) | | |
| 3244 (*(sptr - wpls4)) | | |
| 3245 (*(sptr - wpls5)); | |
| 3246 } | |
| 3247 } | |
| 3248 } | |
| 3249 | |
| 3250 static void | |
| 3251 ferode_1_34(l_uint32 *datad, | |
| 3252 l_int32 w, | |
| 3253 l_int32 h, | |
| 3254 l_int32 wpld, | |
| 3255 l_uint32 *datas, | |
| 3256 l_int32 wpls) | |
| 3257 { | |
| 3258 l_int32 i; | |
| 3259 l_int32 j, pwpls; | |
| 3260 l_uint32 *sptr, *dptr; | |
| 3261 l_int32 wpls2, wpls3, wpls4; | |
| 3262 l_int32 wpls5; | |
| 3263 | |
| 3264 wpls2 = 2 * wpls; | |
| 3265 wpls3 = 3 * wpls; | |
| 3266 wpls4 = 4 * wpls; | |
| 3267 wpls5 = 5 * wpls; | |
| 3268 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3269 | |
| 3270 for (i = 0; i < h; i++) { | |
| 3271 sptr = datas + i * wpls; | |
| 3272 dptr = datad + i * wpld; | |
| 3273 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3274 *dptr = (*(sptr - wpls5)) & | |
| 3275 (*(sptr - wpls4)) & | |
| 3276 (*(sptr - wpls3)) & | |
| 3277 (*(sptr - wpls2)) & | |
| 3278 (*(sptr - wpls)) & | |
| 3279 (*sptr) & | |
| 3280 (*(sptr + wpls)) & | |
| 3281 (*(sptr + wpls2)) & | |
| 3282 (*(sptr + wpls3)) & | |
| 3283 (*(sptr + wpls4)) & | |
| 3284 (*(sptr + wpls5)); | |
| 3285 } | |
| 3286 } | |
| 3287 } | |
| 3288 | |
| 3289 static void | |
| 3290 fdilate_1_35(l_uint32 *datad, | |
| 3291 l_int32 w, | |
| 3292 l_int32 h, | |
| 3293 l_int32 wpld, | |
| 3294 l_uint32 *datas, | |
| 3295 l_int32 wpls) | |
| 3296 { | |
| 3297 l_int32 i; | |
| 3298 l_int32 j, pwpls; | |
| 3299 l_uint32 *sptr, *dptr; | |
| 3300 l_int32 wpls2, wpls3, wpls4; | |
| 3301 l_int32 wpls5, wpls6; | |
| 3302 | |
| 3303 wpls2 = 2 * wpls; | |
| 3304 wpls3 = 3 * wpls; | |
| 3305 wpls4 = 4 * wpls; | |
| 3306 wpls5 = 5 * wpls; | |
| 3307 wpls6 = 6 * wpls; | |
| 3308 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3309 | |
| 3310 for (i = 0; i < h; i++) { | |
| 3311 sptr = datas + i * wpls; | |
| 3312 dptr = datad + i * wpld; | |
| 3313 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3314 *dptr = (*(sptr + wpls6)) | | |
| 3315 (*(sptr + wpls5)) | | |
| 3316 (*(sptr + wpls4)) | | |
| 3317 (*(sptr + wpls3)) | | |
| 3318 (*(sptr + wpls2)) | | |
| 3319 (*(sptr + wpls)) | | |
| 3320 (*sptr) | | |
| 3321 (*(sptr - wpls)) | | |
| 3322 (*(sptr - wpls2)) | | |
| 3323 (*(sptr - wpls3)) | | |
| 3324 (*(sptr - wpls4)) | | |
| 3325 (*(sptr - wpls5)); | |
| 3326 } | |
| 3327 } | |
| 3328 } | |
| 3329 | |
| 3330 static void | |
| 3331 ferode_1_35(l_uint32 *datad, | |
| 3332 l_int32 w, | |
| 3333 l_int32 h, | |
| 3334 l_int32 wpld, | |
| 3335 l_uint32 *datas, | |
| 3336 l_int32 wpls) | |
| 3337 { | |
| 3338 l_int32 i; | |
| 3339 l_int32 j, pwpls; | |
| 3340 l_uint32 *sptr, *dptr; | |
| 3341 l_int32 wpls2, wpls3, wpls4; | |
| 3342 l_int32 wpls5, wpls6; | |
| 3343 | |
| 3344 wpls2 = 2 * wpls; | |
| 3345 wpls3 = 3 * wpls; | |
| 3346 wpls4 = 4 * wpls; | |
| 3347 wpls5 = 5 * wpls; | |
| 3348 wpls6 = 6 * wpls; | |
| 3349 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3350 | |
| 3351 for (i = 0; i < h; i++) { | |
| 3352 sptr = datas + i * wpls; | |
| 3353 dptr = datad + i * wpld; | |
| 3354 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3355 *dptr = (*(sptr - wpls6)) & | |
| 3356 (*(sptr - wpls5)) & | |
| 3357 (*(sptr - wpls4)) & | |
| 3358 (*(sptr - wpls3)) & | |
| 3359 (*(sptr - wpls2)) & | |
| 3360 (*(sptr - wpls)) & | |
| 3361 (*sptr) & | |
| 3362 (*(sptr + wpls)) & | |
| 3363 (*(sptr + wpls2)) & | |
| 3364 (*(sptr + wpls3)) & | |
| 3365 (*(sptr + wpls4)) & | |
| 3366 (*(sptr + wpls5)); | |
| 3367 } | |
| 3368 } | |
| 3369 } | |
| 3370 | |
| 3371 static void | |
| 3372 fdilate_1_36(l_uint32 *datad, | |
| 3373 l_int32 w, | |
| 3374 l_int32 h, | |
| 3375 l_int32 wpld, | |
| 3376 l_uint32 *datas, | |
| 3377 l_int32 wpls) | |
| 3378 { | |
| 3379 l_int32 i; | |
| 3380 l_int32 j, pwpls; | |
| 3381 l_uint32 *sptr, *dptr; | |
| 3382 l_int32 wpls2, wpls3, wpls4; | |
| 3383 l_int32 wpls5, wpls6; | |
| 3384 | |
| 3385 wpls2 = 2 * wpls; | |
| 3386 wpls3 = 3 * wpls; | |
| 3387 wpls4 = 4 * wpls; | |
| 3388 wpls5 = 5 * wpls; | |
| 3389 wpls6 = 6 * wpls; | |
| 3390 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3391 | |
| 3392 for (i = 0; i < h; i++) { | |
| 3393 sptr = datas + i * wpls; | |
| 3394 dptr = datad + i * wpld; | |
| 3395 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3396 *dptr = (*(sptr + wpls6)) | | |
| 3397 (*(sptr + wpls5)) | | |
| 3398 (*(sptr + wpls4)) | | |
| 3399 (*(sptr + wpls3)) | | |
| 3400 (*(sptr + wpls2)) | | |
| 3401 (*(sptr + wpls)) | | |
| 3402 (*sptr) | | |
| 3403 (*(sptr - wpls)) | | |
| 3404 (*(sptr - wpls2)) | | |
| 3405 (*(sptr - wpls3)) | | |
| 3406 (*(sptr - wpls4)) | | |
| 3407 (*(sptr - wpls5)) | | |
| 3408 (*(sptr - wpls6)); | |
| 3409 } | |
| 3410 } | |
| 3411 } | |
| 3412 | |
| 3413 static void | |
| 3414 ferode_1_36(l_uint32 *datad, | |
| 3415 l_int32 w, | |
| 3416 l_int32 h, | |
| 3417 l_int32 wpld, | |
| 3418 l_uint32 *datas, | |
| 3419 l_int32 wpls) | |
| 3420 { | |
| 3421 l_int32 i; | |
| 3422 l_int32 j, pwpls; | |
| 3423 l_uint32 *sptr, *dptr; | |
| 3424 l_int32 wpls2, wpls3, wpls4; | |
| 3425 l_int32 wpls5, wpls6; | |
| 3426 | |
| 3427 wpls2 = 2 * wpls; | |
| 3428 wpls3 = 3 * wpls; | |
| 3429 wpls4 = 4 * wpls; | |
| 3430 wpls5 = 5 * wpls; | |
| 3431 wpls6 = 6 * wpls; | |
| 3432 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3433 | |
| 3434 for (i = 0; i < h; i++) { | |
| 3435 sptr = datas + i * wpls; | |
| 3436 dptr = datad + i * wpld; | |
| 3437 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3438 *dptr = (*(sptr - wpls6)) & | |
| 3439 (*(sptr - wpls5)) & | |
| 3440 (*(sptr - wpls4)) & | |
| 3441 (*(sptr - wpls3)) & | |
| 3442 (*(sptr - wpls2)) & | |
| 3443 (*(sptr - wpls)) & | |
| 3444 (*sptr) & | |
| 3445 (*(sptr + wpls)) & | |
| 3446 (*(sptr + wpls2)) & | |
| 3447 (*(sptr + wpls3)) & | |
| 3448 (*(sptr + wpls4)) & | |
| 3449 (*(sptr + wpls5)) & | |
| 3450 (*(sptr + wpls6)); | |
| 3451 } | |
| 3452 } | |
| 3453 } | |
| 3454 | |
| 3455 static void | |
| 3456 fdilate_1_37(l_uint32 *datad, | |
| 3457 l_int32 w, | |
| 3458 l_int32 h, | |
| 3459 l_int32 wpld, | |
| 3460 l_uint32 *datas, | |
| 3461 l_int32 wpls) | |
| 3462 { | |
| 3463 l_int32 i; | |
| 3464 l_int32 j, pwpls; | |
| 3465 l_uint32 *sptr, *dptr; | |
| 3466 l_int32 wpls2, wpls3, wpls4; | |
| 3467 l_int32 wpls5, wpls6, wpls7; | |
| 3468 | |
| 3469 wpls2 = 2 * wpls; | |
| 3470 wpls3 = 3 * wpls; | |
| 3471 wpls4 = 4 * wpls; | |
| 3472 wpls5 = 5 * wpls; | |
| 3473 wpls6 = 6 * wpls; | |
| 3474 wpls7 = 7 * wpls; | |
| 3475 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3476 | |
| 3477 for (i = 0; i < h; i++) { | |
| 3478 sptr = datas + i * wpls; | |
| 3479 dptr = datad + i * wpld; | |
| 3480 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3481 *dptr = (*(sptr + wpls7)) | | |
| 3482 (*(sptr + wpls6)) | | |
| 3483 (*(sptr + wpls5)) | | |
| 3484 (*(sptr + wpls4)) | | |
| 3485 (*(sptr + wpls3)) | | |
| 3486 (*(sptr + wpls2)) | | |
| 3487 (*(sptr + wpls)) | | |
| 3488 (*sptr) | | |
| 3489 (*(sptr - wpls)) | | |
| 3490 (*(sptr - wpls2)) | | |
| 3491 (*(sptr - wpls3)) | | |
| 3492 (*(sptr - wpls4)) | | |
| 3493 (*(sptr - wpls5)) | | |
| 3494 (*(sptr - wpls6)); | |
| 3495 } | |
| 3496 } | |
| 3497 } | |
| 3498 | |
| 3499 static void | |
| 3500 ferode_1_37(l_uint32 *datad, | |
| 3501 l_int32 w, | |
| 3502 l_int32 h, | |
| 3503 l_int32 wpld, | |
| 3504 l_uint32 *datas, | |
| 3505 l_int32 wpls) | |
| 3506 { | |
| 3507 l_int32 i; | |
| 3508 l_int32 j, pwpls; | |
| 3509 l_uint32 *sptr, *dptr; | |
| 3510 l_int32 wpls2, wpls3, wpls4; | |
| 3511 l_int32 wpls5, wpls6, wpls7; | |
| 3512 | |
| 3513 wpls2 = 2 * wpls; | |
| 3514 wpls3 = 3 * wpls; | |
| 3515 wpls4 = 4 * wpls; | |
| 3516 wpls5 = 5 * wpls; | |
| 3517 wpls6 = 6 * wpls; | |
| 3518 wpls7 = 7 * wpls; | |
| 3519 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3520 | |
| 3521 for (i = 0; i < h; i++) { | |
| 3522 sptr = datas + i * wpls; | |
| 3523 dptr = datad + i * wpld; | |
| 3524 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3525 *dptr = (*(sptr - wpls7)) & | |
| 3526 (*(sptr - wpls6)) & | |
| 3527 (*(sptr - wpls5)) & | |
| 3528 (*(sptr - wpls4)) & | |
| 3529 (*(sptr - wpls3)) & | |
| 3530 (*(sptr - wpls2)) & | |
| 3531 (*(sptr - wpls)) & | |
| 3532 (*sptr) & | |
| 3533 (*(sptr + wpls)) & | |
| 3534 (*(sptr + wpls2)) & | |
| 3535 (*(sptr + wpls3)) & | |
| 3536 (*(sptr + wpls4)) & | |
| 3537 (*(sptr + wpls5)) & | |
| 3538 (*(sptr + wpls6)); | |
| 3539 } | |
| 3540 } | |
| 3541 } | |
| 3542 | |
| 3543 static void | |
| 3544 fdilate_1_38(l_uint32 *datad, | |
| 3545 l_int32 w, | |
| 3546 l_int32 h, | |
| 3547 l_int32 wpld, | |
| 3548 l_uint32 *datas, | |
| 3549 l_int32 wpls) | |
| 3550 { | |
| 3551 l_int32 i; | |
| 3552 l_int32 j, pwpls; | |
| 3553 l_uint32 *sptr, *dptr; | |
| 3554 l_int32 wpls2, wpls3, wpls4; | |
| 3555 l_int32 wpls5, wpls6, wpls7; | |
| 3556 | |
| 3557 wpls2 = 2 * wpls; | |
| 3558 wpls3 = 3 * wpls; | |
| 3559 wpls4 = 4 * wpls; | |
| 3560 wpls5 = 5 * wpls; | |
| 3561 wpls6 = 6 * wpls; | |
| 3562 wpls7 = 7 * wpls; | |
| 3563 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3564 | |
| 3565 for (i = 0; i < h; i++) { | |
| 3566 sptr = datas + i * wpls; | |
| 3567 dptr = datad + i * wpld; | |
| 3568 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3569 *dptr = (*(sptr + wpls7)) | | |
| 3570 (*(sptr + wpls6)) | | |
| 3571 (*(sptr + wpls5)) | | |
| 3572 (*(sptr + wpls4)) | | |
| 3573 (*(sptr + wpls3)) | | |
| 3574 (*(sptr + wpls2)) | | |
| 3575 (*(sptr + wpls)) | | |
| 3576 (*sptr) | | |
| 3577 (*(sptr - wpls)) | | |
| 3578 (*(sptr - wpls2)) | | |
| 3579 (*(sptr - wpls3)) | | |
| 3580 (*(sptr - wpls4)) | | |
| 3581 (*(sptr - wpls5)) | | |
| 3582 (*(sptr - wpls6)) | | |
| 3583 (*(sptr - wpls7)); | |
| 3584 } | |
| 3585 } | |
| 3586 } | |
| 3587 | |
| 3588 static void | |
| 3589 ferode_1_38(l_uint32 *datad, | |
| 3590 l_int32 w, | |
| 3591 l_int32 h, | |
| 3592 l_int32 wpld, | |
| 3593 l_uint32 *datas, | |
| 3594 l_int32 wpls) | |
| 3595 { | |
| 3596 l_int32 i; | |
| 3597 l_int32 j, pwpls; | |
| 3598 l_uint32 *sptr, *dptr; | |
| 3599 l_int32 wpls2, wpls3, wpls4; | |
| 3600 l_int32 wpls5, wpls6, wpls7; | |
| 3601 | |
| 3602 wpls2 = 2 * wpls; | |
| 3603 wpls3 = 3 * wpls; | |
| 3604 wpls4 = 4 * wpls; | |
| 3605 wpls5 = 5 * wpls; | |
| 3606 wpls6 = 6 * wpls; | |
| 3607 wpls7 = 7 * wpls; | |
| 3608 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3609 | |
| 3610 for (i = 0; i < h; i++) { | |
| 3611 sptr = datas + i * wpls; | |
| 3612 dptr = datad + i * wpld; | |
| 3613 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3614 *dptr = (*(sptr - wpls7)) & | |
| 3615 (*(sptr - wpls6)) & | |
| 3616 (*(sptr - wpls5)) & | |
| 3617 (*(sptr - wpls4)) & | |
| 3618 (*(sptr - wpls3)) & | |
| 3619 (*(sptr - wpls2)) & | |
| 3620 (*(sptr - wpls)) & | |
| 3621 (*sptr) & | |
| 3622 (*(sptr + wpls)) & | |
| 3623 (*(sptr + wpls2)) & | |
| 3624 (*(sptr + wpls3)) & | |
| 3625 (*(sptr + wpls4)) & | |
| 3626 (*(sptr + wpls5)) & | |
| 3627 (*(sptr + wpls6)) & | |
| 3628 (*(sptr + wpls7)); | |
| 3629 } | |
| 3630 } | |
| 3631 } | |
| 3632 | |
| 3633 static void | |
| 3634 fdilate_1_39(l_uint32 *datad, | |
| 3635 l_int32 w, | |
| 3636 l_int32 h, | |
| 3637 l_int32 wpld, | |
| 3638 l_uint32 *datas, | |
| 3639 l_int32 wpls) | |
| 3640 { | |
| 3641 l_int32 i; | |
| 3642 l_int32 j, pwpls; | |
| 3643 l_uint32 *sptr, *dptr; | |
| 3644 l_int32 wpls2, wpls3, wpls4; | |
| 3645 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3646 l_int32 wpls9, wpls10; | |
| 3647 | |
| 3648 wpls2 = 2 * wpls; | |
| 3649 wpls3 = 3 * wpls; | |
| 3650 wpls4 = 4 * wpls; | |
| 3651 wpls5 = 5 * wpls; | |
| 3652 wpls6 = 6 * wpls; | |
| 3653 wpls7 = 7 * wpls; | |
| 3654 wpls8 = 8 * wpls; | |
| 3655 wpls9 = 9 * wpls; | |
| 3656 wpls10 = 10 * wpls; | |
| 3657 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3658 | |
| 3659 for (i = 0; i < h; i++) { | |
| 3660 sptr = datas + i * wpls; | |
| 3661 dptr = datad + i * wpld; | |
| 3662 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3663 *dptr = (*(sptr + wpls10)) | | |
| 3664 (*(sptr + wpls9)) | | |
| 3665 (*(sptr + wpls8)) | | |
| 3666 (*(sptr + wpls7)) | | |
| 3667 (*(sptr + wpls6)) | | |
| 3668 (*(sptr + wpls5)) | | |
| 3669 (*(sptr + wpls4)) | | |
| 3670 (*(sptr + wpls3)) | | |
| 3671 (*(sptr + wpls2)) | | |
| 3672 (*(sptr + wpls)) | | |
| 3673 (*sptr) | | |
| 3674 (*(sptr - wpls)) | | |
| 3675 (*(sptr - wpls2)) | | |
| 3676 (*(sptr - wpls3)) | | |
| 3677 (*(sptr - wpls4)) | | |
| 3678 (*(sptr - wpls5)) | | |
| 3679 (*(sptr - wpls6)) | | |
| 3680 (*(sptr - wpls7)) | | |
| 3681 (*(sptr - wpls8)) | | |
| 3682 (*(sptr - wpls9)); | |
| 3683 } | |
| 3684 } | |
| 3685 } | |
| 3686 | |
| 3687 static void | |
| 3688 ferode_1_39(l_uint32 *datad, | |
| 3689 l_int32 w, | |
| 3690 l_int32 h, | |
| 3691 l_int32 wpld, | |
| 3692 l_uint32 *datas, | |
| 3693 l_int32 wpls) | |
| 3694 { | |
| 3695 l_int32 i; | |
| 3696 l_int32 j, pwpls; | |
| 3697 l_uint32 *sptr, *dptr; | |
| 3698 l_int32 wpls2, wpls3, wpls4; | |
| 3699 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3700 l_int32 wpls9, wpls10; | |
| 3701 | |
| 3702 wpls2 = 2 * wpls; | |
| 3703 wpls3 = 3 * wpls; | |
| 3704 wpls4 = 4 * wpls; | |
| 3705 wpls5 = 5 * wpls; | |
| 3706 wpls6 = 6 * wpls; | |
| 3707 wpls7 = 7 * wpls; | |
| 3708 wpls8 = 8 * wpls; | |
| 3709 wpls9 = 9 * wpls; | |
| 3710 wpls10 = 10 * wpls; | |
| 3711 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3712 | |
| 3713 for (i = 0; i < h; i++) { | |
| 3714 sptr = datas + i * wpls; | |
| 3715 dptr = datad + i * wpld; | |
| 3716 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3717 *dptr = (*(sptr - wpls10)) & | |
| 3718 (*(sptr - wpls9)) & | |
| 3719 (*(sptr - wpls8)) & | |
| 3720 (*(sptr - wpls7)) & | |
| 3721 (*(sptr - wpls6)) & | |
| 3722 (*(sptr - wpls5)) & | |
| 3723 (*(sptr - wpls4)) & | |
| 3724 (*(sptr - wpls3)) & | |
| 3725 (*(sptr - wpls2)) & | |
| 3726 (*(sptr - wpls)) & | |
| 3727 (*sptr) & | |
| 3728 (*(sptr + wpls)) & | |
| 3729 (*(sptr + wpls2)) & | |
| 3730 (*(sptr + wpls3)) & | |
| 3731 (*(sptr + wpls4)) & | |
| 3732 (*(sptr + wpls5)) & | |
| 3733 (*(sptr + wpls6)) & | |
| 3734 (*(sptr + wpls7)) & | |
| 3735 (*(sptr + wpls8)) & | |
| 3736 (*(sptr + wpls9)); | |
| 3737 } | |
| 3738 } | |
| 3739 } | |
| 3740 | |
| 3741 static void | |
| 3742 fdilate_1_40(l_uint32 *datad, | |
| 3743 l_int32 w, | |
| 3744 l_int32 h, | |
| 3745 l_int32 wpld, | |
| 3746 l_uint32 *datas, | |
| 3747 l_int32 wpls) | |
| 3748 { | |
| 3749 l_int32 i; | |
| 3750 l_int32 j, pwpls; | |
| 3751 l_uint32 *sptr, *dptr; | |
| 3752 l_int32 wpls2, wpls3, wpls4; | |
| 3753 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3754 l_int32 wpls9, wpls10; | |
| 3755 | |
| 3756 wpls2 = 2 * wpls; | |
| 3757 wpls3 = 3 * wpls; | |
| 3758 wpls4 = 4 * wpls; | |
| 3759 wpls5 = 5 * wpls; | |
| 3760 wpls6 = 6 * wpls; | |
| 3761 wpls7 = 7 * wpls; | |
| 3762 wpls8 = 8 * wpls; | |
| 3763 wpls9 = 9 * wpls; | |
| 3764 wpls10 = 10 * wpls; | |
| 3765 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3766 | |
| 3767 for (i = 0; i < h; i++) { | |
| 3768 sptr = datas + i * wpls; | |
| 3769 dptr = datad + i * wpld; | |
| 3770 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3771 *dptr = (*(sptr + wpls10)) | | |
| 3772 (*(sptr + wpls9)) | | |
| 3773 (*(sptr + wpls8)) | | |
| 3774 (*(sptr + wpls7)) | | |
| 3775 (*(sptr + wpls6)) | | |
| 3776 (*(sptr + wpls5)) | | |
| 3777 (*(sptr + wpls4)) | | |
| 3778 (*(sptr + wpls3)) | | |
| 3779 (*(sptr + wpls2)) | | |
| 3780 (*(sptr + wpls)) | | |
| 3781 (*sptr) | | |
| 3782 (*(sptr - wpls)) | | |
| 3783 (*(sptr - wpls2)) | | |
| 3784 (*(sptr - wpls3)) | | |
| 3785 (*(sptr - wpls4)) | | |
| 3786 (*(sptr - wpls5)) | | |
| 3787 (*(sptr - wpls6)) | | |
| 3788 (*(sptr - wpls7)) | | |
| 3789 (*(sptr - wpls8)) | | |
| 3790 (*(sptr - wpls9)) | | |
| 3791 (*(sptr - wpls10)); | |
| 3792 } | |
| 3793 } | |
| 3794 } | |
| 3795 | |
| 3796 static void | |
| 3797 ferode_1_40(l_uint32 *datad, | |
| 3798 l_int32 w, | |
| 3799 l_int32 h, | |
| 3800 l_int32 wpld, | |
| 3801 l_uint32 *datas, | |
| 3802 l_int32 wpls) | |
| 3803 { | |
| 3804 l_int32 i; | |
| 3805 l_int32 j, pwpls; | |
| 3806 l_uint32 *sptr, *dptr; | |
| 3807 l_int32 wpls2, wpls3, wpls4; | |
| 3808 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3809 l_int32 wpls9, wpls10; | |
| 3810 | |
| 3811 wpls2 = 2 * wpls; | |
| 3812 wpls3 = 3 * wpls; | |
| 3813 wpls4 = 4 * wpls; | |
| 3814 wpls5 = 5 * wpls; | |
| 3815 wpls6 = 6 * wpls; | |
| 3816 wpls7 = 7 * wpls; | |
| 3817 wpls8 = 8 * wpls; | |
| 3818 wpls9 = 9 * wpls; | |
| 3819 wpls10 = 10 * wpls; | |
| 3820 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3821 | |
| 3822 for (i = 0; i < h; i++) { | |
| 3823 sptr = datas + i * wpls; | |
| 3824 dptr = datad + i * wpld; | |
| 3825 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3826 *dptr = (*(sptr - wpls10)) & | |
| 3827 (*(sptr - wpls9)) & | |
| 3828 (*(sptr - wpls8)) & | |
| 3829 (*(sptr - wpls7)) & | |
| 3830 (*(sptr - wpls6)) & | |
| 3831 (*(sptr - wpls5)) & | |
| 3832 (*(sptr - wpls4)) & | |
| 3833 (*(sptr - wpls3)) & | |
| 3834 (*(sptr - wpls2)) & | |
| 3835 (*(sptr - wpls)) & | |
| 3836 (*sptr) & | |
| 3837 (*(sptr + wpls)) & | |
| 3838 (*(sptr + wpls2)) & | |
| 3839 (*(sptr + wpls3)) & | |
| 3840 (*(sptr + wpls4)) & | |
| 3841 (*(sptr + wpls5)) & | |
| 3842 (*(sptr + wpls6)) & | |
| 3843 (*(sptr + wpls7)) & | |
| 3844 (*(sptr + wpls8)) & | |
| 3845 (*(sptr + wpls9)) & | |
| 3846 (*(sptr + wpls10)); | |
| 3847 } | |
| 3848 } | |
| 3849 } | |
| 3850 | |
| 3851 static void | |
| 3852 fdilate_1_41(l_uint32 *datad, | |
| 3853 l_int32 w, | |
| 3854 l_int32 h, | |
| 3855 l_int32 wpld, | |
| 3856 l_uint32 *datas, | |
| 3857 l_int32 wpls) | |
| 3858 { | |
| 3859 l_int32 i; | |
| 3860 l_int32 j, pwpls; | |
| 3861 l_uint32 *sptr, *dptr; | |
| 3862 l_int32 wpls2, wpls3, wpls4; | |
| 3863 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3864 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 3865 | |
| 3866 wpls2 = 2 * wpls; | |
| 3867 wpls3 = 3 * wpls; | |
| 3868 wpls4 = 4 * wpls; | |
| 3869 wpls5 = 5 * wpls; | |
| 3870 wpls6 = 6 * wpls; | |
| 3871 wpls7 = 7 * wpls; | |
| 3872 wpls8 = 8 * wpls; | |
| 3873 wpls9 = 9 * wpls; | |
| 3874 wpls10 = 10 * wpls; | |
| 3875 wpls11 = 11 * wpls; | |
| 3876 wpls12 = 12 * wpls; | |
| 3877 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3878 | |
| 3879 for (i = 0; i < h; i++) { | |
| 3880 sptr = datas + i * wpls; | |
| 3881 dptr = datad + i * wpld; | |
| 3882 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3883 *dptr = (*(sptr + wpls12)) | | |
| 3884 (*(sptr + wpls11)) | | |
| 3885 (*(sptr + wpls10)) | | |
| 3886 (*(sptr + wpls9)) | | |
| 3887 (*(sptr + wpls8)) | | |
| 3888 (*(sptr + wpls7)) | | |
| 3889 (*(sptr + wpls6)) | | |
| 3890 (*(sptr + wpls5)) | | |
| 3891 (*(sptr + wpls4)) | | |
| 3892 (*(sptr + wpls3)) | | |
| 3893 (*(sptr + wpls2)) | | |
| 3894 (*(sptr + wpls)) | | |
| 3895 (*sptr) | | |
| 3896 (*(sptr - wpls)) | | |
| 3897 (*(sptr - wpls2)) | | |
| 3898 (*(sptr - wpls3)) | | |
| 3899 (*(sptr - wpls4)) | | |
| 3900 (*(sptr - wpls5)) | | |
| 3901 (*(sptr - wpls6)) | | |
| 3902 (*(sptr - wpls7)) | | |
| 3903 (*(sptr - wpls8)) | | |
| 3904 (*(sptr - wpls9)) | | |
| 3905 (*(sptr - wpls10)) | | |
| 3906 (*(sptr - wpls11)) | | |
| 3907 (*(sptr - wpls12)); | |
| 3908 } | |
| 3909 } | |
| 3910 } | |
| 3911 | |
| 3912 static void | |
| 3913 ferode_1_41(l_uint32 *datad, | |
| 3914 l_int32 w, | |
| 3915 l_int32 h, | |
| 3916 l_int32 wpld, | |
| 3917 l_uint32 *datas, | |
| 3918 l_int32 wpls) | |
| 3919 { | |
| 3920 l_int32 i; | |
| 3921 l_int32 j, pwpls; | |
| 3922 l_uint32 *sptr, *dptr; | |
| 3923 l_int32 wpls2, wpls3, wpls4; | |
| 3924 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3925 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 3926 | |
| 3927 wpls2 = 2 * wpls; | |
| 3928 wpls3 = 3 * wpls; | |
| 3929 wpls4 = 4 * wpls; | |
| 3930 wpls5 = 5 * wpls; | |
| 3931 wpls6 = 6 * wpls; | |
| 3932 wpls7 = 7 * wpls; | |
| 3933 wpls8 = 8 * wpls; | |
| 3934 wpls9 = 9 * wpls; | |
| 3935 wpls10 = 10 * wpls; | |
| 3936 wpls11 = 11 * wpls; | |
| 3937 wpls12 = 12 * wpls; | |
| 3938 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 3939 | |
| 3940 for (i = 0; i < h; i++) { | |
| 3941 sptr = datas + i * wpls; | |
| 3942 dptr = datad + i * wpld; | |
| 3943 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 3944 *dptr = (*(sptr - wpls12)) & | |
| 3945 (*(sptr - wpls11)) & | |
| 3946 (*(sptr - wpls10)) & | |
| 3947 (*(sptr - wpls9)) & | |
| 3948 (*(sptr - wpls8)) & | |
| 3949 (*(sptr - wpls7)) & | |
| 3950 (*(sptr - wpls6)) & | |
| 3951 (*(sptr - wpls5)) & | |
| 3952 (*(sptr - wpls4)) & | |
| 3953 (*(sptr - wpls3)) & | |
| 3954 (*(sptr - wpls2)) & | |
| 3955 (*(sptr - wpls)) & | |
| 3956 (*sptr) & | |
| 3957 (*(sptr + wpls)) & | |
| 3958 (*(sptr + wpls2)) & | |
| 3959 (*(sptr + wpls3)) & | |
| 3960 (*(sptr + wpls4)) & | |
| 3961 (*(sptr + wpls5)) & | |
| 3962 (*(sptr + wpls6)) & | |
| 3963 (*(sptr + wpls7)) & | |
| 3964 (*(sptr + wpls8)) & | |
| 3965 (*(sptr + wpls9)) & | |
| 3966 (*(sptr + wpls10)) & | |
| 3967 (*(sptr + wpls11)) & | |
| 3968 (*(sptr + wpls12)); | |
| 3969 } | |
| 3970 } | |
| 3971 } | |
| 3972 | |
| 3973 static void | |
| 3974 fdilate_1_42(l_uint32 *datad, | |
| 3975 l_int32 w, | |
| 3976 l_int32 h, | |
| 3977 l_int32 wpld, | |
| 3978 l_uint32 *datas, | |
| 3979 l_int32 wpls) | |
| 3980 { | |
| 3981 l_int32 i; | |
| 3982 l_int32 j, pwpls; | |
| 3983 l_uint32 *sptr, *dptr; | |
| 3984 l_int32 wpls2, wpls3, wpls4; | |
| 3985 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 3986 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 3987 l_int32 wpls13, wpls14, wpls15; | |
| 3988 | |
| 3989 wpls2 = 2 * wpls; | |
| 3990 wpls3 = 3 * wpls; | |
| 3991 wpls4 = 4 * wpls; | |
| 3992 wpls5 = 5 * wpls; | |
| 3993 wpls6 = 6 * wpls; | |
| 3994 wpls7 = 7 * wpls; | |
| 3995 wpls8 = 8 * wpls; | |
| 3996 wpls9 = 9 * wpls; | |
| 3997 wpls10 = 10 * wpls; | |
| 3998 wpls11 = 11 * wpls; | |
| 3999 wpls12 = 12 * wpls; | |
| 4000 wpls13 = 13 * wpls; | |
| 4001 wpls14 = 14 * wpls; | |
| 4002 wpls15 = 15 * wpls; | |
| 4003 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4004 | |
| 4005 for (i = 0; i < h; i++) { | |
| 4006 sptr = datas + i * wpls; | |
| 4007 dptr = datad + i * wpld; | |
| 4008 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4009 *dptr = (*(sptr + wpls15)) | | |
| 4010 (*(sptr + wpls14)) | | |
| 4011 (*(sptr + wpls13)) | | |
| 4012 (*(sptr + wpls12)) | | |
| 4013 (*(sptr + wpls11)) | | |
| 4014 (*(sptr + wpls10)) | | |
| 4015 (*(sptr + wpls9)) | | |
| 4016 (*(sptr + wpls8)) | | |
| 4017 (*(sptr + wpls7)) | | |
| 4018 (*(sptr + wpls6)) | | |
| 4019 (*(sptr + wpls5)) | | |
| 4020 (*(sptr + wpls4)) | | |
| 4021 (*(sptr + wpls3)) | | |
| 4022 (*(sptr + wpls2)) | | |
| 4023 (*(sptr + wpls)) | | |
| 4024 (*sptr) | | |
| 4025 (*(sptr - wpls)) | | |
| 4026 (*(sptr - wpls2)) | | |
| 4027 (*(sptr - wpls3)) | | |
| 4028 (*(sptr - wpls4)) | | |
| 4029 (*(sptr - wpls5)) | | |
| 4030 (*(sptr - wpls6)) | | |
| 4031 (*(sptr - wpls7)) | | |
| 4032 (*(sptr - wpls8)) | | |
| 4033 (*(sptr - wpls9)) | | |
| 4034 (*(sptr - wpls10)) | | |
| 4035 (*(sptr - wpls11)) | | |
| 4036 (*(sptr - wpls12)) | | |
| 4037 (*(sptr - wpls13)) | | |
| 4038 (*(sptr - wpls14)); | |
| 4039 } | |
| 4040 } | |
| 4041 } | |
| 4042 | |
| 4043 static void | |
| 4044 ferode_1_42(l_uint32 *datad, | |
| 4045 l_int32 w, | |
| 4046 l_int32 h, | |
| 4047 l_int32 wpld, | |
| 4048 l_uint32 *datas, | |
| 4049 l_int32 wpls) | |
| 4050 { | |
| 4051 l_int32 i; | |
| 4052 l_int32 j, pwpls; | |
| 4053 l_uint32 *sptr, *dptr; | |
| 4054 l_int32 wpls2, wpls3, wpls4; | |
| 4055 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4056 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4057 l_int32 wpls13, wpls14, wpls15; | |
| 4058 | |
| 4059 wpls2 = 2 * wpls; | |
| 4060 wpls3 = 3 * wpls; | |
| 4061 wpls4 = 4 * wpls; | |
| 4062 wpls5 = 5 * wpls; | |
| 4063 wpls6 = 6 * wpls; | |
| 4064 wpls7 = 7 * wpls; | |
| 4065 wpls8 = 8 * wpls; | |
| 4066 wpls9 = 9 * wpls; | |
| 4067 wpls10 = 10 * wpls; | |
| 4068 wpls11 = 11 * wpls; | |
| 4069 wpls12 = 12 * wpls; | |
| 4070 wpls13 = 13 * wpls; | |
| 4071 wpls14 = 14 * wpls; | |
| 4072 wpls15 = 15 * wpls; | |
| 4073 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4074 | |
| 4075 for (i = 0; i < h; i++) { | |
| 4076 sptr = datas + i * wpls; | |
| 4077 dptr = datad + i * wpld; | |
| 4078 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4079 *dptr = (*(sptr - wpls15)) & | |
| 4080 (*(sptr - wpls14)) & | |
| 4081 (*(sptr - wpls13)) & | |
| 4082 (*(sptr - wpls12)) & | |
| 4083 (*(sptr - wpls11)) & | |
| 4084 (*(sptr - wpls10)) & | |
| 4085 (*(sptr - wpls9)) & | |
| 4086 (*(sptr - wpls8)) & | |
| 4087 (*(sptr - wpls7)) & | |
| 4088 (*(sptr - wpls6)) & | |
| 4089 (*(sptr - wpls5)) & | |
| 4090 (*(sptr - wpls4)) & | |
| 4091 (*(sptr - wpls3)) & | |
| 4092 (*(sptr - wpls2)) & | |
| 4093 (*(sptr - wpls)) & | |
| 4094 (*sptr) & | |
| 4095 (*(sptr + wpls)) & | |
| 4096 (*(sptr + wpls2)) & | |
| 4097 (*(sptr + wpls3)) & | |
| 4098 (*(sptr + wpls4)) & | |
| 4099 (*(sptr + wpls5)) & | |
| 4100 (*(sptr + wpls6)) & | |
| 4101 (*(sptr + wpls7)) & | |
| 4102 (*(sptr + wpls8)) & | |
| 4103 (*(sptr + wpls9)) & | |
| 4104 (*(sptr + wpls10)) & | |
| 4105 (*(sptr + wpls11)) & | |
| 4106 (*(sptr + wpls12)) & | |
| 4107 (*(sptr + wpls13)) & | |
| 4108 (*(sptr + wpls14)); | |
| 4109 } | |
| 4110 } | |
| 4111 } | |
| 4112 | |
| 4113 static void | |
| 4114 fdilate_1_43(l_uint32 *datad, | |
| 4115 l_int32 w, | |
| 4116 l_int32 h, | |
| 4117 l_int32 wpld, | |
| 4118 l_uint32 *datas, | |
| 4119 l_int32 wpls) | |
| 4120 { | |
| 4121 l_int32 i; | |
| 4122 l_int32 j, pwpls; | |
| 4123 l_uint32 *sptr, *dptr; | |
| 4124 l_int32 wpls2, wpls3, wpls4; | |
| 4125 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4126 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4127 l_int32 wpls13, wpls14, wpls15; | |
| 4128 | |
| 4129 wpls2 = 2 * wpls; | |
| 4130 wpls3 = 3 * wpls; | |
| 4131 wpls4 = 4 * wpls; | |
| 4132 wpls5 = 5 * wpls; | |
| 4133 wpls6 = 6 * wpls; | |
| 4134 wpls7 = 7 * wpls; | |
| 4135 wpls8 = 8 * wpls; | |
| 4136 wpls9 = 9 * wpls; | |
| 4137 wpls10 = 10 * wpls; | |
| 4138 wpls11 = 11 * wpls; | |
| 4139 wpls12 = 12 * wpls; | |
| 4140 wpls13 = 13 * wpls; | |
| 4141 wpls14 = 14 * wpls; | |
| 4142 wpls15 = 15 * wpls; | |
| 4143 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4144 | |
| 4145 for (i = 0; i < h; i++) { | |
| 4146 sptr = datas + i * wpls; | |
| 4147 dptr = datad + i * wpld; | |
| 4148 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4149 *dptr = (*(sptr + wpls15)) | | |
| 4150 (*(sptr + wpls14)) | | |
| 4151 (*(sptr + wpls13)) | | |
| 4152 (*(sptr + wpls12)) | | |
| 4153 (*(sptr + wpls11)) | | |
| 4154 (*(sptr + wpls10)) | | |
| 4155 (*(sptr + wpls9)) | | |
| 4156 (*(sptr + wpls8)) | | |
| 4157 (*(sptr + wpls7)) | | |
| 4158 (*(sptr + wpls6)) | | |
| 4159 (*(sptr + wpls5)) | | |
| 4160 (*(sptr + wpls4)) | | |
| 4161 (*(sptr + wpls3)) | | |
| 4162 (*(sptr + wpls2)) | | |
| 4163 (*(sptr + wpls)) | | |
| 4164 (*sptr) | | |
| 4165 (*(sptr - wpls)) | | |
| 4166 (*(sptr - wpls2)) | | |
| 4167 (*(sptr - wpls3)) | | |
| 4168 (*(sptr - wpls4)) | | |
| 4169 (*(sptr - wpls5)) | | |
| 4170 (*(sptr - wpls6)) | | |
| 4171 (*(sptr - wpls7)) | | |
| 4172 (*(sptr - wpls8)) | | |
| 4173 (*(sptr - wpls9)) | | |
| 4174 (*(sptr - wpls10)) | | |
| 4175 (*(sptr - wpls11)) | | |
| 4176 (*(sptr - wpls12)) | | |
| 4177 (*(sptr - wpls13)) | | |
| 4178 (*(sptr - wpls14)) | | |
| 4179 (*(sptr - wpls15)); | |
| 4180 } | |
| 4181 } | |
| 4182 } | |
| 4183 | |
| 4184 static void | |
| 4185 ferode_1_43(l_uint32 *datad, | |
| 4186 l_int32 w, | |
| 4187 l_int32 h, | |
| 4188 l_int32 wpld, | |
| 4189 l_uint32 *datas, | |
| 4190 l_int32 wpls) | |
| 4191 { | |
| 4192 l_int32 i; | |
| 4193 l_int32 j, pwpls; | |
| 4194 l_uint32 *sptr, *dptr; | |
| 4195 l_int32 wpls2, wpls3, wpls4; | |
| 4196 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4197 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4198 l_int32 wpls13, wpls14, wpls15; | |
| 4199 | |
| 4200 wpls2 = 2 * wpls; | |
| 4201 wpls3 = 3 * wpls; | |
| 4202 wpls4 = 4 * wpls; | |
| 4203 wpls5 = 5 * wpls; | |
| 4204 wpls6 = 6 * wpls; | |
| 4205 wpls7 = 7 * wpls; | |
| 4206 wpls8 = 8 * wpls; | |
| 4207 wpls9 = 9 * wpls; | |
| 4208 wpls10 = 10 * wpls; | |
| 4209 wpls11 = 11 * wpls; | |
| 4210 wpls12 = 12 * wpls; | |
| 4211 wpls13 = 13 * wpls; | |
| 4212 wpls14 = 14 * wpls; | |
| 4213 wpls15 = 15 * wpls; | |
| 4214 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4215 | |
| 4216 for (i = 0; i < h; i++) { | |
| 4217 sptr = datas + i * wpls; | |
| 4218 dptr = datad + i * wpld; | |
| 4219 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4220 *dptr = (*(sptr - wpls15)) & | |
| 4221 (*(sptr - wpls14)) & | |
| 4222 (*(sptr - wpls13)) & | |
| 4223 (*(sptr - wpls12)) & | |
| 4224 (*(sptr - wpls11)) & | |
| 4225 (*(sptr - wpls10)) & | |
| 4226 (*(sptr - wpls9)) & | |
| 4227 (*(sptr - wpls8)) & | |
| 4228 (*(sptr - wpls7)) & | |
| 4229 (*(sptr - wpls6)) & | |
| 4230 (*(sptr - wpls5)) & | |
| 4231 (*(sptr - wpls4)) & | |
| 4232 (*(sptr - wpls3)) & | |
| 4233 (*(sptr - wpls2)) & | |
| 4234 (*(sptr - wpls)) & | |
| 4235 (*sptr) & | |
| 4236 (*(sptr + wpls)) & | |
| 4237 (*(sptr + wpls2)) & | |
| 4238 (*(sptr + wpls3)) & | |
| 4239 (*(sptr + wpls4)) & | |
| 4240 (*(sptr + wpls5)) & | |
| 4241 (*(sptr + wpls6)) & | |
| 4242 (*(sptr + wpls7)) & | |
| 4243 (*(sptr + wpls8)) & | |
| 4244 (*(sptr + wpls9)) & | |
| 4245 (*(sptr + wpls10)) & | |
| 4246 (*(sptr + wpls11)) & | |
| 4247 (*(sptr + wpls12)) & | |
| 4248 (*(sptr + wpls13)) & | |
| 4249 (*(sptr + wpls14)) & | |
| 4250 (*(sptr + wpls15)); | |
| 4251 } | |
| 4252 } | |
| 4253 } | |
| 4254 | |
| 4255 static void | |
| 4256 fdilate_1_44(l_uint32 *datad, | |
| 4257 l_int32 w, | |
| 4258 l_int32 h, | |
| 4259 l_int32 wpld, | |
| 4260 l_uint32 *datas, | |
| 4261 l_int32 wpls) | |
| 4262 { | |
| 4263 l_int32 i; | |
| 4264 l_int32 j, pwpls; | |
| 4265 l_uint32 *sptr, *dptr; | |
| 4266 l_int32 wpls2, wpls3, wpls4; | |
| 4267 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4268 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4269 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4270 l_int32 wpls17; | |
| 4271 | |
| 4272 wpls2 = 2 * wpls; | |
| 4273 wpls3 = 3 * wpls; | |
| 4274 wpls4 = 4 * wpls; | |
| 4275 wpls5 = 5 * wpls; | |
| 4276 wpls6 = 6 * wpls; | |
| 4277 wpls7 = 7 * wpls; | |
| 4278 wpls8 = 8 * wpls; | |
| 4279 wpls9 = 9 * wpls; | |
| 4280 wpls10 = 10 * wpls; | |
| 4281 wpls11 = 11 * wpls; | |
| 4282 wpls12 = 12 * wpls; | |
| 4283 wpls13 = 13 * wpls; | |
| 4284 wpls14 = 14 * wpls; | |
| 4285 wpls15 = 15 * wpls; | |
| 4286 wpls16 = 16 * wpls; | |
| 4287 wpls17 = 17 * wpls; | |
| 4288 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4289 | |
| 4290 for (i = 0; i < h; i++) { | |
| 4291 sptr = datas + i * wpls; | |
| 4292 dptr = datad + i * wpld; | |
| 4293 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4294 *dptr = (*(sptr + wpls17)) | | |
| 4295 (*(sptr + wpls16)) | | |
| 4296 (*(sptr + wpls15)) | | |
| 4297 (*(sptr + wpls14)) | | |
| 4298 (*(sptr + wpls13)) | | |
| 4299 (*(sptr + wpls12)) | | |
| 4300 (*(sptr + wpls11)) | | |
| 4301 (*(sptr + wpls10)) | | |
| 4302 (*(sptr + wpls9)) | | |
| 4303 (*(sptr + wpls8)) | | |
| 4304 (*(sptr + wpls7)) | | |
| 4305 (*(sptr + wpls6)) | | |
| 4306 (*(sptr + wpls5)) | | |
| 4307 (*(sptr + wpls4)) | | |
| 4308 (*(sptr + wpls3)) | | |
| 4309 (*(sptr + wpls2)) | | |
| 4310 (*(sptr + wpls)) | | |
| 4311 (*sptr) | | |
| 4312 (*(sptr - wpls)) | | |
| 4313 (*(sptr - wpls2)) | | |
| 4314 (*(sptr - wpls3)) | | |
| 4315 (*(sptr - wpls4)) | | |
| 4316 (*(sptr - wpls5)) | | |
| 4317 (*(sptr - wpls6)) | | |
| 4318 (*(sptr - wpls7)) | | |
| 4319 (*(sptr - wpls8)) | | |
| 4320 (*(sptr - wpls9)) | | |
| 4321 (*(sptr - wpls10)) | | |
| 4322 (*(sptr - wpls11)) | | |
| 4323 (*(sptr - wpls12)) | | |
| 4324 (*(sptr - wpls13)) | | |
| 4325 (*(sptr - wpls14)) | | |
| 4326 (*(sptr - wpls15)) | | |
| 4327 (*(sptr - wpls16)) | | |
| 4328 (*(sptr - wpls17)); | |
| 4329 } | |
| 4330 } | |
| 4331 } | |
| 4332 | |
| 4333 static void | |
| 4334 ferode_1_44(l_uint32 *datad, | |
| 4335 l_int32 w, | |
| 4336 l_int32 h, | |
| 4337 l_int32 wpld, | |
| 4338 l_uint32 *datas, | |
| 4339 l_int32 wpls) | |
| 4340 { | |
| 4341 l_int32 i; | |
| 4342 l_int32 j, pwpls; | |
| 4343 l_uint32 *sptr, *dptr; | |
| 4344 l_int32 wpls2, wpls3, wpls4; | |
| 4345 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4346 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4347 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4348 l_int32 wpls17; | |
| 4349 | |
| 4350 wpls2 = 2 * wpls; | |
| 4351 wpls3 = 3 * wpls; | |
| 4352 wpls4 = 4 * wpls; | |
| 4353 wpls5 = 5 * wpls; | |
| 4354 wpls6 = 6 * wpls; | |
| 4355 wpls7 = 7 * wpls; | |
| 4356 wpls8 = 8 * wpls; | |
| 4357 wpls9 = 9 * wpls; | |
| 4358 wpls10 = 10 * wpls; | |
| 4359 wpls11 = 11 * wpls; | |
| 4360 wpls12 = 12 * wpls; | |
| 4361 wpls13 = 13 * wpls; | |
| 4362 wpls14 = 14 * wpls; | |
| 4363 wpls15 = 15 * wpls; | |
| 4364 wpls16 = 16 * wpls; | |
| 4365 wpls17 = 17 * wpls; | |
| 4366 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4367 | |
| 4368 for (i = 0; i < h; i++) { | |
| 4369 sptr = datas + i * wpls; | |
| 4370 dptr = datad + i * wpld; | |
| 4371 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4372 *dptr = (*(sptr - wpls17)) & | |
| 4373 (*(sptr - wpls16)) & | |
| 4374 (*(sptr - wpls15)) & | |
| 4375 (*(sptr - wpls14)) & | |
| 4376 (*(sptr - wpls13)) & | |
| 4377 (*(sptr - wpls12)) & | |
| 4378 (*(sptr - wpls11)) & | |
| 4379 (*(sptr - wpls10)) & | |
| 4380 (*(sptr - wpls9)) & | |
| 4381 (*(sptr - wpls8)) & | |
| 4382 (*(sptr - wpls7)) & | |
| 4383 (*(sptr - wpls6)) & | |
| 4384 (*(sptr - wpls5)) & | |
| 4385 (*(sptr - wpls4)) & | |
| 4386 (*(sptr - wpls3)) & | |
| 4387 (*(sptr - wpls2)) & | |
| 4388 (*(sptr - wpls)) & | |
| 4389 (*sptr) & | |
| 4390 (*(sptr + wpls)) & | |
| 4391 (*(sptr + wpls2)) & | |
| 4392 (*(sptr + wpls3)) & | |
| 4393 (*(sptr + wpls4)) & | |
| 4394 (*(sptr + wpls5)) & | |
| 4395 (*(sptr + wpls6)) & | |
| 4396 (*(sptr + wpls7)) & | |
| 4397 (*(sptr + wpls8)) & | |
| 4398 (*(sptr + wpls9)) & | |
| 4399 (*(sptr + wpls10)) & | |
| 4400 (*(sptr + wpls11)) & | |
| 4401 (*(sptr + wpls12)) & | |
| 4402 (*(sptr + wpls13)) & | |
| 4403 (*(sptr + wpls14)) & | |
| 4404 (*(sptr + wpls15)) & | |
| 4405 (*(sptr + wpls16)) & | |
| 4406 (*(sptr + wpls17)); | |
| 4407 } | |
| 4408 } | |
| 4409 } | |
| 4410 | |
| 4411 static void | |
| 4412 fdilate_1_45(l_uint32 *datad, | |
| 4413 l_int32 w, | |
| 4414 l_int32 h, | |
| 4415 l_int32 wpld, | |
| 4416 l_uint32 *datas, | |
| 4417 l_int32 wpls) | |
| 4418 { | |
| 4419 l_int32 i; | |
| 4420 l_int32 j, pwpls; | |
| 4421 l_uint32 *sptr, *dptr; | |
| 4422 l_int32 wpls2, wpls3, wpls4; | |
| 4423 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4424 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4425 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4426 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4427 | |
| 4428 wpls2 = 2 * wpls; | |
| 4429 wpls3 = 3 * wpls; | |
| 4430 wpls4 = 4 * wpls; | |
| 4431 wpls5 = 5 * wpls; | |
| 4432 wpls6 = 6 * wpls; | |
| 4433 wpls7 = 7 * wpls; | |
| 4434 wpls8 = 8 * wpls; | |
| 4435 wpls9 = 9 * wpls; | |
| 4436 wpls10 = 10 * wpls; | |
| 4437 wpls11 = 11 * wpls; | |
| 4438 wpls12 = 12 * wpls; | |
| 4439 wpls13 = 13 * wpls; | |
| 4440 wpls14 = 14 * wpls; | |
| 4441 wpls15 = 15 * wpls; | |
| 4442 wpls16 = 16 * wpls; | |
| 4443 wpls17 = 17 * wpls; | |
| 4444 wpls18 = 18 * wpls; | |
| 4445 wpls19 = 19 * wpls; | |
| 4446 wpls20 = 20 * wpls; | |
| 4447 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4448 | |
| 4449 for (i = 0; i < h; i++) { | |
| 4450 sptr = datas + i * wpls; | |
| 4451 dptr = datad + i * wpld; | |
| 4452 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4453 *dptr = (*(sptr + wpls20)) | | |
| 4454 (*(sptr + wpls19)) | | |
| 4455 (*(sptr + wpls18)) | | |
| 4456 (*(sptr + wpls17)) | | |
| 4457 (*(sptr + wpls16)) | | |
| 4458 (*(sptr + wpls15)) | | |
| 4459 (*(sptr + wpls14)) | | |
| 4460 (*(sptr + wpls13)) | | |
| 4461 (*(sptr + wpls12)) | | |
| 4462 (*(sptr + wpls11)) | | |
| 4463 (*(sptr + wpls10)) | | |
| 4464 (*(sptr + wpls9)) | | |
| 4465 (*(sptr + wpls8)) | | |
| 4466 (*(sptr + wpls7)) | | |
| 4467 (*(sptr + wpls6)) | | |
| 4468 (*(sptr + wpls5)) | | |
| 4469 (*(sptr + wpls4)) | | |
| 4470 (*(sptr + wpls3)) | | |
| 4471 (*(sptr + wpls2)) | | |
| 4472 (*(sptr + wpls)) | | |
| 4473 (*sptr) | | |
| 4474 (*(sptr - wpls)) | | |
| 4475 (*(sptr - wpls2)) | | |
| 4476 (*(sptr - wpls3)) | | |
| 4477 (*(sptr - wpls4)) | | |
| 4478 (*(sptr - wpls5)) | | |
| 4479 (*(sptr - wpls6)) | | |
| 4480 (*(sptr - wpls7)) | | |
| 4481 (*(sptr - wpls8)) | | |
| 4482 (*(sptr - wpls9)) | | |
| 4483 (*(sptr - wpls10)) | | |
| 4484 (*(sptr - wpls11)) | | |
| 4485 (*(sptr - wpls12)) | | |
| 4486 (*(sptr - wpls13)) | | |
| 4487 (*(sptr - wpls14)) | | |
| 4488 (*(sptr - wpls15)) | | |
| 4489 (*(sptr - wpls16)) | | |
| 4490 (*(sptr - wpls17)) | | |
| 4491 (*(sptr - wpls18)) | | |
| 4492 (*(sptr - wpls19)); | |
| 4493 } | |
| 4494 } | |
| 4495 } | |
| 4496 | |
| 4497 static void | |
| 4498 ferode_1_45(l_uint32 *datad, | |
| 4499 l_int32 w, | |
| 4500 l_int32 h, | |
| 4501 l_int32 wpld, | |
| 4502 l_uint32 *datas, | |
| 4503 l_int32 wpls) | |
| 4504 { | |
| 4505 l_int32 i; | |
| 4506 l_int32 j, pwpls; | |
| 4507 l_uint32 *sptr, *dptr; | |
| 4508 l_int32 wpls2, wpls3, wpls4; | |
| 4509 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4510 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4511 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4512 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4513 | |
| 4514 wpls2 = 2 * wpls; | |
| 4515 wpls3 = 3 * wpls; | |
| 4516 wpls4 = 4 * wpls; | |
| 4517 wpls5 = 5 * wpls; | |
| 4518 wpls6 = 6 * wpls; | |
| 4519 wpls7 = 7 * wpls; | |
| 4520 wpls8 = 8 * wpls; | |
| 4521 wpls9 = 9 * wpls; | |
| 4522 wpls10 = 10 * wpls; | |
| 4523 wpls11 = 11 * wpls; | |
| 4524 wpls12 = 12 * wpls; | |
| 4525 wpls13 = 13 * wpls; | |
| 4526 wpls14 = 14 * wpls; | |
| 4527 wpls15 = 15 * wpls; | |
| 4528 wpls16 = 16 * wpls; | |
| 4529 wpls17 = 17 * wpls; | |
| 4530 wpls18 = 18 * wpls; | |
| 4531 wpls19 = 19 * wpls; | |
| 4532 wpls20 = 20 * wpls; | |
| 4533 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4534 | |
| 4535 for (i = 0; i < h; i++) { | |
| 4536 sptr = datas + i * wpls; | |
| 4537 dptr = datad + i * wpld; | |
| 4538 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4539 *dptr = (*(sptr - wpls20)) & | |
| 4540 (*(sptr - wpls19)) & | |
| 4541 (*(sptr - wpls18)) & | |
| 4542 (*(sptr - wpls17)) & | |
| 4543 (*(sptr - wpls16)) & | |
| 4544 (*(sptr - wpls15)) & | |
| 4545 (*(sptr - wpls14)) & | |
| 4546 (*(sptr - wpls13)) & | |
| 4547 (*(sptr - wpls12)) & | |
| 4548 (*(sptr - wpls11)) & | |
| 4549 (*(sptr - wpls10)) & | |
| 4550 (*(sptr - wpls9)) & | |
| 4551 (*(sptr - wpls8)) & | |
| 4552 (*(sptr - wpls7)) & | |
| 4553 (*(sptr - wpls6)) & | |
| 4554 (*(sptr - wpls5)) & | |
| 4555 (*(sptr - wpls4)) & | |
| 4556 (*(sptr - wpls3)) & | |
| 4557 (*(sptr - wpls2)) & | |
| 4558 (*(sptr - wpls)) & | |
| 4559 (*sptr) & | |
| 4560 (*(sptr + wpls)) & | |
| 4561 (*(sptr + wpls2)) & | |
| 4562 (*(sptr + wpls3)) & | |
| 4563 (*(sptr + wpls4)) & | |
| 4564 (*(sptr + wpls5)) & | |
| 4565 (*(sptr + wpls6)) & | |
| 4566 (*(sptr + wpls7)) & | |
| 4567 (*(sptr + wpls8)) & | |
| 4568 (*(sptr + wpls9)) & | |
| 4569 (*(sptr + wpls10)) & | |
| 4570 (*(sptr + wpls11)) & | |
| 4571 (*(sptr + wpls12)) & | |
| 4572 (*(sptr + wpls13)) & | |
| 4573 (*(sptr + wpls14)) & | |
| 4574 (*(sptr + wpls15)) & | |
| 4575 (*(sptr + wpls16)) & | |
| 4576 (*(sptr + wpls17)) & | |
| 4577 (*(sptr + wpls18)) & | |
| 4578 (*(sptr + wpls19)); | |
| 4579 } | |
| 4580 } | |
| 4581 } | |
| 4582 | |
| 4583 static void | |
| 4584 fdilate_1_46(l_uint32 *datad, | |
| 4585 l_int32 w, | |
| 4586 l_int32 h, | |
| 4587 l_int32 wpld, | |
| 4588 l_uint32 *datas, | |
| 4589 l_int32 wpls) | |
| 4590 { | |
| 4591 l_int32 i; | |
| 4592 l_int32 j, pwpls; | |
| 4593 l_uint32 *sptr, *dptr; | |
| 4594 l_int32 wpls2, wpls3, wpls4; | |
| 4595 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4596 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4597 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4598 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4599 | |
| 4600 wpls2 = 2 * wpls; | |
| 4601 wpls3 = 3 * wpls; | |
| 4602 wpls4 = 4 * wpls; | |
| 4603 wpls5 = 5 * wpls; | |
| 4604 wpls6 = 6 * wpls; | |
| 4605 wpls7 = 7 * wpls; | |
| 4606 wpls8 = 8 * wpls; | |
| 4607 wpls9 = 9 * wpls; | |
| 4608 wpls10 = 10 * wpls; | |
| 4609 wpls11 = 11 * wpls; | |
| 4610 wpls12 = 12 * wpls; | |
| 4611 wpls13 = 13 * wpls; | |
| 4612 wpls14 = 14 * wpls; | |
| 4613 wpls15 = 15 * wpls; | |
| 4614 wpls16 = 16 * wpls; | |
| 4615 wpls17 = 17 * wpls; | |
| 4616 wpls18 = 18 * wpls; | |
| 4617 wpls19 = 19 * wpls; | |
| 4618 wpls20 = 20 * wpls; | |
| 4619 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4620 | |
| 4621 for (i = 0; i < h; i++) { | |
| 4622 sptr = datas + i * wpls; | |
| 4623 dptr = datad + i * wpld; | |
| 4624 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4625 *dptr = (*(sptr + wpls20)) | | |
| 4626 (*(sptr + wpls19)) | | |
| 4627 (*(sptr + wpls18)) | | |
| 4628 (*(sptr + wpls17)) | | |
| 4629 (*(sptr + wpls16)) | | |
| 4630 (*(sptr + wpls15)) | | |
| 4631 (*(sptr + wpls14)) | | |
| 4632 (*(sptr + wpls13)) | | |
| 4633 (*(sptr + wpls12)) | | |
| 4634 (*(sptr + wpls11)) | | |
| 4635 (*(sptr + wpls10)) | | |
| 4636 (*(sptr + wpls9)) | | |
| 4637 (*(sptr + wpls8)) | | |
| 4638 (*(sptr + wpls7)) | | |
| 4639 (*(sptr + wpls6)) | | |
| 4640 (*(sptr + wpls5)) | | |
| 4641 (*(sptr + wpls4)) | | |
| 4642 (*(sptr + wpls3)) | | |
| 4643 (*(sptr + wpls2)) | | |
| 4644 (*(sptr + wpls)) | | |
| 4645 (*sptr) | | |
| 4646 (*(sptr - wpls)) | | |
| 4647 (*(sptr - wpls2)) | | |
| 4648 (*(sptr - wpls3)) | | |
| 4649 (*(sptr - wpls4)) | | |
| 4650 (*(sptr - wpls5)) | | |
| 4651 (*(sptr - wpls6)) | | |
| 4652 (*(sptr - wpls7)) | | |
| 4653 (*(sptr - wpls8)) | | |
| 4654 (*(sptr - wpls9)) | | |
| 4655 (*(sptr - wpls10)) | | |
| 4656 (*(sptr - wpls11)) | | |
| 4657 (*(sptr - wpls12)) | | |
| 4658 (*(sptr - wpls13)) | | |
| 4659 (*(sptr - wpls14)) | | |
| 4660 (*(sptr - wpls15)) | | |
| 4661 (*(sptr - wpls16)) | | |
| 4662 (*(sptr - wpls17)) | | |
| 4663 (*(sptr - wpls18)) | | |
| 4664 (*(sptr - wpls19)) | | |
| 4665 (*(sptr - wpls20)); | |
| 4666 } | |
| 4667 } | |
| 4668 } | |
| 4669 | |
| 4670 static void | |
| 4671 ferode_1_46(l_uint32 *datad, | |
| 4672 l_int32 w, | |
| 4673 l_int32 h, | |
| 4674 l_int32 wpld, | |
| 4675 l_uint32 *datas, | |
| 4676 l_int32 wpls) | |
| 4677 { | |
| 4678 l_int32 i; | |
| 4679 l_int32 j, pwpls; | |
| 4680 l_uint32 *sptr, *dptr; | |
| 4681 l_int32 wpls2, wpls3, wpls4; | |
| 4682 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4683 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4684 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4685 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4686 | |
| 4687 wpls2 = 2 * wpls; | |
| 4688 wpls3 = 3 * wpls; | |
| 4689 wpls4 = 4 * wpls; | |
| 4690 wpls5 = 5 * wpls; | |
| 4691 wpls6 = 6 * wpls; | |
| 4692 wpls7 = 7 * wpls; | |
| 4693 wpls8 = 8 * wpls; | |
| 4694 wpls9 = 9 * wpls; | |
| 4695 wpls10 = 10 * wpls; | |
| 4696 wpls11 = 11 * wpls; | |
| 4697 wpls12 = 12 * wpls; | |
| 4698 wpls13 = 13 * wpls; | |
| 4699 wpls14 = 14 * wpls; | |
| 4700 wpls15 = 15 * wpls; | |
| 4701 wpls16 = 16 * wpls; | |
| 4702 wpls17 = 17 * wpls; | |
| 4703 wpls18 = 18 * wpls; | |
| 4704 wpls19 = 19 * wpls; | |
| 4705 wpls20 = 20 * wpls; | |
| 4706 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4707 | |
| 4708 for (i = 0; i < h; i++) { | |
| 4709 sptr = datas + i * wpls; | |
| 4710 dptr = datad + i * wpld; | |
| 4711 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4712 *dptr = (*(sptr - wpls20)) & | |
| 4713 (*(sptr - wpls19)) & | |
| 4714 (*(sptr - wpls18)) & | |
| 4715 (*(sptr - wpls17)) & | |
| 4716 (*(sptr - wpls16)) & | |
| 4717 (*(sptr - wpls15)) & | |
| 4718 (*(sptr - wpls14)) & | |
| 4719 (*(sptr - wpls13)) & | |
| 4720 (*(sptr - wpls12)) & | |
| 4721 (*(sptr - wpls11)) & | |
| 4722 (*(sptr - wpls10)) & | |
| 4723 (*(sptr - wpls9)) & | |
| 4724 (*(sptr - wpls8)) & | |
| 4725 (*(sptr - wpls7)) & | |
| 4726 (*(sptr - wpls6)) & | |
| 4727 (*(sptr - wpls5)) & | |
| 4728 (*(sptr - wpls4)) & | |
| 4729 (*(sptr - wpls3)) & | |
| 4730 (*(sptr - wpls2)) & | |
| 4731 (*(sptr - wpls)) & | |
| 4732 (*sptr) & | |
| 4733 (*(sptr + wpls)) & | |
| 4734 (*(sptr + wpls2)) & | |
| 4735 (*(sptr + wpls3)) & | |
| 4736 (*(sptr + wpls4)) & | |
| 4737 (*(sptr + wpls5)) & | |
| 4738 (*(sptr + wpls6)) & | |
| 4739 (*(sptr + wpls7)) & | |
| 4740 (*(sptr + wpls8)) & | |
| 4741 (*(sptr + wpls9)) & | |
| 4742 (*(sptr + wpls10)) & | |
| 4743 (*(sptr + wpls11)) & | |
| 4744 (*(sptr + wpls12)) & | |
| 4745 (*(sptr + wpls13)) & | |
| 4746 (*(sptr + wpls14)) & | |
| 4747 (*(sptr + wpls15)) & | |
| 4748 (*(sptr + wpls16)) & | |
| 4749 (*(sptr + wpls17)) & | |
| 4750 (*(sptr + wpls18)) & | |
| 4751 (*(sptr + wpls19)) & | |
| 4752 (*(sptr + wpls20)); | |
| 4753 } | |
| 4754 } | |
| 4755 } | |
| 4756 | |
| 4757 static void | |
| 4758 fdilate_1_47(l_uint32 *datad, | |
| 4759 l_int32 w, | |
| 4760 l_int32 h, | |
| 4761 l_int32 wpld, | |
| 4762 l_uint32 *datas, | |
| 4763 l_int32 wpls) | |
| 4764 { | |
| 4765 l_int32 i; | |
| 4766 l_int32 j, pwpls; | |
| 4767 l_uint32 *sptr, *dptr; | |
| 4768 l_int32 wpls2, wpls3, wpls4; | |
| 4769 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4770 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4771 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4772 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4773 l_int32 wpls21, wpls22; | |
| 4774 | |
| 4775 wpls2 = 2 * wpls; | |
| 4776 wpls3 = 3 * wpls; | |
| 4777 wpls4 = 4 * wpls; | |
| 4778 wpls5 = 5 * wpls; | |
| 4779 wpls6 = 6 * wpls; | |
| 4780 wpls7 = 7 * wpls; | |
| 4781 wpls8 = 8 * wpls; | |
| 4782 wpls9 = 9 * wpls; | |
| 4783 wpls10 = 10 * wpls; | |
| 4784 wpls11 = 11 * wpls; | |
| 4785 wpls12 = 12 * wpls; | |
| 4786 wpls13 = 13 * wpls; | |
| 4787 wpls14 = 14 * wpls; | |
| 4788 wpls15 = 15 * wpls; | |
| 4789 wpls16 = 16 * wpls; | |
| 4790 wpls17 = 17 * wpls; | |
| 4791 wpls18 = 18 * wpls; | |
| 4792 wpls19 = 19 * wpls; | |
| 4793 wpls20 = 20 * wpls; | |
| 4794 wpls21 = 21 * wpls; | |
| 4795 wpls22 = 22 * wpls; | |
| 4796 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4797 | |
| 4798 for (i = 0; i < h; i++) { | |
| 4799 sptr = datas + i * wpls; | |
| 4800 dptr = datad + i * wpld; | |
| 4801 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4802 *dptr = (*(sptr + wpls22)) | | |
| 4803 (*(sptr + wpls21)) | | |
| 4804 (*(sptr + wpls20)) | | |
| 4805 (*(sptr + wpls19)) | | |
| 4806 (*(sptr + wpls18)) | | |
| 4807 (*(sptr + wpls17)) | | |
| 4808 (*(sptr + wpls16)) | | |
| 4809 (*(sptr + wpls15)) | | |
| 4810 (*(sptr + wpls14)) | | |
| 4811 (*(sptr + wpls13)) | | |
| 4812 (*(sptr + wpls12)) | | |
| 4813 (*(sptr + wpls11)) | | |
| 4814 (*(sptr + wpls10)) | | |
| 4815 (*(sptr + wpls9)) | | |
| 4816 (*(sptr + wpls8)) | | |
| 4817 (*(sptr + wpls7)) | | |
| 4818 (*(sptr + wpls6)) | | |
| 4819 (*(sptr + wpls5)) | | |
| 4820 (*(sptr + wpls4)) | | |
| 4821 (*(sptr + wpls3)) | | |
| 4822 (*(sptr + wpls2)) | | |
| 4823 (*(sptr + wpls)) | | |
| 4824 (*sptr) | | |
| 4825 (*(sptr - wpls)) | | |
| 4826 (*(sptr - wpls2)) | | |
| 4827 (*(sptr - wpls3)) | | |
| 4828 (*(sptr - wpls4)) | | |
| 4829 (*(sptr - wpls5)) | | |
| 4830 (*(sptr - wpls6)) | | |
| 4831 (*(sptr - wpls7)) | | |
| 4832 (*(sptr - wpls8)) | | |
| 4833 (*(sptr - wpls9)) | | |
| 4834 (*(sptr - wpls10)) | | |
| 4835 (*(sptr - wpls11)) | | |
| 4836 (*(sptr - wpls12)) | | |
| 4837 (*(sptr - wpls13)) | | |
| 4838 (*(sptr - wpls14)) | | |
| 4839 (*(sptr - wpls15)) | | |
| 4840 (*(sptr - wpls16)) | | |
| 4841 (*(sptr - wpls17)) | | |
| 4842 (*(sptr - wpls18)) | | |
| 4843 (*(sptr - wpls19)) | | |
| 4844 (*(sptr - wpls20)) | | |
| 4845 (*(sptr - wpls21)) | | |
| 4846 (*(sptr - wpls22)); | |
| 4847 } | |
| 4848 } | |
| 4849 } | |
| 4850 | |
| 4851 static void | |
| 4852 ferode_1_47(l_uint32 *datad, | |
| 4853 l_int32 w, | |
| 4854 l_int32 h, | |
| 4855 l_int32 wpld, | |
| 4856 l_uint32 *datas, | |
| 4857 l_int32 wpls) | |
| 4858 { | |
| 4859 l_int32 i; | |
| 4860 l_int32 j, pwpls; | |
| 4861 l_uint32 *sptr, *dptr; | |
| 4862 l_int32 wpls2, wpls3, wpls4; | |
| 4863 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4864 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4865 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4866 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4867 l_int32 wpls21, wpls22; | |
| 4868 | |
| 4869 wpls2 = 2 * wpls; | |
| 4870 wpls3 = 3 * wpls; | |
| 4871 wpls4 = 4 * wpls; | |
| 4872 wpls5 = 5 * wpls; | |
| 4873 wpls6 = 6 * wpls; | |
| 4874 wpls7 = 7 * wpls; | |
| 4875 wpls8 = 8 * wpls; | |
| 4876 wpls9 = 9 * wpls; | |
| 4877 wpls10 = 10 * wpls; | |
| 4878 wpls11 = 11 * wpls; | |
| 4879 wpls12 = 12 * wpls; | |
| 4880 wpls13 = 13 * wpls; | |
| 4881 wpls14 = 14 * wpls; | |
| 4882 wpls15 = 15 * wpls; | |
| 4883 wpls16 = 16 * wpls; | |
| 4884 wpls17 = 17 * wpls; | |
| 4885 wpls18 = 18 * wpls; | |
| 4886 wpls19 = 19 * wpls; | |
| 4887 wpls20 = 20 * wpls; | |
| 4888 wpls21 = 21 * wpls; | |
| 4889 wpls22 = 22 * wpls; | |
| 4890 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4891 | |
| 4892 for (i = 0; i < h; i++) { | |
| 4893 sptr = datas + i * wpls; | |
| 4894 dptr = datad + i * wpld; | |
| 4895 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4896 *dptr = (*(sptr - wpls22)) & | |
| 4897 (*(sptr - wpls21)) & | |
| 4898 (*(sptr - wpls20)) & | |
| 4899 (*(sptr - wpls19)) & | |
| 4900 (*(sptr - wpls18)) & | |
| 4901 (*(sptr - wpls17)) & | |
| 4902 (*(sptr - wpls16)) & | |
| 4903 (*(sptr - wpls15)) & | |
| 4904 (*(sptr - wpls14)) & | |
| 4905 (*(sptr - wpls13)) & | |
| 4906 (*(sptr - wpls12)) & | |
| 4907 (*(sptr - wpls11)) & | |
| 4908 (*(sptr - wpls10)) & | |
| 4909 (*(sptr - wpls9)) & | |
| 4910 (*(sptr - wpls8)) & | |
| 4911 (*(sptr - wpls7)) & | |
| 4912 (*(sptr - wpls6)) & | |
| 4913 (*(sptr - wpls5)) & | |
| 4914 (*(sptr - wpls4)) & | |
| 4915 (*(sptr - wpls3)) & | |
| 4916 (*(sptr - wpls2)) & | |
| 4917 (*(sptr - wpls)) & | |
| 4918 (*sptr) & | |
| 4919 (*(sptr + wpls)) & | |
| 4920 (*(sptr + wpls2)) & | |
| 4921 (*(sptr + wpls3)) & | |
| 4922 (*(sptr + wpls4)) & | |
| 4923 (*(sptr + wpls5)) & | |
| 4924 (*(sptr + wpls6)) & | |
| 4925 (*(sptr + wpls7)) & | |
| 4926 (*(sptr + wpls8)) & | |
| 4927 (*(sptr + wpls9)) & | |
| 4928 (*(sptr + wpls10)) & | |
| 4929 (*(sptr + wpls11)) & | |
| 4930 (*(sptr + wpls12)) & | |
| 4931 (*(sptr + wpls13)) & | |
| 4932 (*(sptr + wpls14)) & | |
| 4933 (*(sptr + wpls15)) & | |
| 4934 (*(sptr + wpls16)) & | |
| 4935 (*(sptr + wpls17)) & | |
| 4936 (*(sptr + wpls18)) & | |
| 4937 (*(sptr + wpls19)) & | |
| 4938 (*(sptr + wpls20)) & | |
| 4939 (*(sptr + wpls21)) & | |
| 4940 (*(sptr + wpls22)); | |
| 4941 } | |
| 4942 } | |
| 4943 } | |
| 4944 | |
| 4945 static void | |
| 4946 fdilate_1_48(l_uint32 *datad, | |
| 4947 l_int32 w, | |
| 4948 l_int32 h, | |
| 4949 l_int32 wpld, | |
| 4950 l_uint32 *datas, | |
| 4951 l_int32 wpls) | |
| 4952 { | |
| 4953 l_int32 i; | |
| 4954 l_int32 j, pwpls; | |
| 4955 l_uint32 *sptr, *dptr; | |
| 4956 l_int32 wpls2, wpls3, wpls4; | |
| 4957 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 4958 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 4959 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 4960 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 4961 l_int32 wpls21, wpls22, wpls23, wpls24; | |
| 4962 l_int32 wpls25; | |
| 4963 | |
| 4964 wpls2 = 2 * wpls; | |
| 4965 wpls3 = 3 * wpls; | |
| 4966 wpls4 = 4 * wpls; | |
| 4967 wpls5 = 5 * wpls; | |
| 4968 wpls6 = 6 * wpls; | |
| 4969 wpls7 = 7 * wpls; | |
| 4970 wpls8 = 8 * wpls; | |
| 4971 wpls9 = 9 * wpls; | |
| 4972 wpls10 = 10 * wpls; | |
| 4973 wpls11 = 11 * wpls; | |
| 4974 wpls12 = 12 * wpls; | |
| 4975 wpls13 = 13 * wpls; | |
| 4976 wpls14 = 14 * wpls; | |
| 4977 wpls15 = 15 * wpls; | |
| 4978 wpls16 = 16 * wpls; | |
| 4979 wpls17 = 17 * wpls; | |
| 4980 wpls18 = 18 * wpls; | |
| 4981 wpls19 = 19 * wpls; | |
| 4982 wpls20 = 20 * wpls; | |
| 4983 wpls21 = 21 * wpls; | |
| 4984 wpls22 = 22 * wpls; | |
| 4985 wpls23 = 23 * wpls; | |
| 4986 wpls24 = 24 * wpls; | |
| 4987 wpls25 = 25 * wpls; | |
| 4988 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 4989 | |
| 4990 for (i = 0; i < h; i++) { | |
| 4991 sptr = datas + i * wpls; | |
| 4992 dptr = datad + i * wpld; | |
| 4993 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 4994 *dptr = (*(sptr + wpls25)) | | |
| 4995 (*(sptr + wpls24)) | | |
| 4996 (*(sptr + wpls23)) | | |
| 4997 (*(sptr + wpls22)) | | |
| 4998 (*(sptr + wpls21)) | | |
| 4999 (*(sptr + wpls20)) | | |
| 5000 (*(sptr + wpls19)) | | |
| 5001 (*(sptr + wpls18)) | | |
| 5002 (*(sptr + wpls17)) | | |
| 5003 (*(sptr + wpls16)) | | |
| 5004 (*(sptr + wpls15)) | | |
| 5005 (*(sptr + wpls14)) | | |
| 5006 (*(sptr + wpls13)) | | |
| 5007 (*(sptr + wpls12)) | | |
| 5008 (*(sptr + wpls11)) | | |
| 5009 (*(sptr + wpls10)) | | |
| 5010 (*(sptr + wpls9)) | | |
| 5011 (*(sptr + wpls8)) | | |
| 5012 (*(sptr + wpls7)) | | |
| 5013 (*(sptr + wpls6)) | | |
| 5014 (*(sptr + wpls5)) | | |
| 5015 (*(sptr + wpls4)) | | |
| 5016 (*(sptr + wpls3)) | | |
| 5017 (*(sptr + wpls2)) | | |
| 5018 (*(sptr + wpls)) | | |
| 5019 (*sptr) | | |
| 5020 (*(sptr - wpls)) | | |
| 5021 (*(sptr - wpls2)) | | |
| 5022 (*(sptr - wpls3)) | | |
| 5023 (*(sptr - wpls4)) | | |
| 5024 (*(sptr - wpls5)) | | |
| 5025 (*(sptr - wpls6)) | | |
| 5026 (*(sptr - wpls7)) | | |
| 5027 (*(sptr - wpls8)) | | |
| 5028 (*(sptr - wpls9)) | | |
| 5029 (*(sptr - wpls10)) | | |
| 5030 (*(sptr - wpls11)) | | |
| 5031 (*(sptr - wpls12)) | | |
| 5032 (*(sptr - wpls13)) | | |
| 5033 (*(sptr - wpls14)) | | |
| 5034 (*(sptr - wpls15)) | | |
| 5035 (*(sptr - wpls16)) | | |
| 5036 (*(sptr - wpls17)) | | |
| 5037 (*(sptr - wpls18)) | | |
| 5038 (*(sptr - wpls19)) | | |
| 5039 (*(sptr - wpls20)) | | |
| 5040 (*(sptr - wpls21)) | | |
| 5041 (*(sptr - wpls22)) | | |
| 5042 (*(sptr - wpls23)) | | |
| 5043 (*(sptr - wpls24)); | |
| 5044 } | |
| 5045 } | |
| 5046 } | |
| 5047 | |
| 5048 static void | |
| 5049 ferode_1_48(l_uint32 *datad, | |
| 5050 l_int32 w, | |
| 5051 l_int32 h, | |
| 5052 l_int32 wpld, | |
| 5053 l_uint32 *datas, | |
| 5054 l_int32 wpls) | |
| 5055 { | |
| 5056 l_int32 i; | |
| 5057 l_int32 j, pwpls; | |
| 5058 l_uint32 *sptr, *dptr; | |
| 5059 l_int32 wpls2, wpls3, wpls4; | |
| 5060 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 5061 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 5062 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 5063 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 5064 l_int32 wpls21, wpls22, wpls23, wpls24; | |
| 5065 l_int32 wpls25; | |
| 5066 | |
| 5067 wpls2 = 2 * wpls; | |
| 5068 wpls3 = 3 * wpls; | |
| 5069 wpls4 = 4 * wpls; | |
| 5070 wpls5 = 5 * wpls; | |
| 5071 wpls6 = 6 * wpls; | |
| 5072 wpls7 = 7 * wpls; | |
| 5073 wpls8 = 8 * wpls; | |
| 5074 wpls9 = 9 * wpls; | |
| 5075 wpls10 = 10 * wpls; | |
| 5076 wpls11 = 11 * wpls; | |
| 5077 wpls12 = 12 * wpls; | |
| 5078 wpls13 = 13 * wpls; | |
| 5079 wpls14 = 14 * wpls; | |
| 5080 wpls15 = 15 * wpls; | |
| 5081 wpls16 = 16 * wpls; | |
| 5082 wpls17 = 17 * wpls; | |
| 5083 wpls18 = 18 * wpls; | |
| 5084 wpls19 = 19 * wpls; | |
| 5085 wpls20 = 20 * wpls; | |
| 5086 wpls21 = 21 * wpls; | |
| 5087 wpls22 = 22 * wpls; | |
| 5088 wpls23 = 23 * wpls; | |
| 5089 wpls24 = 24 * wpls; | |
| 5090 wpls25 = 25 * wpls; | |
| 5091 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5092 | |
| 5093 for (i = 0; i < h; i++) { | |
| 5094 sptr = datas + i * wpls; | |
| 5095 dptr = datad + i * wpld; | |
| 5096 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5097 *dptr = (*(sptr - wpls25)) & | |
| 5098 (*(sptr - wpls24)) & | |
| 5099 (*(sptr - wpls23)) & | |
| 5100 (*(sptr - wpls22)) & | |
| 5101 (*(sptr - wpls21)) & | |
| 5102 (*(sptr - wpls20)) & | |
| 5103 (*(sptr - wpls19)) & | |
| 5104 (*(sptr - wpls18)) & | |
| 5105 (*(sptr - wpls17)) & | |
| 5106 (*(sptr - wpls16)) & | |
| 5107 (*(sptr - wpls15)) & | |
| 5108 (*(sptr - wpls14)) & | |
| 5109 (*(sptr - wpls13)) & | |
| 5110 (*(sptr - wpls12)) & | |
| 5111 (*(sptr - wpls11)) & | |
| 5112 (*(sptr - wpls10)) & | |
| 5113 (*(sptr - wpls9)) & | |
| 5114 (*(sptr - wpls8)) & | |
| 5115 (*(sptr - wpls7)) & | |
| 5116 (*(sptr - wpls6)) & | |
| 5117 (*(sptr - wpls5)) & | |
| 5118 (*(sptr - wpls4)) & | |
| 5119 (*(sptr - wpls3)) & | |
| 5120 (*(sptr - wpls2)) & | |
| 5121 (*(sptr - wpls)) & | |
| 5122 (*sptr) & | |
| 5123 (*(sptr + wpls)) & | |
| 5124 (*(sptr + wpls2)) & | |
| 5125 (*(sptr + wpls3)) & | |
| 5126 (*(sptr + wpls4)) & | |
| 5127 (*(sptr + wpls5)) & | |
| 5128 (*(sptr + wpls6)) & | |
| 5129 (*(sptr + wpls7)) & | |
| 5130 (*(sptr + wpls8)) & | |
| 5131 (*(sptr + wpls9)) & | |
| 5132 (*(sptr + wpls10)) & | |
| 5133 (*(sptr + wpls11)) & | |
| 5134 (*(sptr + wpls12)) & | |
| 5135 (*(sptr + wpls13)) & | |
| 5136 (*(sptr + wpls14)) & | |
| 5137 (*(sptr + wpls15)) & | |
| 5138 (*(sptr + wpls16)) & | |
| 5139 (*(sptr + wpls17)) & | |
| 5140 (*(sptr + wpls18)) & | |
| 5141 (*(sptr + wpls19)) & | |
| 5142 (*(sptr + wpls20)) & | |
| 5143 (*(sptr + wpls21)) & | |
| 5144 (*(sptr + wpls22)) & | |
| 5145 (*(sptr + wpls23)) & | |
| 5146 (*(sptr + wpls24)); | |
| 5147 } | |
| 5148 } | |
| 5149 } | |
| 5150 | |
| 5151 static void | |
| 5152 fdilate_1_49(l_uint32 *datad, | |
| 5153 l_int32 w, | |
| 5154 l_int32 h, | |
| 5155 l_int32 wpld, | |
| 5156 l_uint32 *datas, | |
| 5157 l_int32 wpls) | |
| 5158 { | |
| 5159 l_int32 i; | |
| 5160 l_int32 j, pwpls; | |
| 5161 l_uint32 *sptr, *dptr; | |
| 5162 l_int32 wpls2, wpls3, wpls4; | |
| 5163 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 5164 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 5165 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 5166 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 5167 l_int32 wpls21, wpls22, wpls23, wpls24; | |
| 5168 l_int32 wpls25; | |
| 5169 | |
| 5170 wpls2 = 2 * wpls; | |
| 5171 wpls3 = 3 * wpls; | |
| 5172 wpls4 = 4 * wpls; | |
| 5173 wpls5 = 5 * wpls; | |
| 5174 wpls6 = 6 * wpls; | |
| 5175 wpls7 = 7 * wpls; | |
| 5176 wpls8 = 8 * wpls; | |
| 5177 wpls9 = 9 * wpls; | |
| 5178 wpls10 = 10 * wpls; | |
| 5179 wpls11 = 11 * wpls; | |
| 5180 wpls12 = 12 * wpls; | |
| 5181 wpls13 = 13 * wpls; | |
| 5182 wpls14 = 14 * wpls; | |
| 5183 wpls15 = 15 * wpls; | |
| 5184 wpls16 = 16 * wpls; | |
| 5185 wpls17 = 17 * wpls; | |
| 5186 wpls18 = 18 * wpls; | |
| 5187 wpls19 = 19 * wpls; | |
| 5188 wpls20 = 20 * wpls; | |
| 5189 wpls21 = 21 * wpls; | |
| 5190 wpls22 = 22 * wpls; | |
| 5191 wpls23 = 23 * wpls; | |
| 5192 wpls24 = 24 * wpls; | |
| 5193 wpls25 = 25 * wpls; | |
| 5194 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5195 | |
| 5196 for (i = 0; i < h; i++) { | |
| 5197 sptr = datas + i * wpls; | |
| 5198 dptr = datad + i * wpld; | |
| 5199 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5200 *dptr = (*(sptr + wpls25)) | | |
| 5201 (*(sptr + wpls24)) | | |
| 5202 (*(sptr + wpls23)) | | |
| 5203 (*(sptr + wpls22)) | | |
| 5204 (*(sptr + wpls21)) | | |
| 5205 (*(sptr + wpls20)) | | |
| 5206 (*(sptr + wpls19)) | | |
| 5207 (*(sptr + wpls18)) | | |
| 5208 (*(sptr + wpls17)) | | |
| 5209 (*(sptr + wpls16)) | | |
| 5210 (*(sptr + wpls15)) | | |
| 5211 (*(sptr + wpls14)) | | |
| 5212 (*(sptr + wpls13)) | | |
| 5213 (*(sptr + wpls12)) | | |
| 5214 (*(sptr + wpls11)) | | |
| 5215 (*(sptr + wpls10)) | | |
| 5216 (*(sptr + wpls9)) | | |
| 5217 (*(sptr + wpls8)) | | |
| 5218 (*(sptr + wpls7)) | | |
| 5219 (*(sptr + wpls6)) | | |
| 5220 (*(sptr + wpls5)) | | |
| 5221 (*(sptr + wpls4)) | | |
| 5222 (*(sptr + wpls3)) | | |
| 5223 (*(sptr + wpls2)) | | |
| 5224 (*(sptr + wpls)) | | |
| 5225 (*sptr) | | |
| 5226 (*(sptr - wpls)) | | |
| 5227 (*(sptr - wpls2)) | | |
| 5228 (*(sptr - wpls3)) | | |
| 5229 (*(sptr - wpls4)) | | |
| 5230 (*(sptr - wpls5)) | | |
| 5231 (*(sptr - wpls6)) | | |
| 5232 (*(sptr - wpls7)) | | |
| 5233 (*(sptr - wpls8)) | | |
| 5234 (*(sptr - wpls9)) | | |
| 5235 (*(sptr - wpls10)) | | |
| 5236 (*(sptr - wpls11)) | | |
| 5237 (*(sptr - wpls12)) | | |
| 5238 (*(sptr - wpls13)) | | |
| 5239 (*(sptr - wpls14)) | | |
| 5240 (*(sptr - wpls15)) | | |
| 5241 (*(sptr - wpls16)) | | |
| 5242 (*(sptr - wpls17)) | | |
| 5243 (*(sptr - wpls18)) | | |
| 5244 (*(sptr - wpls19)) | | |
| 5245 (*(sptr - wpls20)) | | |
| 5246 (*(sptr - wpls21)) | | |
| 5247 (*(sptr - wpls22)) | | |
| 5248 (*(sptr - wpls23)) | | |
| 5249 (*(sptr - wpls24)) | | |
| 5250 (*(sptr - wpls25)); | |
| 5251 } | |
| 5252 } | |
| 5253 } | |
| 5254 | |
| 5255 static void | |
| 5256 ferode_1_49(l_uint32 *datad, | |
| 5257 l_int32 w, | |
| 5258 l_int32 h, | |
| 5259 l_int32 wpld, | |
| 5260 l_uint32 *datas, | |
| 5261 l_int32 wpls) | |
| 5262 { | |
| 5263 l_int32 i; | |
| 5264 l_int32 j, pwpls; | |
| 5265 l_uint32 *sptr, *dptr; | |
| 5266 l_int32 wpls2, wpls3, wpls4; | |
| 5267 l_int32 wpls5, wpls6, wpls7, wpls8; | |
| 5268 l_int32 wpls9, wpls10, wpls11, wpls12; | |
| 5269 l_int32 wpls13, wpls14, wpls15, wpls16; | |
| 5270 l_int32 wpls17, wpls18, wpls19, wpls20; | |
| 5271 l_int32 wpls21, wpls22, wpls23, wpls24; | |
| 5272 l_int32 wpls25; | |
| 5273 | |
| 5274 wpls2 = 2 * wpls; | |
| 5275 wpls3 = 3 * wpls; | |
| 5276 wpls4 = 4 * wpls; | |
| 5277 wpls5 = 5 * wpls; | |
| 5278 wpls6 = 6 * wpls; | |
| 5279 wpls7 = 7 * wpls; | |
| 5280 wpls8 = 8 * wpls; | |
| 5281 wpls9 = 9 * wpls; | |
| 5282 wpls10 = 10 * wpls; | |
| 5283 wpls11 = 11 * wpls; | |
| 5284 wpls12 = 12 * wpls; | |
| 5285 wpls13 = 13 * wpls; | |
| 5286 wpls14 = 14 * wpls; | |
| 5287 wpls15 = 15 * wpls; | |
| 5288 wpls16 = 16 * wpls; | |
| 5289 wpls17 = 17 * wpls; | |
| 5290 wpls18 = 18 * wpls; | |
| 5291 wpls19 = 19 * wpls; | |
| 5292 wpls20 = 20 * wpls; | |
| 5293 wpls21 = 21 * wpls; | |
| 5294 wpls22 = 22 * wpls; | |
| 5295 wpls23 = 23 * wpls; | |
| 5296 wpls24 = 24 * wpls; | |
| 5297 wpls25 = 25 * wpls; | |
| 5298 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5299 | |
| 5300 for (i = 0; i < h; i++) { | |
| 5301 sptr = datas + i * wpls; | |
| 5302 dptr = datad + i * wpld; | |
| 5303 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5304 *dptr = (*(sptr - wpls25)) & | |
| 5305 (*(sptr - wpls24)) & | |
| 5306 (*(sptr - wpls23)) & | |
| 5307 (*(sptr - wpls22)) & | |
| 5308 (*(sptr - wpls21)) & | |
| 5309 (*(sptr - wpls20)) & | |
| 5310 (*(sptr - wpls19)) & | |
| 5311 (*(sptr - wpls18)) & | |
| 5312 (*(sptr - wpls17)) & | |
| 5313 (*(sptr - wpls16)) & | |
| 5314 (*(sptr - wpls15)) & | |
| 5315 (*(sptr - wpls14)) & | |
| 5316 (*(sptr - wpls13)) & | |
| 5317 (*(sptr - wpls12)) & | |
| 5318 (*(sptr - wpls11)) & | |
| 5319 (*(sptr - wpls10)) & | |
| 5320 (*(sptr - wpls9)) & | |
| 5321 (*(sptr - wpls8)) & | |
| 5322 (*(sptr - wpls7)) & | |
| 5323 (*(sptr - wpls6)) & | |
| 5324 (*(sptr - wpls5)) & | |
| 5325 (*(sptr - wpls4)) & | |
| 5326 (*(sptr - wpls3)) & | |
| 5327 (*(sptr - wpls2)) & | |
| 5328 (*(sptr - wpls)) & | |
| 5329 (*sptr) & | |
| 5330 (*(sptr + wpls)) & | |
| 5331 (*(sptr + wpls2)) & | |
| 5332 (*(sptr + wpls3)) & | |
| 5333 (*(sptr + wpls4)) & | |
| 5334 (*(sptr + wpls5)) & | |
| 5335 (*(sptr + wpls6)) & | |
| 5336 (*(sptr + wpls7)) & | |
| 5337 (*(sptr + wpls8)) & | |
| 5338 (*(sptr + wpls9)) & | |
| 5339 (*(sptr + wpls10)) & | |
| 5340 (*(sptr + wpls11)) & | |
| 5341 (*(sptr + wpls12)) & | |
| 5342 (*(sptr + wpls13)) & | |
| 5343 (*(sptr + wpls14)) & | |
| 5344 (*(sptr + wpls15)) & | |
| 5345 (*(sptr + wpls16)) & | |
| 5346 (*(sptr + wpls17)) & | |
| 5347 (*(sptr + wpls18)) & | |
| 5348 (*(sptr + wpls19)) & | |
| 5349 (*(sptr + wpls20)) & | |
| 5350 (*(sptr + wpls21)) & | |
| 5351 (*(sptr + wpls22)) & | |
| 5352 (*(sptr + wpls23)) & | |
| 5353 (*(sptr + wpls24)) & | |
| 5354 (*(sptr + wpls25)); | |
| 5355 } | |
| 5356 } | |
| 5357 } | |
| 5358 | |
| 5359 static void | |
| 5360 fdilate_1_50(l_uint32 *datad, | |
| 5361 l_int32 w, | |
| 5362 l_int32 h, | |
| 5363 l_int32 wpld, | |
| 5364 l_uint32 *datas, | |
| 5365 l_int32 wpls) | |
| 5366 { | |
| 5367 l_int32 i; | |
| 5368 l_int32 j, pwpls; | |
| 5369 l_uint32 *sptr, *dptr; | |
| 5370 | |
| 5371 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5372 | |
| 5373 for (i = 0; i < h; i++) { | |
| 5374 sptr = datas + i * wpls; | |
| 5375 dptr = datad + i * wpld; | |
| 5376 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5377 *dptr = ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | | |
| 5378 (*(sptr + wpls)) | | |
| 5379 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 5380 (*sptr); | |
| 5381 } | |
| 5382 } | |
| 5383 } | |
| 5384 | |
| 5385 static void | |
| 5386 ferode_1_50(l_uint32 *datad, | |
| 5387 l_int32 w, | |
| 5388 l_int32 h, | |
| 5389 l_int32 wpld, | |
| 5390 l_uint32 *datas, | |
| 5391 l_int32 wpls) | |
| 5392 { | |
| 5393 l_int32 i; | |
| 5394 l_int32 j, pwpls; | |
| 5395 l_uint32 *sptr, *dptr; | |
| 5396 | |
| 5397 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5398 | |
| 5399 for (i = 0; i < h; i++) { | |
| 5400 sptr = datas + i * wpls; | |
| 5401 dptr = datad + i * wpld; | |
| 5402 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5403 *dptr = ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & | |
| 5404 (*(sptr - wpls)) & | |
| 5405 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 5406 (*sptr); | |
| 5407 } | |
| 5408 } | |
| 5409 } | |
| 5410 | |
| 5411 static void | |
| 5412 fdilate_1_51(l_uint32 *datad, | |
| 5413 l_int32 w, | |
| 5414 l_int32 h, | |
| 5415 l_int32 wpld, | |
| 5416 l_uint32 *datas, | |
| 5417 l_int32 wpls) | |
| 5418 { | |
| 5419 l_int32 i; | |
| 5420 l_int32 j, pwpls; | |
| 5421 l_uint32 *sptr, *dptr; | |
| 5422 | |
| 5423 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5424 | |
| 5425 for (i = 0; i < h; i++) { | |
| 5426 sptr = datas + i * wpls; | |
| 5427 dptr = datad + i * wpld; | |
| 5428 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5429 *dptr = ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | | |
| 5430 (*(sptr + wpls)) | | |
| 5431 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | | |
| 5432 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 5433 (*sptr) | | |
| 5434 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 5435 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | | |
| 5436 (*(sptr - wpls)) | | |
| 5437 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); | |
| 5438 } | |
| 5439 } | |
| 5440 } | |
| 5441 | |
| 5442 static void | |
| 5443 ferode_1_51(l_uint32 *datad, | |
| 5444 l_int32 w, | |
| 5445 l_int32 h, | |
| 5446 l_int32 wpld, | |
| 5447 l_uint32 *datas, | |
| 5448 l_int32 wpls) | |
| 5449 { | |
| 5450 l_int32 i; | |
| 5451 l_int32 j, pwpls; | |
| 5452 l_uint32 *sptr, *dptr; | |
| 5453 | |
| 5454 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5455 | |
| 5456 for (i = 0; i < h; i++) { | |
| 5457 sptr = datas + i * wpls; | |
| 5458 dptr = datad + i * wpld; | |
| 5459 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5460 *dptr = ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & | |
| 5461 (*(sptr - wpls)) & | |
| 5462 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & | |
| 5463 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 5464 (*sptr) & | |
| 5465 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 5466 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & | |
| 5467 (*(sptr + wpls)) & | |
| 5468 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); | |
| 5469 } | |
| 5470 } | |
| 5471 } | |
| 5472 | |
| 5473 static void | |
| 5474 fdilate_1_52(l_uint32 *datad, | |
| 5475 l_int32 w, | |
| 5476 l_int32 h, | |
| 5477 l_int32 wpld, | |
| 5478 l_uint32 *datas, | |
| 5479 l_int32 wpls) | |
| 5480 { | |
| 5481 l_int32 i; | |
| 5482 l_int32 j, pwpls; | |
| 5483 l_uint32 *sptr, *dptr; | |
| 5484 l_int32 wpls2; | |
| 5485 | |
| 5486 wpls2 = 2 * wpls; | |
| 5487 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5488 | |
| 5489 for (i = 0; i < h; i++) { | |
| 5490 sptr = datas + i * wpls; | |
| 5491 dptr = datad + i * wpld; | |
| 5492 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5493 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | | |
| 5494 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) | | |
| 5495 (*(sptr + wpls2)) | | |
| 5496 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) | | |
| 5497 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) | | |
| 5498 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | | |
| 5499 (*(sptr + wpls)) | | |
| 5500 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | | |
| 5501 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 5502 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 5503 (*sptr) | | |
| 5504 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 5505 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) | | |
| 5506 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | | |
| 5507 (*(sptr - wpls)) | | |
| 5508 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); | |
| 5509 } | |
| 5510 } | |
| 5511 } | |
| 5512 | |
| 5513 static void | |
| 5514 ferode_1_52(l_uint32 *datad, | |
| 5515 l_int32 w, | |
| 5516 l_int32 h, | |
| 5517 l_int32 wpld, | |
| 5518 l_uint32 *datas, | |
| 5519 l_int32 wpls) | |
| 5520 { | |
| 5521 l_int32 i; | |
| 5522 l_int32 j, pwpls; | |
| 5523 l_uint32 *sptr, *dptr; | |
| 5524 l_int32 wpls2; | |
| 5525 | |
| 5526 wpls2 = 2 * wpls; | |
| 5527 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5528 | |
| 5529 for (i = 0; i < h; i++) { | |
| 5530 sptr = datas + i * wpls; | |
| 5531 dptr = datad + i * wpld; | |
| 5532 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5533 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & | |
| 5534 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) & | |
| 5535 (*(sptr - wpls2)) & | |
| 5536 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) & | |
| 5537 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) & | |
| 5538 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & | |
| 5539 (*(sptr - wpls)) & | |
| 5540 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & | |
| 5541 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 5542 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 5543 (*sptr) & | |
| 5544 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 5545 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) & | |
| 5546 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & | |
| 5547 (*(sptr + wpls)) & | |
| 5548 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); | |
| 5549 } | |
| 5550 } | |
| 5551 } | |
| 5552 | |
| 5553 static void | |
| 5554 fdilate_1_53(l_uint32 *datad, | |
| 5555 l_int32 w, | |
| 5556 l_int32 h, | |
| 5557 l_int32 wpld, | |
| 5558 l_uint32 *datas, | |
| 5559 l_int32 wpls) | |
| 5560 { | |
| 5561 l_int32 i; | |
| 5562 l_int32 j, pwpls; | |
| 5563 l_uint32 *sptr, *dptr; | |
| 5564 l_int32 wpls2; | |
| 5565 | |
| 5566 wpls2 = 2 * wpls; | |
| 5567 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5568 | |
| 5569 for (i = 0; i < h; i++) { | |
| 5570 sptr = datas + i * wpls; | |
| 5571 dptr = datad + i * wpld; | |
| 5572 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5573 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | | |
| 5574 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) | | |
| 5575 (*(sptr + wpls2)) | | |
| 5576 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) | | |
| 5577 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) | | |
| 5578 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) | | |
| 5579 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | | |
| 5580 (*(sptr + wpls)) | | |
| 5581 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | | |
| 5582 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) | | |
| 5583 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) | | |
| 5584 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) | | |
| 5585 (*sptr) | | |
| 5586 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 5587 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) | | |
| 5588 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) | | |
| 5589 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | | |
| 5590 (*(sptr - wpls)) | | |
| 5591 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) | | |
| 5592 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) | | |
| 5593 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) | | |
| 5594 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) | | |
| 5595 (*(sptr - wpls2)) | | |
| 5596 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) | | |
| 5597 ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)); | |
| 5598 } | |
| 5599 } | |
| 5600 } | |
| 5601 | |
| 5602 static void | |
| 5603 ferode_1_53(l_uint32 *datad, | |
| 5604 l_int32 w, | |
| 5605 l_int32 h, | |
| 5606 l_int32 wpld, | |
| 5607 l_uint32 *datas, | |
| 5608 l_int32 wpls) | |
| 5609 { | |
| 5610 l_int32 i; | |
| 5611 l_int32 j, pwpls; | |
| 5612 l_uint32 *sptr, *dptr; | |
| 5613 l_int32 wpls2; | |
| 5614 | |
| 5615 wpls2 = 2 * wpls; | |
| 5616 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5617 | |
| 5618 for (i = 0; i < h; i++) { | |
| 5619 sptr = datas + i * wpls; | |
| 5620 dptr = datad + i * wpld; | |
| 5621 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5622 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & | |
| 5623 ((*(sptr - wpls2) >> 1) | (*(sptr - wpls2 - 1) << 31)) & | |
| 5624 (*(sptr - wpls2)) & | |
| 5625 ((*(sptr - wpls2) << 1) | (*(sptr - wpls2 + 1) >> 31)) & | |
| 5626 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) & | |
| 5627 ((*(sptr - wpls) >> 2) | (*(sptr - wpls - 1) << 30)) & | |
| 5628 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & | |
| 5629 (*(sptr - wpls)) & | |
| 5630 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & | |
| 5631 ((*(sptr - wpls) << 2) | (*(sptr - wpls + 1) >> 30)) & | |
| 5632 ((*(sptr) >> 2) | (*(sptr - 1) << 30)) & | |
| 5633 ((*(sptr) >> 1) | (*(sptr - 1) << 31)) & | |
| 5634 (*sptr) & | |
| 5635 ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 5636 ((*(sptr) << 2) | (*(sptr + 1) >> 30)) & | |
| 5637 ((*(sptr + wpls) >> 2) | (*(sptr + wpls - 1) << 30)) & | |
| 5638 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & | |
| 5639 (*(sptr + wpls)) & | |
| 5640 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) & | |
| 5641 ((*(sptr + wpls) << 2) | (*(sptr + wpls + 1) >> 30)) & | |
| 5642 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) & | |
| 5643 ((*(sptr + wpls2) >> 1) | (*(sptr + wpls2 - 1) << 31)) & | |
| 5644 (*(sptr + wpls2)) & | |
| 5645 ((*(sptr + wpls2) << 1) | (*(sptr + wpls2 + 1) >> 31)) & | |
| 5646 ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)); | |
| 5647 } | |
| 5648 } | |
| 5649 } | |
| 5650 | |
| 5651 static void | |
| 5652 fdilate_1_54(l_uint32 *datad, | |
| 5653 l_int32 w, | |
| 5654 l_int32 h, | |
| 5655 l_int32 wpld, | |
| 5656 l_uint32 *datas, | |
| 5657 l_int32 wpls) | |
| 5658 { | |
| 5659 l_int32 i; | |
| 5660 l_int32 j, pwpls; | |
| 5661 l_uint32 *sptr, *dptr; | |
| 5662 | |
| 5663 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5664 | |
| 5665 for (i = 0; i < h; i++) { | |
| 5666 sptr = datas + i * wpls; | |
| 5667 dptr = datad + i * wpld; | |
| 5668 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5669 *dptr = ((*(sptr) >> 1) | (*(sptr - 1) << 31)) | | |
| 5670 (*(sptr - wpls)); | |
| 5671 } | |
| 5672 } | |
| 5673 } | |
| 5674 | |
| 5675 static void | |
| 5676 ferode_1_54(l_uint32 *datad, | |
| 5677 l_int32 w, | |
| 5678 l_int32 h, | |
| 5679 l_int32 wpld, | |
| 5680 l_uint32 *datas, | |
| 5681 l_int32 wpls) | |
| 5682 { | |
| 5683 l_int32 i; | |
| 5684 l_int32 j, pwpls; | |
| 5685 l_uint32 *sptr, *dptr; | |
| 5686 | |
| 5687 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5688 | |
| 5689 for (i = 0; i < h; i++) { | |
| 5690 sptr = datas + i * wpls; | |
| 5691 dptr = datad + i * wpld; | |
| 5692 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5693 *dptr = ((*(sptr) << 1) | (*(sptr + 1) >> 31)) & | |
| 5694 (*(sptr + wpls)); | |
| 5695 } | |
| 5696 } | |
| 5697 } | |
| 5698 | |
| 5699 static void | |
| 5700 fdilate_1_55(l_uint32 *datad, | |
| 5701 l_int32 w, | |
| 5702 l_int32 h, | |
| 5703 l_int32 wpld, | |
| 5704 l_uint32 *datas, | |
| 5705 l_int32 wpls) | |
| 5706 { | |
| 5707 l_int32 i; | |
| 5708 l_int32 j, pwpls; | |
| 5709 l_uint32 *sptr, *dptr; | |
| 5710 | |
| 5711 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5712 | |
| 5713 for (i = 0; i < h; i++) { | |
| 5714 sptr = datas + i * wpls; | |
| 5715 dptr = datad + i * wpld; | |
| 5716 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5717 *dptr = (*sptr) | | |
| 5718 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)); | |
| 5719 } | |
| 5720 } | |
| 5721 } | |
| 5722 | |
| 5723 static void | |
| 5724 ferode_1_55(l_uint32 *datad, | |
| 5725 l_int32 w, | |
| 5726 l_int32 h, | |
| 5727 l_int32 wpld, | |
| 5728 l_uint32 *datas, | |
| 5729 l_int32 wpls) | |
| 5730 { | |
| 5731 l_int32 i; | |
| 5732 l_int32 j, pwpls; | |
| 5733 l_uint32 *sptr, *dptr; | |
| 5734 | |
| 5735 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5736 | |
| 5737 for (i = 0; i < h; i++) { | |
| 5738 sptr = datas + i * wpls; | |
| 5739 dptr = datad + i * wpld; | |
| 5740 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5741 *dptr = (*sptr) & | |
| 5742 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)); | |
| 5743 } | |
| 5744 } | |
| 5745 } | |
| 5746 | |
| 5747 static void | |
| 5748 fdilate_1_56(l_uint32 *datad, | |
| 5749 l_int32 w, | |
| 5750 l_int32 h, | |
| 5751 l_int32 wpld, | |
| 5752 l_uint32 *datas, | |
| 5753 l_int32 wpls) | |
| 5754 { | |
| 5755 l_int32 i; | |
| 5756 l_int32 j, pwpls; | |
| 5757 l_uint32 *sptr, *dptr; | |
| 5758 l_int32 wpls2; | |
| 5759 | |
| 5760 wpls2 = 2 * wpls; | |
| 5761 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5762 | |
| 5763 for (i = 0; i < h; i++) { | |
| 5764 sptr = datas + i * wpls; | |
| 5765 dptr = datad + i * wpld; | |
| 5766 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5767 *dptr = ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)) | | |
| 5768 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) | | |
| 5769 (*sptr) | | |
| 5770 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) | | |
| 5771 ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)); | |
| 5772 } | |
| 5773 } | |
| 5774 } | |
| 5775 | |
| 5776 static void | |
| 5777 ferode_1_56(l_uint32 *datad, | |
| 5778 l_int32 w, | |
| 5779 l_int32 h, | |
| 5780 l_int32 wpld, | |
| 5781 l_uint32 *datas, | |
| 5782 l_int32 wpls) | |
| 5783 { | |
| 5784 l_int32 i; | |
| 5785 l_int32 j, pwpls; | |
| 5786 l_uint32 *sptr, *dptr; | |
| 5787 l_int32 wpls2; | |
| 5788 | |
| 5789 wpls2 = 2 * wpls; | |
| 5790 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5791 | |
| 5792 for (i = 0; i < h; i++) { | |
| 5793 sptr = datas + i * wpls; | |
| 5794 dptr = datad + i * wpld; | |
| 5795 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5796 *dptr = ((*(sptr - wpls2) << 2) | (*(sptr - wpls2 + 1) >> 30)) & | |
| 5797 ((*(sptr - wpls) << 1) | (*(sptr - wpls + 1) >> 31)) & | |
| 5798 (*sptr) & | |
| 5799 ((*(sptr + wpls) >> 1) | (*(sptr + wpls - 1) << 31)) & | |
| 5800 ((*(sptr + wpls2) >> 2) | (*(sptr + wpls2 - 1) << 30)); | |
| 5801 } | |
| 5802 } | |
| 5803 } | |
| 5804 | |
| 5805 static void | |
| 5806 fdilate_1_57(l_uint32 *datad, | |
| 5807 l_int32 w, | |
| 5808 l_int32 h, | |
| 5809 l_int32 wpld, | |
| 5810 l_uint32 *datas, | |
| 5811 l_int32 wpls) | |
| 5812 { | |
| 5813 l_int32 i; | |
| 5814 l_int32 j, pwpls; | |
| 5815 l_uint32 *sptr, *dptr; | |
| 5816 l_int32 wpls2; | |
| 5817 | |
| 5818 wpls2 = 2 * wpls; | |
| 5819 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5820 | |
| 5821 for (i = 0; i < h; i++) { | |
| 5822 sptr = datas + i * wpls; | |
| 5823 dptr = datad + i * wpld; | |
| 5824 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5825 *dptr = ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)) | | |
| 5826 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) | | |
| 5827 (*sptr) | | |
| 5828 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) | | |
| 5829 ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)); | |
| 5830 } | |
| 5831 } | |
| 5832 } | |
| 5833 | |
| 5834 static void | |
| 5835 ferode_1_57(l_uint32 *datad, | |
| 5836 l_int32 w, | |
| 5837 l_int32 h, | |
| 5838 l_int32 wpld, | |
| 5839 l_uint32 *datas, | |
| 5840 l_int32 wpls) | |
| 5841 { | |
| 5842 l_int32 i; | |
| 5843 l_int32 j, pwpls; | |
| 5844 l_uint32 *sptr, *dptr; | |
| 5845 l_int32 wpls2; | |
| 5846 | |
| 5847 wpls2 = 2 * wpls; | |
| 5848 pwpls = (l_uint32)(w + 31) / 32; /* proper wpl of src */ | |
| 5849 | |
| 5850 for (i = 0; i < h; i++) { | |
| 5851 sptr = datas + i * wpls; | |
| 5852 dptr = datad + i * wpld; | |
| 5853 for (j = 0; j < pwpls; j++, sptr++, dptr++) { | |
| 5854 *dptr = ((*(sptr - wpls2) >> 2) | (*(sptr - wpls2 - 1) << 30)) & | |
| 5855 ((*(sptr - wpls) >> 1) | (*(sptr - wpls - 1) << 31)) & | |
| 5856 (*sptr) & | |
| 5857 ((*(sptr + wpls) << 1) | (*(sptr + wpls + 1) >> 31)) & | |
| 5858 ((*(sptr + wpls2) << 2) | (*(sptr + wpls2 + 1) >> 30)); | |
| 5859 } | |
| 5860 } | |
| 5861 } | |
| 5862 |
