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 |
