comparison libpostproc/postprocess_template.c @ 2967:ef2149182f1c libavcodec

COSMETICS: Remove all trailing whitespace.
author diego
date Sat, 17 Dec 2005 18:14:38 +0000
parents 49da251f2608
children 403183bbb505
comparison
equal deleted inserted replaced
2966:564788471dd4 2967:ef2149182f1c
78 */ 78 */
79 static inline int RENAME(vertClassify)(uint8_t src[], int stride, PPContext *c){ 79 static inline int RENAME(vertClassify)(uint8_t src[], int stride, PPContext *c){
80 int numEq= 0, dcOk; 80 int numEq= 0, dcOk;
81 src+= stride*4; // src points to begin of the 8x8 Block 81 src+= stride*4; // src points to begin of the 8x8 Block
82 asm volatile( 82 asm volatile(
83 "movq %0, %%mm7 \n\t" 83 "movq %0, %%mm7 \n\t"
84 "movq %1, %%mm6 \n\t" 84 "movq %1, %%mm6 \n\t"
85 : : "m" (c->mmxDcOffset[c->nonBQP]), "m" (c->mmxDcThreshold[c->nonBQP]) 85 : : "m" (c->mmxDcOffset[c->nonBQP]), "m" (c->mmxDcThreshold[c->nonBQP])
86 ); 86 );
87 87
88 asm volatile( 88 asm volatile(
89 "lea (%2, %3), %%"REG_a" \n\t" 89 "lea (%2, %3), %%"REG_a" \n\t"
90 // 0 1 2 3 4 5 6 7 8 9 90 // 0 1 2 3 4 5 6 7 8 9
91 // %1 eax eax+%2 eax+2%2 %1+4%2 ecx ecx+%2 ecx+2%2 %1+8%2 ecx+4%2 91 // %1 eax eax+%2 eax+2%2 %1+4%2 ecx ecx+%2 ecx+2%2 %1+8%2 ecx+4%2
92 92
113 PMINUB(%%mm1, %%mm3, %%mm5) 113 PMINUB(%%mm1, %%mm3, %%mm5)
114 "psubb %%mm1, %%mm2 \n\t" 114 "psubb %%mm1, %%mm2 \n\t"
115 "paddb %%mm7, %%mm2 \n\t" 115 "paddb %%mm7, %%mm2 \n\t"
116 "pcmpgtb %%mm6, %%mm2 \n\t" 116 "pcmpgtb %%mm6, %%mm2 \n\t"
117 "paddb %%mm2, %%mm0 \n\t" 117 "paddb %%mm2, %%mm0 \n\t"
118 118
119 "lea (%%"REG_a", %3, 4), %%"REG_a" \n\t" 119 "lea (%%"REG_a", %3, 4), %%"REG_a" \n\t"
120 120
121 "movq (%2, %3, 4), %%mm2 \n\t" 121 "movq (%2, %3, 4), %%mm2 \n\t"
122 PMAXUB(%%mm2, %%mm4) 122 PMAXUB(%%mm2, %%mm4)
123 PMINUB(%%mm2, %%mm3, %%mm5) 123 PMINUB(%%mm2, %%mm3, %%mm5)
1193 "packuswb %%mm0, %%mm0 \n\t" 1193 "packuswb %%mm0, %%mm0 \n\t"
1194 "movq %%mm0, %3 \n\t" 1194 "movq %%mm0, %3 \n\t"
1195 1195
1196 "lea (%0, %1), %%"REG_a" \n\t" 1196 "lea (%0, %1), %%"REG_a" \n\t"
1197 "lea (%%"REG_a", %1, 4), %%"REG_d" \n\t" 1197 "lea (%%"REG_a", %1, 4), %%"REG_d" \n\t"
1198 1198
1199 // 0 1 2 3 4 5 6 7 8 9 1199 // 0 1 2 3 4 5 6 7 8 9
1200 // %0 eax eax+%1 eax+2%1 %0+4%1 edx edx+%1 edx+2%1 %0+8%1 edx+4%1 1200 // %0 eax eax+%1 eax+2%1 %0+4%1 edx edx+%1 edx+2%1 %0+8%1 edx+4%1
1201 1201
1202 #undef FIND_MIN_MAX 1202 #undef FIND_MIN_MAX
1203 #ifdef HAVE_MMX2 1203 #ifdef HAVE_MMX2
1274 "psubb %%mm7, %%mm6 \n\t" // max - min 1274 "psubb %%mm7, %%mm6 \n\t" // max - min
1275 "movd %%mm6, %%ecx \n\t" 1275 "movd %%mm6, %%ecx \n\t"
1276 "cmpb "MANGLE(deringThreshold)", %%cl \n\t" 1276 "cmpb "MANGLE(deringThreshold)", %%cl \n\t"
1277 " jb 1f \n\t" 1277 " jb 1f \n\t"
1278 "lea -24(%%"REG_SP"), %%"REG_c" \n\t" 1278 "lea -24(%%"REG_SP"), %%"REG_c" \n\t"
1279 "and "ALIGN_MASK", %%"REG_c" \n\t" 1279 "and "ALIGN_MASK", %%"REG_c" \n\t"
1280 PAVGB(%%mm0, %%mm7) // a=(max + min)/2 1280 PAVGB(%%mm0, %%mm7) // a=(max + min)/2
1281 "punpcklbw %%mm7, %%mm7 \n\t" 1281 "punpcklbw %%mm7, %%mm7 \n\t"
1282 "punpcklbw %%mm7, %%mm7 \n\t" 1282 "punpcklbw %%mm7, %%mm7 \n\t"
1283 "punpcklbw %%mm7, %%mm7 \n\t" 1283 "punpcklbw %%mm7, %%mm7 \n\t"
1284 "movq %%mm7, (%%"REG_c") \n\t" 1284 "movq %%mm7, (%%"REG_c") \n\t"
1442 if(src[stride*y + 5] > avg) t+= 32; 1442 if(src[stride*y + 5] > avg) t+= 32;
1443 if(src[stride*y + 6] > avg) t+= 64; 1443 if(src[stride*y + 6] > avg) t+= 64;
1444 if(src[stride*y + 7] > avg) t+= 128; 1444 if(src[stride*y + 7] > avg) t+= 128;
1445 if(src[stride*y + 8] > avg) t+= 256; 1445 if(src[stride*y + 8] > avg) t+= 256;
1446 if(src[stride*y + 9] > avg) t+= 512; 1446 if(src[stride*y + 9] > avg) t+= 512;
1447 1447
1448 t |= (~t)<<16; 1448 t |= (~t)<<16;
1449 t &= (t<<1) & (t>>1); 1449 t &= (t<<1) & (t>>1);
1450 s[y] = t; 1450 s[y] = t;
1451 } 1451 }
1452 1452
1453 for(y=1; y<9; y++) 1453 for(y=1; y<9; y++)
1454 { 1454 {
1455 int t = s[y-1] & s[y] & s[y+1]; 1455 int t = s[y-1] & s[y] & s[y+1];
1456 t|= t>>16; 1456 t|= t>>16;
1457 s[y-1]= t; 1457 s[y-1]= t;
1794 1794
1795 DEINT_L5(%%mm0, %%mm1, (%0) , (%%REGa) , (%%REGa, %1) ) 1795 DEINT_L5(%%mm0, %%mm1, (%0) , (%%REGa) , (%%REGa, %1) )
1796 DEINT_L5(%%mm1, %%mm0, (%%REGa) , (%%REGa, %1) , (%%REGa, %1, 2)) 1796 DEINT_L5(%%mm1, %%mm0, (%%REGa) , (%%REGa, %1) , (%%REGa, %1, 2))
1797 DEINT_L5(%%mm0, %%mm1, (%%REGa, %1) , (%%REGa, %1, 2), (%0, %1, 4) ) 1797 DEINT_L5(%%mm0, %%mm1, (%%REGa, %1) , (%%REGa, %1, 2), (%0, %1, 4) )
1798 DEINT_L5(%%mm1, %%mm0, (%%REGa, %1, 2), (%0, %1, 4) , (%%REGd) ) 1798 DEINT_L5(%%mm1, %%mm0, (%%REGa, %1, 2), (%0, %1, 4) , (%%REGd) )
1799 DEINT_L5(%%mm0, %%mm1, (%0, %1, 4) , (%%REGd) , (%%REGd, %1) ) 1799 DEINT_L5(%%mm0, %%mm1, (%0, %1, 4) , (%%REGd) , (%%REGd, %1) )
1800 DEINT_L5(%%mm1, %%mm0, (%%REGd) , (%%REGd, %1) , (%%REGd, %1, 2)) 1800 DEINT_L5(%%mm1, %%mm0, (%%REGd) , (%%REGd, %1) , (%%REGd, %1, 2))
1801 DEINT_L5(%%mm0, %%mm1, (%%REGd, %1) , (%%REGd, %1, 2), (%0, %1, 8) ) 1801 DEINT_L5(%%mm0, %%mm1, (%%REGd, %1) , (%%REGd, %1, 2), (%0, %1, 8) )
1802 DEINT_L5(%%mm1, %%mm0, (%%REGd, %1, 2), (%0, %1, 8) , (%%REGd, %1, 4)) 1802 DEINT_L5(%%mm1, %%mm0, (%%REGd, %1, 2), (%0, %1, 8) , (%%REGd, %1, 4))
1803 1803
1804 "movq %%mm0, (%2) \n\t" 1804 "movq %%mm0, (%2) \n\t"
2109 "movd %%mm1, 96(%3) \n\t" 2109 "movd %%mm1, 96(%3) \n\t"
2110 "psrlq $32, %%mm1 \n\t" 2110 "psrlq $32, %%mm1 \n\t"
2111 "movd %%mm1, 112(%3) \n\t" 2111 "movd %%mm1, 112(%3) \n\t"
2112 2112
2113 "lea (%%"REG_a", %1, 4), %%"REG_a" \n\t" 2113 "lea (%%"REG_a", %1, 4), %%"REG_a" \n\t"
2114 2114
2115 "movq (%0, %1, 4), %%mm0 \n\t" // 12345678 2115 "movq (%0, %1, 4), %%mm0 \n\t" // 12345678
2116 "movq (%%"REG_a"), %%mm1 \n\t" // abcdefgh 2116 "movq (%%"REG_a"), %%mm1 \n\t" // abcdefgh
2117 "movq %%mm0, %%mm2 \n\t" // 12345678 2117 "movq %%mm0, %%mm2 \n\t" // 12345678
2118 "punpcklbw %%mm1, %%mm0 \n\t" // 1a2b3c4d 2118 "punpcklbw %%mm1, %%mm0 \n\t" // 1a2b3c4d
2119 "punpckhbw %%mm1, %%mm2 \n\t" // 5e6f7g8h 2119 "punpckhbw %%mm1, %%mm2 \n\t" // 5e6f7g8h
2240 { 2240 {
2241 // to save a register (FIXME do this outside of the loops) 2241 // to save a register (FIXME do this outside of the loops)
2242 tempBluredPast[127]= maxNoise[0]; 2242 tempBluredPast[127]= maxNoise[0];
2243 tempBluredPast[128]= maxNoise[1]; 2243 tempBluredPast[128]= maxNoise[1];
2244 tempBluredPast[129]= maxNoise[2]; 2244 tempBluredPast[129]= maxNoise[2];
2245 2245
2246 #define FAST_L2_DIFF 2246 #define FAST_L2_DIFF
2247 //#define L1_DIFF //u should change the thresholds too if u try that one 2247 //#define L1_DIFF //u should change the thresholds too if u try that one
2248 #if defined (HAVE_MMX2) || defined (HAVE_3DNOW) 2248 #if defined (HAVE_MMX2) || defined (HAVE_3DNOW)
2249 asm volatile( 2249 asm volatile(
2250 "lea (%2, %2, 2), %%"REG_a" \n\t" // 3*stride 2250 "lea (%2, %2, 2), %%"REG_a" \n\t" // 3*stride
2649 int64_t dc_mask, eq_mask, both_masks; 2649 int64_t dc_mask, eq_mask, both_masks;
2650 int64_t sums[10*8*2]; 2650 int64_t sums[10*8*2];
2651 src+= step*3; // src points to begin of the 8x8 Block 2651 src+= step*3; // src points to begin of the 8x8 Block
2652 //START_TIMER 2652 //START_TIMER
2653 asm volatile( 2653 asm volatile(
2654 "movq %0, %%mm7 \n\t" 2654 "movq %0, %%mm7 \n\t"
2655 "movq %1, %%mm6 \n\t" 2655 "movq %1, %%mm6 \n\t"
2656 : : "m" (c->mmxDcOffset[c->nonBQP]), "m" (c->mmxDcThreshold[c->nonBQP]) 2656 : : "m" (c->mmxDcOffset[c->nonBQP]), "m" (c->mmxDcThreshold[c->nonBQP])
2657 ); 2657 );
2658 2658
2659 asm volatile( 2659 asm volatile(
2660 "lea (%2, %3), %%"REG_a" \n\t" 2660 "lea (%2, %3), %%"REG_a" \n\t"
2661 // 0 1 2 3 4 5 6 7 8 9 2661 // 0 1 2 3 4 5 6 7 8 9
2662 // %1 eax eax+%2 eax+2%2 %1+4%2 ecx ecx+%2 ecx+2%2 %1+8%2 ecx+4%2 2662 // %1 eax eax+%2 eax+2%2 %1+4%2 ecx ecx+%2 ecx+2%2 %1+8%2 ecx+4%2
2663 2663
2682 PMINUB(%%mm1, %%mm3, %%mm5) 2682 PMINUB(%%mm1, %%mm3, %%mm5)
2683 "psubb %%mm1, %%mm2 \n\t" 2683 "psubb %%mm1, %%mm2 \n\t"
2684 "paddb %%mm7, %%mm2 \n\t" 2684 "paddb %%mm7, %%mm2 \n\t"
2685 "pcmpgtb %%mm6, %%mm2 \n\t" 2685 "pcmpgtb %%mm6, %%mm2 \n\t"
2686 "paddb %%mm2, %%mm0 \n\t" 2686 "paddb %%mm2, %%mm0 \n\t"
2687 2687
2688 "lea (%%"REG_a", %3, 4), %%"REG_a" \n\t" 2688 "lea (%%"REG_a", %3, 4), %%"REG_a" \n\t"
2689 2689
2690 "movq (%2, %3, 4), %%mm2 \n\t" 2690 "movq (%2, %3, 4), %%mm2 \n\t"
2691 PMAXUB(%%mm2, %%mm4) 2691 PMAXUB(%%mm2, %%mm4)
2692 PMINUB(%%mm2, %%mm3, %%mm5) 2692 PMINUB(%%mm2, %%mm3, %%mm5)
2793 "pcmpeqb %%mm4, %%mm0 \n\t" // diff >= QP -> FF 2793 "pcmpeqb %%mm4, %%mm0 \n\t" // diff >= QP -> FF
2794 2794
2795 "pxor %%mm7, %%mm1 \n\t" 2795 "pxor %%mm7, %%mm1 \n\t"
2796 "pand %%mm0, %%mm1 \n\t" 2796 "pand %%mm0, %%mm1 \n\t"
2797 "pxor %%mm1, %%mm7 \n\t" 2797 "pxor %%mm1, %%mm7 \n\t"
2798 2798
2799 "movq %%mm6, %%mm5 \n\t" 2799 "movq %%mm6, %%mm5 \n\t"
2800 "punpckhbw %%mm4, %%mm6 \n\t" 2800 "punpckhbw %%mm4, %%mm6 \n\t"
2801 "punpcklbw %%mm4, %%mm5 \n\t" 2801 "punpcklbw %%mm4, %%mm5 \n\t"
2802 // 4:0 5/6:First 7:Last 2802 // 4:0 5/6:First 7:Last
2803 2803
2824 "punpcklbw %%mm4, %%mm2 \n\t"\ 2824 "punpcklbw %%mm4, %%mm2 \n\t"\
2825 "punpckhbw %%mm4, %%mm3 \n\t"\ 2825 "punpckhbw %%mm4, %%mm3 \n\t"\
2826 "psubw %%mm2, %%mm0 \n\t"\ 2826 "psubw %%mm2, %%mm0 \n\t"\
2827 "psubw %%mm3, %%mm1 \n\t" 2827 "psubw %%mm3, %%mm1 \n\t"
2828 2828
2829 2829
2830 NEXT //0 2830 NEXT //0
2831 NEXT //1 2831 NEXT //1
2832 NEXT //2 2832 NEXT //2
2833 "movq %%mm0, (%3) \n\t" 2833 "movq %%mm0, (%3) \n\t"
2834 "movq %%mm1, 8(%3) \n\t" 2834 "movq %%mm1, 8(%3) \n\t"
2858 "movq %%mm1, 72(%3) \n\t" 2858 "movq %%mm1, 72(%3) \n\t"
2859 2859
2860 "movq %%mm7, %%mm6 \n\t" 2860 "movq %%mm7, %%mm6 \n\t"
2861 "punpckhbw %%mm4, %%mm7 \n\t" 2861 "punpckhbw %%mm4, %%mm7 \n\t"
2862 "punpcklbw %%mm4, %%mm6 \n\t" 2862 "punpcklbw %%mm4, %%mm6 \n\t"
2863 2863
2864 NEXT //7 2864 NEXT //7
2865 "mov %4, %0 \n\t" 2865 "mov %4, %0 \n\t"
2866 "add %1, %0 \n\t" 2866 "add %1, %0 \n\t"
2867 PREV //0 2867 PREV //0
2868 "movq %%mm0, 80(%3) \n\t" 2868 "movq %%mm0, 80(%3) \n\t"
2871 PREV //1 2871 PREV //1
2872 "paddw %%mm6, %%mm0 \n\t" 2872 "paddw %%mm6, %%mm0 \n\t"
2873 "paddw %%mm7, %%mm1 \n\t" 2873 "paddw %%mm7, %%mm1 \n\t"
2874 "movq %%mm0, 96(%3) \n\t" 2874 "movq %%mm0, 96(%3) \n\t"
2875 "movq %%mm1, 104(%3) \n\t" 2875 "movq %%mm1, 104(%3) \n\t"
2876 2876
2877 PREV //2 2877 PREV //2
2878 "paddw %%mm6, %%mm0 \n\t" 2878 "paddw %%mm6, %%mm0 \n\t"
2879 "paddw %%mm7, %%mm1 \n\t" 2879 "paddw %%mm7, %%mm1 \n\t"
2880 "movq %%mm0, 112(%3) \n\t" 2880 "movq %%mm0, 112(%3) \n\t"
2881 "movq %%mm1, 120(%3) \n\t" 2881 "movq %%mm1, 120(%3) \n\t"
3447 c.packedYOffset|= c.packedYOffset<<32; 3447 c.packedYOffset|= c.packedYOffset<<32;
3448 c.packedYOffset|= c.packedYOffset<<16; 3448 c.packedYOffset|= c.packedYOffset<<16;
3449 3449
3450 c.packedYScale|= c.packedYScale<<32; 3450 c.packedYScale|= c.packedYScale<<32;
3451 c.packedYScale|= c.packedYScale<<16; 3451 c.packedYScale|= c.packedYScale<<16;
3452 3452
3453 if(mode & LEVEL_FIX) QPCorrecture= (int)(scale*256*256 + 0.5); 3453 if(mode & LEVEL_FIX) QPCorrecture= (int)(scale*256*256 + 0.5);
3454 else QPCorrecture= 256*256; 3454 else QPCorrecture= 256*256;
3455 } 3455 }
3456 else 3456 else
3457 { 3457 {
3610 "movd %1, %%mm7 \n\t" 3610 "movd %1, %%mm7 \n\t"
3611 "packuswb %%mm7, %%mm7 \n\t" // 0, 0, 0, QP, 0, 0, 0, QP 3611 "packuswb %%mm7, %%mm7 \n\t" // 0, 0, 0, QP, 0, 0, 0, QP
3612 "packuswb %%mm7, %%mm7 \n\t" // 0,QP, 0, QP, 0,QP, 0, QP 3612 "packuswb %%mm7, %%mm7 \n\t" // 0,QP, 0, QP, 0,QP, 0, QP
3613 "packuswb %%mm7, %%mm7 \n\t" // QP,..., QP 3613 "packuswb %%mm7, %%mm7 \n\t" // QP,..., QP
3614 "movq %%mm7, %0 \n\t" 3614 "movq %%mm7, %0 \n\t"
3615 : "=m" (c.pQPb) 3615 : "=m" (c.pQPb)
3616 : "r" (QP) 3616 : "r" (QP)
3617 ); 3617 );
3618 #endif 3618 #endif
3619 3619
3620 3620