Mercurial > libavcodec.hg
comparison libpostproc/postprocess_template.c @ 181:edc5f6cf1855 libavcodec
customizeable deblocking (2 thresholds)
chrominance & luminance filtering is the default now if -npp ...:y isnt specified (lumi only was only used for the deinterlacers and that was wrong anyway)
| author | michael |
|---|---|
| date | Fri, 28 Dec 2001 00:09:55 +0000 |
| parents | 37eaaa9596cc |
| children | 3ccd74a91074 |
comparison
equal
deleted
inserted
replaced
| 180:fc656a23b35a | 181:edc5f6cf1855 |
|---|---|
| 58 asm volatile( | 58 asm volatile( |
| 59 "leal (%1, %2), %%eax \n\t" | 59 "leal (%1, %2), %%eax \n\t" |
| 60 "leal (%%eax, %2, 4), %%ebx \n\t" | 60 "leal (%%eax, %2, 4), %%ebx \n\t" |
| 61 // 0 1 2 3 4 5 6 7 8 9 | 61 // 0 1 2 3 4 5 6 7 8 9 |
| 62 // %1 eax eax+%2 eax+2%2 %1+4%2 ebx ebx+%2 ebx+2%2 %1+8%2 ebx+4%2 | 62 // %1 eax eax+%2 eax+2%2 %1+4%2 ebx ebx+%2 ebx+2%2 %1+8%2 ebx+4%2 |
| 63 "movq b7E, %%mm7 \n\t" // mm7 = 0x7F | 63 "movq mmxDCOffset, %%mm7 \n\t" // mm7 = 0x7F |
| 64 "movq b7C, %%mm6 \n\t" // mm6 = 0x7D | 64 "movq mmxDCThreshold, %%mm6 \n\t" // mm6 = 0x7D |
| 65 "movq (%1), %%mm0 \n\t" | 65 "movq (%1), %%mm0 \n\t" |
| 66 "movq (%%eax), %%mm1 \n\t" | 66 "movq (%%eax), %%mm1 \n\t" |
| 67 "psubb %%mm1, %%mm0 \n\t" // mm0 = differnece | 67 "psubb %%mm1, %%mm0 \n\t" // mm0 = differnece |
| 68 "paddb %%mm7, %%mm0 \n\t" | 68 "paddb %%mm7, %%mm0 \n\t" |
| 69 "pcmpgtb %%mm6, %%mm0 \n\t" | 69 "pcmpgtb %%mm6, %%mm0 \n\t" |
| 127 numEq= (-numEq) &0xFF; | 127 numEq= (-numEq) &0xFF; |
| 128 | 128 |
| 129 #else | 129 #else |
| 130 for(y=0; y<BLOCK_SIZE-1; y++) | 130 for(y=0; y<BLOCK_SIZE-1; y++) |
| 131 { | 131 { |
| 132 if(((src[0] - src[0+stride] + 1)&0xFFFF) < 3) numEq++; | 132 if(((src[0] - src[0+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 133 if(((src[1] - src[1+stride] + 1)&0xFFFF) < 3) numEq++; | 133 if(((src[1] - src[1+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 134 if(((src[2] - src[2+stride] + 1)&0xFFFF) < 3) numEq++; | 134 if(((src[2] - src[2+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 135 if(((src[3] - src[3+stride] + 1)&0xFFFF) < 3) numEq++; | 135 if(((src[3] - src[3+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 136 if(((src[4] - src[4+stride] + 1)&0xFFFF) < 3) numEq++; | 136 if(((src[4] - src[4+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 137 if(((src[5] - src[5+stride] + 1)&0xFFFF) < 3) numEq++; | 137 if(((src[5] - src[5+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 138 if(((src[6] - src[6+stride] + 1)&0xFFFF) < 3) numEq++; | 138 if(((src[6] - src[6+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 139 if(((src[7] - src[7+stride] + 1)&0xFFFF) < 3) numEq++; | 139 if(((src[7] - src[7+stride] + dcOffset)&0xFFFF) < dcThreshold) numEq++; |
| 140 src+= stride; | 140 src+= stride; |
| 141 } | 141 } |
| 142 #endif | 142 #endif |
| 143 /* if(abs(numEq - asmEq) > 0) | 143 /* if(abs(numEq - asmEq) > 0) |
| 144 { | 144 { |
