Mercurial > libavcodec.hg
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 |