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 {