Mercurial > libavcodec.hg
comparison libpostproc/postprocess_template.c @ 2038:02b59a3c62cd libavcodec
faster c lowpass filter
| author | michael |
|---|---|
| date | Thu, 27 May 2004 16:16:09 +0000 |
| parents | 98d8283534bb |
| children | f25e485a7850 |
comparison
equal
deleted
inserted
replaced
| 2037:98d8283534bb | 2038:02b59a3c62cd |
|---|---|
| 315 for(x=0; x<BLOCK_SIZE; x++) | 315 for(x=0; x<BLOCK_SIZE; x++) |
| 316 { | 316 { |
| 317 const int first= ABS(src[0] - src[l1]) < c->QP ? src[0] : src[l1]; | 317 const int first= ABS(src[0] - src[l1]) < c->QP ? src[0] : src[l1]; |
| 318 const int last= ABS(src[l8] - src[l9]) < c->QP ? src[l9] : src[l8]; | 318 const int last= ABS(src[l8] - src[l9]) < c->QP ? src[l9] : src[l8]; |
| 319 | 319 |
| 320 int sums[9]; | 320 int sums[10]; |
| 321 sums[0] = first + src[l1]; | 321 sums[0] = 4*first + src[l1] + src[l2] + src[l3] + 4; |
| 322 sums[1] = src[l1] + src[l2]; | 322 sums[1] = sums[0] - first + src[l4]; |
| 323 sums[2] = src[l2] + src[l3]; | 323 sums[2] = sums[1] - first + src[l5]; |
| 324 sums[3] = src[l3] + src[l4]; | 324 sums[3] = sums[2] - first + src[l6]; |
| 325 sums[4] = src[l4] + src[l5]; | 325 sums[4] = sums[3] - first + src[l7]; |
| 326 sums[5] = src[l5] + src[l6]; | 326 sums[5] = sums[4] - src[l1] + src[l8]; |
| 327 sums[6] = src[l6] + src[l7]; | 327 sums[6] = sums[5] - src[l2] + last; |
| 328 sums[7] = src[l7] + src[l8]; | 328 sums[7] = sums[6] - src[l3] + last; |
| 329 sums[8] = src[l8] + last; | 329 sums[8] = sums[7] - src[l4] + last; |
| 330 | 330 sums[9] = sums[8] - src[l5] + last; |
| 331 src[l1]= ((sums[0]<<2) + ((first + sums[2])<<1) + sums[4] + 8)>>4; | 331 |
| 332 src[l2]= ((src[l2]<<2) + ((first + sums[0] + sums[3])<<1) + sums[5] + 8)>>4; | 332 src[l1]= (sums[0] + sums[2] + 2*src[l1])>>4; |
| 333 src[l3]= ((src[l3]<<2) + ((first + sums[1] + sums[4])<<1) + sums[6] + 8)>>4; | 333 src[l2]= (sums[1] + sums[3] + 2*src[l2])>>4; |
| 334 src[l4]= ((src[l4]<<2) + ((sums[2] + sums[5])<<1) + sums[0] + sums[7] + 8)>>4; | 334 src[l3]= (sums[2] + sums[4] + 2*src[l3])>>4; |
| 335 src[l5]= ((src[l5]<<2) + ((sums[3] + sums[6])<<1) + sums[1] + sums[8] + 8)>>4; | 335 src[l4]= (sums[3] + sums[5] + 2*src[l4])>>4; |
| 336 src[l6]= ((src[l6]<<2) + ((last + sums[7] + sums[4])<<1) + sums[2] + 8)>>4; | 336 src[l5]= (sums[4] + sums[6] + 2*src[l5])>>4; |
| 337 src[l7]= (((last + src[l7])<<2) + ((src[l8] + sums[5])<<1) + sums[3] + 8)>>4; | 337 src[l6]= (sums[5] + sums[7] + 2*src[l6])>>4; |
| 338 src[l8]= ((sums[8]<<2) + ((last + sums[6])<<1) + sums[4] + 8)>>4; | 338 src[l7]= (sums[6] + sums[8] + 2*src[l7])>>4; |
| 339 src[l8]= (sums[7] + sums[9] + 2*src[l8])>>4; | |
| 339 | 340 |
| 340 src++; | 341 src++; |
| 341 } | 342 } |
| 342 #endif | 343 #endif |
| 343 } | 344 } |
