| 232 | #endif /* ! liftS */ |
| 233 | |
| 234 | static void horizontal_decompose53i(DWTELEM *b, int width){ |
| 235 | DWTELEM temp[width]; |
| 236 | const int width2= width>>1; |
| 237 | int x; |
| 238 | const int w2= (width+1)>>1; |
| 239 | |
| 240 | for(x=0; x<width2; x++){ |
| 241 | temp[x ]= b[2*x ]; |
| 242 | temp[x+w2]= b[2*x + 1]; |
| 243 | } |
| 244 | if(width&1) |
| 245 | temp[x ]= b[2*x ]; |
| 246 | #if 0 |
| 247 | { |
| 248 | int A1,A2,A3,A4; |
| 249 | A2= temp[1 ]; |
| 250 | A4= temp[0 ]; |
| 251 | A1= temp[0+width2]; |
| 252 | A1 -= (A2 + A4)>>1; |
| 253 | A4 += (A1 + 1)>>1; |
| 254 | b[0+width2] = A1; |
| 255 | b[0 ] = A4; |
| 256 | for(x=1; x+1<width2; x+=2){ |
| 257 | A3= temp[x+width2]; |
| 258 | A4= temp[x+1 ]; |
| 259 | A3 -= (A2 + A4)>>1; |
| 260 | A2 += (A1 + A3 + 2)>>2; |
| 261 | b[x+width2] = A3; |
| 262 | b[x ] = A2; |
| 263 | |
| 264 | A1= temp[x+1+width2]; |
| 265 | A2= temp[x+2 ]; |
| 266 | A1 -= (A2 + A4)>>1; |
| 267 | A4 += (A1 + A3 + 2)>>2; |
| 268 | b[x+1+width2] = A1; |
| 269 | b[x+1 ] = A4; |
| 270 | } |
| 271 | A3= temp[width-1]; |
| 272 | A3 -= A2; |
| 273 | A2 += (A1 + A3 + 2)>>2; |
| 274 | b[width -1] = A3; |
| 275 | b[width2-1] = A2; |
| 276 | } |
| 277 | #else |
| 278 | lift(b+w2, temp+w2, temp, 1, 1, 1, width, -1, 0, 1, 1, 0); |
| 279 | lift(b , temp , b+w2, 1, 1, 1, width, 1, 2, 2, 0, 0); |
| 280 | #endif /* 0 */ |
| 281 | } |
| 282 | |
| 283 | static void vertical_decompose53iH0(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width){ |
| 284 | int i; |
no test coverage detected