comparison libpostproc/postprocess_template.c @ 2037:98d8283534bb libavcodec

accurate/slow (per line instead of per block) deblock filter spport which is identical to what is recommanded in the mpeg4 spec
author michael
date Thu, 27 May 2004 15:57:20 +0000
parents 6a6c678517b3
children 02b59a3c62cd
comparison
equal deleted inserted replaced
2036:6a6c678517b3 2037:98d8283534bb
2812 else if( (mode & LINEAR_BLEND_DEINT_FILTER) 2812 else if( (mode & LINEAR_BLEND_DEINT_FILTER)
2813 || (mode & FFMPEG_DEINT_FILTER) 2813 || (mode & FFMPEG_DEINT_FILTER)
2814 || (mode & LOWPASS5_DEINT_FILTER)) copyAhead=14; 2814 || (mode & LOWPASS5_DEINT_FILTER)) copyAhead=14;
2815 else if( (mode & V_DEBLOCK) 2815 else if( (mode & V_DEBLOCK)
2816 || (mode & LINEAR_IPOL_DEINT_FILTER) 2816 || (mode & LINEAR_IPOL_DEINT_FILTER)
2817 || (mode & MEDIAN_DEINT_FILTER)) copyAhead=13; 2817 || (mode & MEDIAN_DEINT_FILTER)
2818 || (mode & V_A_DEBLOCK)) copyAhead=13;
2818 else if(mode & V_X1_FILTER) copyAhead=11; 2819 else if(mode & V_X1_FILTER) copyAhead=11;
2819 // else if(mode & V_RK1_FILTER) copyAhead=10; 2820 // else if(mode & V_RK1_FILTER) copyAhead=10;
2820 else if(mode & DERING) copyAhead=9; 2821 else if(mode & DERING) copyAhead=9;
2821 else copyAhead=8; 2822 else copyAhead=8;
2822 2823
3108 3109
3109 if(t==1) 3110 if(t==1)
3110 RENAME(doVertLowPass)(dstBlock, stride, &c); 3111 RENAME(doVertLowPass)(dstBlock, stride, &c);
3111 else if(t==2) 3112 else if(t==2)
3112 RENAME(doVertDefFilter)(dstBlock, stride, &c); 3113 RENAME(doVertDefFilter)(dstBlock, stride, &c);
3114 }else if(mode & V_A_DEBLOCK){
3115 do_a_deblock(dstBlock, stride, 1, &c);
3113 } 3116 }
3114 } 3117 }
3115 3118
3116 #ifdef HAVE_MMX 3119 #ifdef HAVE_MMX
3117 RENAME(transpose1)(tempBlock1, tempBlock2, dstBlock, dstStride); 3120 RENAME(transpose1)(tempBlock1, tempBlock2, dstBlock, dstStride);
3129 //STOP_TIMER("dc & minmax") 3132 //STOP_TIMER("dc & minmax")
3130 if(t==1) 3133 if(t==1)
3131 RENAME(doVertLowPass)(tempBlock1, 16, &c); 3134 RENAME(doVertLowPass)(tempBlock1, 16, &c);
3132 else if(t==2) 3135 else if(t==2)
3133 RENAME(doVertDefFilter)(tempBlock1, 16, &c); 3136 RENAME(doVertDefFilter)(tempBlock1, 16, &c);
3137 }else if(mode & H_A_DEBLOCK){
3138 do_a_deblock(tempBlock1, 16, 1, &c);
3134 } 3139 }
3135 3140
3136 RENAME(transpose2)(dstBlock-4, dstStride, tempBlock1 + 4*16); 3141 RENAME(transpose2)(dstBlock-4, dstStride, tempBlock1 + 4*16);
3137 3142
3138 #else 3143 #else
3144 3149
3145 if(t==1) 3150 if(t==1)
3146 RENAME(doHorizLowPass)(dstBlock-4, stride, &c); 3151 RENAME(doHorizLowPass)(dstBlock-4, stride, &c);
3147 else if(t==2) 3152 else if(t==2)
3148 RENAME(doHorizDefFilter)(dstBlock-4, stride, &c); 3153 RENAME(doHorizDefFilter)(dstBlock-4, stride, &c);
3154 }else if(mode & H_A_DEBLOCK){
3155 do_a_deblock(dstBlock-8, 1, stride, &c);
3149 } 3156 }
3150 #endif 3157 #endif
3151 if(mode & DERING) 3158 if(mode & DERING)
3152 { 3159 {
3153 //FIXME filter first line 3160 //FIXME filter first line